index.js 1.7 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
import todoApi from './todo'
fxy060608's avatar
fxy060608 已提交
16 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
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 已提交
33 34 35 36 37 38 39 40
      }
      if (__PLATFORM__ !== 'app-plus') {
        if (extraApi[name]) {
          return promisify(name, extraApi[name])
        }
        if (todoApi[name]) {
          return promisify(name, todoApi[name])
        }
fxy060608's avatar
fxy060608 已提交
41
      }
fxy060608's avatar
fxy060608 已提交
42
      if (!hasOwn(__GLOBAL__, name) && !hasOwn(protocols, name)) {
fxy060608's avatar
fxy060608 已提交
43 44
        return
      }
fxy060608's avatar
fxy060608 已提交
45
      return promisify(name, wrapper(name, __GLOBAL__[name]))
fxy060608's avatar
fxy060608 已提交
46 47 48 49 50
    }
  })
} else {
  uni.upx2px = upx2px

fxy060608's avatar
fxy060608 已提交
51 52 53 54 55 56 57 58
  if (__PLATFORM__ !== 'app-plus') {
    Object.keys(todoApi).forEach(name => {
      uni[name] = promisify(name, todoApi[name])
    })
    Object.keys(extraApi).forEach(name => {
      uni[name] = promisify(name, todoApi[name])
    })
  }
fxy060608's avatar
fxy060608 已提交
59

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

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

71 72 73 74
export * from './wrapper/create-app'
export * from './wrapper/create-page'
export * from './wrapper/create-component'

fxy060608's avatar
fxy060608 已提交
75
export default uni