index.js 1.5 KB
Newer Older
fxy060608's avatar
fxy060608 已提交
1 2 3 4
import {
  hasOwn
} from 'uni-shared'

fxy060608's avatar
fxy060608 已提交
5 6
import {
  promisify
fxy060608's avatar
fxy060608 已提交
7
} from '../helpers/promise'
fxy060608's avatar
fxy060608 已提交
8 9 10

import {
  upx2px
11
} from './upx2px'
fxy060608's avatar
fxy060608 已提交
12

fxy060608's avatar
fxy060608 已提交
13 14
import wrapper from './wrapper'

fxy060608's avatar
fxy060608 已提交
15 16
import todoApi from './todo'

fxy060608's avatar
fxy060608 已提交
17
import * as extraApi from './extra'
fxy060608's avatar
fxy060608 已提交
18 19 20

import * as api from 'uni-platform/service/api/index.js'

fxy060608's avatar
fxy060608 已提交
21 22
import protocols from 'uni-platform/service/api/protocols'

fxy060608's avatar
fxy060608 已提交
23 24 25 26 27 28 29 30 31 32 33
let uni = {}

if (typeof Proxy !== 'undefined') {
  uni = new Proxy({}, {
    get (target, name) {
      if (name === 'upx2px') {
        return upx2px
      }
      if (api[name]) {
        return promisify(name, api[name])
      }
fxy060608's avatar
fxy060608 已提交
34 35
      if (extraApi[name]) {
        return promisify(name, extraApi[name])
fxy060608's avatar
fxy060608 已提交
36 37 38 39
      }
      if (todoApi[name]) {
        return promisify(name, todoApi[name])
      }
fxy060608's avatar
fxy060608 已提交
40
      if (!hasOwn(__GLOBAL__, name) && !hasOwn(protocols, name)) {
fxy060608's avatar
fxy060608 已提交
41 42
        return
      }
fxy060608's avatar
fxy060608 已提交
43
      return promisify(name, wrapper(name, __GLOBAL__[name]))
fxy060608's avatar
fxy060608 已提交
44 45 46 47 48
    }
  })
} else {
  uni.upx2px = upx2px

fxy060608's avatar
fxy060608 已提交
49 50 51 52
  Object.keys(todoApi).forEach(name => {
    uni[name] = promisify(name, todoApi[name])
  })

fxy060608's avatar
fxy060608 已提交
53
  Object.keys(extraApi).forEach(name => {
fxy060608's avatar
fxy060608 已提交
54 55 56
    uni[name] = promisify(name, todoApi[name])
  })

fxy060608's avatar
fxy060608 已提交
57 58 59 60 61
  Object.keys(api).forEach(name => {
    uni[name] = promisify(name, api[name])
  })

  Object.keys(__GLOBAL__).forEach(name => {
fxy060608's avatar
fxy060608 已提交
62 63
    if (hasOwn(__GLOBAL__, name) || hasOwn(protocols, name)) {
      uni[name] = promisify(name, wrapper(name, __GLOBAL__[name]))
fxy060608's avatar
fxy060608 已提交
64 65 66 67 68
    }
  })
}

export default uni