diff --git a/build/rollup.config.js b/build/rollup.config.js index 83ea8ffb74d7159eba5320585bf39ec29fc6f9f3..a4f66032019389e7a7427a5891790c961bd092ba 100644 --- a/build/rollup.config.js +++ b/build/rollup.config.js @@ -8,7 +8,7 @@ const GLOBAL = { 'mp-baidu': 'swan' } module.exports = { - input: 'src/core/uni.js', + input: 'src/core/runtime/index.js', output: { file: `packages/uni-${process.env.UNI_PLATFORM}/dist/index.js`, format: 'es' diff --git a/packages/uni-mp-alipay/dist/index.js b/packages/uni-mp-alipay/dist/index.js index 052920cbc7548e713ea3cd8ada4819e12f4f6144..eda5d20f8e8d18ab6603105ea203c584c76006c1 100644 --- a/packages/uni-mp-alipay/dist/index.js +++ b/packages/uni-mp-alipay/dist/index.js @@ -97,6 +97,67 @@ function upx2px (number, newDeviceWidth) { return number } +const todoApis = Object.create(null); + +const TODOS = [ + 'subscribePush', + 'unsubscribePush', + 'onPush', + 'offPush', + 'share' +]; + +function createTodoApi (name) { + return function todoApi ({ + fail, + complete + }) { + const res = { + errMsg: `${name}:fail:暂不支持 ${name} 方法` + }; + isFn(fail) && fail(res); + isFn(complete) && complete(res); + } +} + +TODOS.forEach(function (name) { + todoApis[name] = createTodoApi(name); +}); + +var providers = { + oauth: ['alipay'], + share: ['alipay'], + payment: ['alipay'], + push: ['alipay'] +}; + +function getProvider ({ + service, + success, + fail, + complete +}) { + let res = false; + if (providers[service]) { + res = { + errMsg: 'getProvider:ok', + service, + provider: providers[service] + }; + isFn(success) && success(res); + } else { + res = { + errMsg: 'getProvider:fail:服务[' + service + ']不存在' + }; + isFn(fail) && fail(res); + } + isFn(complete) && complete(res); +} + +var baseApi = /*#__PURE__*/Object.freeze({ + getProvider: getProvider +}); + var api = /*#__PURE__*/Object.freeze({ @@ -114,6 +175,12 @@ if (typeof Proxy !== 'undefined') { if (api[name]) { return promisify(name, api[name]) } + if (baseApi[name]) { + return promisify(name, baseApi[name]) + } + if (todoApis[name]) { + return promisify(name, todoApis[name]) + } if (!my.hasOwnProperty(name)) { return } @@ -123,6 +190,14 @@ if (typeof Proxy !== 'undefined') { } else { uni$1.upx2px = upx2px; + Object.keys(todoApis).forEach(name => { + uni$1[name] = promisify(name, todoApis[name]); + }); + + Object.keys(baseApi).forEach(name => { + uni$1[name] = promisify(name, todoApis[name]); + }); + Object.keys(api).forEach(name => { uni$1[name] = promisify(name, api[name]); }); diff --git a/packages/uni-mp-alipay/package.json b/packages/uni-mp-alipay/package.json index b883f54c24d4bad6d8d94931240934f92d4797cc..d14f45601ef0a48a7230d5e6cac6275c7cc6051d 100644 --- a/packages/uni-mp-alipay/package.json +++ b/packages/uni-mp-alipay/package.json @@ -1,6 +1,6 @@ { "name": "@dcloudio/uni-mp-alipay", - "version": "0.0.1", + "version": "0.0.2", "description": "uni-app mp-alipay", "main": "dist/index.js", "scripts": { diff --git a/packages/uni-mp-baidu/dist/index.js b/packages/uni-mp-baidu/dist/index.js index bc80606c3fa2f7db09da8125cdc482d864bd8f22..96d58af039c9f433b603e7362c38f3f99ed469c7 100644 --- a/packages/uni-mp-baidu/dist/index.js +++ b/packages/uni-mp-baidu/dist/index.js @@ -97,6 +97,67 @@ function upx2px (number, newDeviceWidth) { return number } +const todoApis = Object.create(null); + +const TODOS = [ + 'subscribePush', + 'unsubscribePush', + 'onPush', + 'offPush', + 'share' +]; + +function createTodoApi (name) { + return function todoApi ({ + fail, + complete + }) { + const res = { + errMsg: `${name}:fail:暂不支持 ${name} 方法` + }; + isFn(fail) && fail(res); + isFn(complete) && complete(res); + } +} + +TODOS.forEach(function (name) { + todoApis[name] = createTodoApi(name); +}); + +var providers = { + oauth: ['baidu'], + share: ['baidu'], + payment: ['baidu'], + push: ['baidu'] +}; + +function getProvider ({ + service, + success, + fail, + complete +}) { + let res = false; + if (providers[service]) { + res = { + errMsg: 'getProvider:ok', + service, + provider: providers[service] + }; + isFn(success) && success(res); + } else { + res = { + errMsg: 'getProvider:fail:服务[' + service + ']不存在' + }; + isFn(fail) && fail(res); + } + isFn(complete) && complete(res); +} + +var baseApi = /*#__PURE__*/Object.freeze({ + getProvider: getProvider +}); + var api = /*#__PURE__*/Object.freeze({ @@ -114,6 +175,12 @@ if (typeof Proxy !== 'undefined') { if (api[name]) { return promisify(name, api[name]) } + if (baseApi[name]) { + return promisify(name, baseApi[name]) + } + if (todoApis[name]) { + return promisify(name, todoApis[name]) + } if (!swan.hasOwnProperty(name)) { return } @@ -123,6 +190,14 @@ if (typeof Proxy !== 'undefined') { } else { uni$1.upx2px = upx2px; + Object.keys(todoApis).forEach(name => { + uni$1[name] = promisify(name, todoApis[name]); + }); + + Object.keys(baseApi).forEach(name => { + uni$1[name] = promisify(name, todoApis[name]); + }); + Object.keys(api).forEach(name => { uni$1[name] = promisify(name, api[name]); }); diff --git a/packages/uni-mp-baidu/package.json b/packages/uni-mp-baidu/package.json index 958c1b31dd8fceb578f43e92f4657982e371baa9..938c0b130380ae67d775ea80ed5e74f681b071f1 100644 --- a/packages/uni-mp-baidu/package.json +++ b/packages/uni-mp-baidu/package.json @@ -1,6 +1,6 @@ { "name": "@dcloudio/uni-mp-baidu", - "version": "0.0.1", + "version": "0.0.2", "description": "uni-app mp-baidu", "main": "dist/index.js", "scripts": { diff --git a/packages/uni-mp-weixin/dist/index.js b/packages/uni-mp-weixin/dist/index.js index f10cfc6f86595f2644ccf4bbbf7241133ea2a00c..47ba28e96731970b9363f14f82e016dcd1e2b7bd 100644 --- a/packages/uni-mp-weixin/dist/index.js +++ b/packages/uni-mp-weixin/dist/index.js @@ -97,6 +97,67 @@ function upx2px (number, newDeviceWidth) { return number } +const todoApis = Object.create(null); + +const TODOS = [ + 'subscribePush', + 'unsubscribePush', + 'onPush', + 'offPush', + 'share' +]; + +function createTodoApi (name) { + return function todoApi ({ + fail, + complete + }) { + const res = { + errMsg: `${name}:fail:暂不支持 ${name} 方法` + }; + isFn(fail) && fail(res); + isFn(complete) && complete(res); + } +} + +TODOS.forEach(function (name) { + todoApis[name] = createTodoApi(name); +}); + +var providers = { + oauth: ['weixin'], + share: ['weixin'], + payment: ['wxpay'], + push: ['weixin'] +}; + +function getProvider ({ + service, + success, + fail, + complete +}) { + let res = false; + if (providers[service]) { + res = { + errMsg: 'getProvider:ok', + service, + provider: providers[service] + }; + isFn(success) && success(res); + } else { + res = { + errMsg: 'getProvider:fail:服务[' + service + ']不存在' + }; + isFn(fail) && fail(res); + } + isFn(complete) && complete(res); +} + +var baseApi = /*#__PURE__*/Object.freeze({ + getProvider: getProvider +}); + var api = /*#__PURE__*/Object.freeze({ @@ -114,6 +175,12 @@ if (typeof Proxy !== 'undefined') { if (api[name]) { return promisify(name, api[name]) } + if (baseApi[name]) { + return promisify(name, baseApi[name]) + } + if (todoApis[name]) { + return promisify(name, todoApis[name]) + } if (!wx.hasOwnProperty(name)) { return } @@ -123,6 +190,14 @@ if (typeof Proxy !== 'undefined') { } else { uni$1.upx2px = upx2px; + Object.keys(todoApis).forEach(name => { + uni$1[name] = promisify(name, todoApis[name]); + }); + + Object.keys(baseApi).forEach(name => { + uni$1[name] = promisify(name, todoApis[name]); + }); + Object.keys(api).forEach(name => { uni$1[name] = promisify(name, api[name]); }); diff --git a/packages/uni-mp-weixin/package.json b/packages/uni-mp-weixin/package.json index 12686f635bafeabb3beec46fcd9cc4b102cc41cc..75c85ac9d68a9ff070a4f445920bb2cd3ace8ab4 100644 --- a/packages/uni-mp-weixin/package.json +++ b/packages/uni-mp-weixin/package.json @@ -1,6 +1,6 @@ { "name": "@dcloudio/uni-mp-weixin", - "version": "0.0.1", + "version": "0.0.2", "description": "uni-app mp-weixin", "main": "dist/index.js", "scripts": { diff --git a/src/core/runtime/base.js b/src/core/runtime/base.js new file mode 100644 index 0000000000000000000000000000000000000000..b2f23ac98d4a9e565db23e386266e32723ebb289 --- /dev/null +++ b/src/core/runtime/base.js @@ -0,0 +1,28 @@ +import { + isFn +} from 'uni-shared' + +import providers from 'uni-platform/service/api/providers' + +export function getProvider ({ + service, + success, + fail, + complete +}) { + let res = false + if (providers[service]) { + res = { + errMsg: 'getProvider:ok', + service, + provider: providers[service] + } + isFn(success) && success(res) + } else { + res = { + errMsg: 'getProvider:fail:服务[' + service + ']不存在' + } + isFn(fail) && fail(res) + } + isFn(complete) && complete(res) +} diff --git a/src/core/uni.js b/src/core/runtime/index.js similarity index 58% rename from src/core/uni.js rename to src/core/runtime/index.js index d65acb219ce9634c8399a4fe6d5954db7bb8479e..aa0d77d4459f4622d663f0505aee15255e3c42ff 100644 --- a/src/core/uni.js +++ b/src/core/runtime/index.js @@ -1,10 +1,14 @@ import { promisify -} from './helpers/promise' +} from '../helpers/promise' import { upx2px -} from './service/api/upx2px' +} from '../service/api/upx2px' + +import todoApi from './todo' + +import * as baseApi from './base' import * as api from 'uni-platform/service/api/index.js' @@ -19,6 +23,12 @@ if (typeof Proxy !== 'undefined') { if (api[name]) { return promisify(name, api[name]) } + if (baseApi[name]) { + return promisify(name, baseApi[name]) + } + if (todoApi[name]) { + return promisify(name, todoApi[name]) + } if (!__GLOBAL__.hasOwnProperty(name)) { return } @@ -28,6 +38,14 @@ if (typeof Proxy !== 'undefined') { } else { uni.upx2px = upx2px + Object.keys(todoApi).forEach(name => { + uni[name] = promisify(name, todoApi[name]) + }) + + Object.keys(baseApi).forEach(name => { + uni[name] = promisify(name, todoApi[name]) + }) + Object.keys(api).forEach(name => { uni[name] = promisify(name, api[name]) }) diff --git a/src/core/runtime/todo.js b/src/core/runtime/todo.js new file mode 100644 index 0000000000000000000000000000000000000000..1e8d2349b9416fe283ae2a90d1ec2d0de92d1ddc --- /dev/null +++ b/src/core/runtime/todo.js @@ -0,0 +1,32 @@ +import { + isFn +} from 'uni-shared' + +const todoApis = Object.create(null) + +const TODOS = [ + 'subscribePush', + 'unsubscribePush', + 'onPush', + 'offPush', + 'share' +] + +function createTodoApi (name) { + return function todoApi ({ + fail, + complete + }) { + const res = { + errMsg: `${name}:fail:暂不支持 ${name} 方法` + } + isFn(fail) && fail(res) + isFn(complete) && complete(res) + } +} + +TODOS.forEach(function (name) { + todoApis[name] = createTodoApi(name) +}) + +export default todoApis diff --git a/src/platforms/mp-alipay/service/api/providers.js b/src/platforms/mp-alipay/service/api/providers.js new file mode 100644 index 0000000000000000000000000000000000000000..ed1de98d33ef05d449045b4765388aa5cfb846d2 --- /dev/null +++ b/src/platforms/mp-alipay/service/api/providers.js @@ -0,0 +1,6 @@ +export default { + oauth: ['alipay'], + share: ['alipay'], + payment: ['alipay'], + push: ['alipay'] +} diff --git a/src/platforms/mp-baidu/service/api/providers.js b/src/platforms/mp-baidu/service/api/providers.js new file mode 100644 index 0000000000000000000000000000000000000000..6604d7313c4efb7ea4955ced54a1d1ba93db8ab9 --- /dev/null +++ b/src/platforms/mp-baidu/service/api/providers.js @@ -0,0 +1,6 @@ +export default { + oauth: ['baidu'], + share: ['baidu'], + payment: ['baidu'], + push: ['baidu'] +} diff --git a/src/platforms/mp-weixin/service/api/providers.js b/src/platforms/mp-weixin/service/api/providers.js new file mode 100644 index 0000000000000000000000000000000000000000..85e70a2cfd64b7c1bd9704dcd3431e94ca6d3348 --- /dev/null +++ b/src/platforms/mp-weixin/service/api/providers.js @@ -0,0 +1,6 @@ +export default { + oauth: ['weixin'], + share: ['weixin'], + payment: ['wxpay'], + push: ['weixin'] +}