From 16428aab7376eba59fc67a3db0b35d8b52df7294 Mon Sep 17 00:00:00 2001 From: fxy060608 Date: Sat, 25 May 2019 18:40:07 +0800 Subject: [PATCH] build uni runtime(uni.$on...) --- packages/uni-app-plus/dist/index.js | 33 +++++++++++++++++++----- packages/uni-app-plus/package.json | 2 +- packages/uni-mp-alipay/dist/index.js | 33 +++++++++++++++++++----- packages/uni-mp-alipay/package.json | 2 +- packages/uni-mp-baidu/dist/index.js | 33 +++++++++++++++++++----- packages/uni-mp-baidu/package.json | 2 +- packages/uni-mp-toutiao/dist/index.js | 33 +++++++++++++++++++----- packages/uni-mp-toutiao/package.json | 2 +- packages/uni-mp-weixin/dist/index.js | 33 +++++++++++++++++++----- packages/uni-mp-weixin/package.json | 2 +- src/core/service/api/event.js | 37 +++++++++++++++++++++------ 11 files changed, 169 insertions(+), 43 deletions(-) diff --git a/packages/uni-app-plus/dist/index.js b/packages/uni-app-plus/dist/index.js index 5103512f9..b30f7b8fd 100644 --- a/packages/uni-app-plus/dist/index.js +++ b/packages/uni-app-plus/dist/index.js @@ -256,12 +256,33 @@ TODOS.forEach(function (name) { todoApis[name] = createTodoApi(name); }); -const Emitter = new Vue(); - -const $on = Emitter.$on.bind(Emitter); -const $off = Emitter.$off.bind(Emitter); -const $once = Emitter.$once.bind(Emitter); -const $emit = Emitter.$emit.bind(Emitter); +const getEmitter = (function () { + if (typeof getUniEmitter === 'function') { + /* eslint-disable no-undef */ + return getUniEmitter + } + const Emitter = new Vue(); + return function getUniEmitter () { + return Emitter + } +})(); + +function apply (ctx, method, args) { + return ctx[method].apply(ctx, args) +} + +function $on () { + return apply(getEmitter(), '$on', [...arguments]) +} +function $off () { + return apply(getEmitter(), '$off', [...arguments]) +} +function $once () { + return apply(getEmitter(), '$once', [...arguments]) +} +function $emit () { + return apply(getEmitter(), '$emit', [...arguments]) +} diff --git a/packages/uni-app-plus/package.json b/packages/uni-app-plus/package.json index 65e19c6fb..a0003ad0d 100644 --- a/packages/uni-app-plus/package.json +++ b/packages/uni-app-plus/package.json @@ -1,6 +1,6 @@ { "name": "@dcloudio/uni-app-plus", - "version": "0.0.238", + "version": "0.0.239", "description": "uni-app app-plus", "main": "dist/index.js", "scripts": { diff --git a/packages/uni-mp-alipay/dist/index.js b/packages/uni-mp-alipay/dist/index.js index 7f7916c42..e5b924c8e 100644 --- a/packages/uni-mp-alipay/dist/index.js +++ b/packages/uni-mp-alipay/dist/index.js @@ -656,12 +656,33 @@ var extraApi = /*#__PURE__*/Object.freeze({ getProvider: getProvider }); -const Emitter = new Vue(); - -const $on = Emitter.$on.bind(Emitter); -const $off = Emitter.$off.bind(Emitter); -const $once = Emitter.$once.bind(Emitter); -const $emit = Emitter.$emit.bind(Emitter); +const getEmitter = (function () { + if (typeof getUniEmitter === 'function') { + /* eslint-disable no-undef */ + return getUniEmitter + } + const Emitter = new Vue(); + return function getUniEmitter () { + return Emitter + } +})(); + +function apply (ctx, method, args) { + return ctx[method].apply(ctx, args) +} + +function $on () { + return apply(getEmitter(), '$on', [...arguments]) +} +function $off () { + return apply(getEmitter(), '$off', [...arguments]) +} +function $once () { + return apply(getEmitter(), '$once', [...arguments]) +} +function $emit () { + return apply(getEmitter(), '$emit', [...arguments]) +} diff --git a/packages/uni-mp-alipay/package.json b/packages/uni-mp-alipay/package.json index 6bed0bbcb..cd4d82b29 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.810", + "version": "0.0.811", "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 93bb719ea..e8283be9b 100644 --- a/packages/uni-mp-baidu/dist/index.js +++ b/packages/uni-mp-baidu/dist/index.js @@ -413,12 +413,33 @@ var extraApi = /*#__PURE__*/Object.freeze({ getProvider: getProvider }); -const Emitter = new Vue(); - -const $on = Emitter.$on.bind(Emitter); -const $off = Emitter.$off.bind(Emitter); -const $once = Emitter.$once.bind(Emitter); -const $emit = Emitter.$emit.bind(Emitter); +const getEmitter = (function () { + if (typeof getUniEmitter === 'function') { + /* eslint-disable no-undef */ + return getUniEmitter + } + const Emitter = new Vue(); + return function getUniEmitter () { + return Emitter + } +})(); + +function apply (ctx, method, args) { + return ctx[method].apply(ctx, args) +} + +function $on () { + return apply(getEmitter(), '$on', [...arguments]) +} +function $off () { + return apply(getEmitter(), '$off', [...arguments]) +} +function $once () { + return apply(getEmitter(), '$once', [...arguments]) +} +function $emit () { + return apply(getEmitter(), '$emit', [...arguments]) +} diff --git a/packages/uni-mp-baidu/package.json b/packages/uni-mp-baidu/package.json index edc072b2c..69867d78a 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.836", + "version": "0.0.837", "description": "uni-app mp-baidu", "main": "dist/index.js", "scripts": { diff --git a/packages/uni-mp-toutiao/dist/index.js b/packages/uni-mp-toutiao/dist/index.js index 0fdab1712..e877e4b4f 100644 --- a/packages/uni-mp-toutiao/dist/index.js +++ b/packages/uni-mp-toutiao/dist/index.js @@ -474,12 +474,33 @@ var extraApi = /*#__PURE__*/Object.freeze({ getProvider: getProvider }); -const Emitter = new Vue(); - -const $on = Emitter.$on.bind(Emitter); -const $off = Emitter.$off.bind(Emitter); -const $once = Emitter.$once.bind(Emitter); -const $emit = Emitter.$emit.bind(Emitter); +const getEmitter = (function () { + if (typeof getUniEmitter === 'function') { + /* eslint-disable no-undef */ + return getUniEmitter + } + const Emitter = new Vue(); + return function getUniEmitter () { + return Emitter + } +})(); + +function apply (ctx, method, args) { + return ctx[method].apply(ctx, args) +} + +function $on () { + return apply(getEmitter(), '$on', [...arguments]) +} +function $off () { + return apply(getEmitter(), '$off', [...arguments]) +} +function $once () { + return apply(getEmitter(), '$once', [...arguments]) +} +function $emit () { + return apply(getEmitter(), '$emit', [...arguments]) +} diff --git a/packages/uni-mp-toutiao/package.json b/packages/uni-mp-toutiao/package.json index 2b461cbed..9b8e63103 100644 --- a/packages/uni-mp-toutiao/package.json +++ b/packages/uni-mp-toutiao/package.json @@ -1,6 +1,6 @@ { "name": "@dcloudio/uni-mp-toutiao", - "version": "0.0.336", + "version": "0.0.337", "description": "uni-app mp-toutiao", "main": "dist/index.js", "scripts": { diff --git a/packages/uni-mp-weixin/dist/index.js b/packages/uni-mp-weixin/dist/index.js index fcebb280e..d0f4a5c99 100644 --- a/packages/uni-mp-weixin/dist/index.js +++ b/packages/uni-mp-weixin/dist/index.js @@ -326,12 +326,33 @@ var extraApi = /*#__PURE__*/Object.freeze({ getProvider: getProvider }); -const Emitter = new Vue(); - -const $on = Emitter.$on.bind(Emitter); -const $off = Emitter.$off.bind(Emitter); -const $once = Emitter.$once.bind(Emitter); -const $emit = Emitter.$emit.bind(Emitter); +const getEmitter = (function () { + if (typeof getUniEmitter === 'function') { + /* eslint-disable no-undef */ + return getUniEmitter + } + const Emitter = new Vue(); + return function getUniEmitter () { + return Emitter + } +})(); + +function apply (ctx, method, args) { + return ctx[method].apply(ctx, args) +} + +function $on () { + return apply(getEmitter(), '$on', [...arguments]) +} +function $off () { + return apply(getEmitter(), '$off', [...arguments]) +} +function $once () { + return apply(getEmitter(), '$once', [...arguments]) +} +function $emit () { + return apply(getEmitter(), '$emit', [...arguments]) +} diff --git a/packages/uni-mp-weixin/package.json b/packages/uni-mp-weixin/package.json index 5198b26bd..b15159920 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.958", + "version": "0.0.959", "description": "uni-app mp-weixin", "main": "dist/index.js", "scripts": { diff --git a/src/core/service/api/event.js b/src/core/service/api/event.js index 320bc5209..512d76f3a 100644 --- a/src/core/service/api/event.js +++ b/src/core/service/api/event.js @@ -1,8 +1,29 @@ -import Vue from 'vue' - -const Emitter = new Vue() - -export const $on = Emitter.$on.bind(Emitter) -export const $off = Emitter.$off.bind(Emitter) -export const $once = Emitter.$once.bind(Emitter) -export const $emit = Emitter.$emit.bind(Emitter) +import Vue from 'vue' + +const getEmitter = (function () { + if (typeof getUniEmitter === 'function') { + /* eslint-disable no-undef */ + return getUniEmitter + } + const Emitter = new Vue() + return function getUniEmitter () { + return Emitter + } +})() + +function apply (ctx, method, args) { + return ctx[method].apply(ctx, args) +} + +export function $on () { + return apply(getEmitter(), '$on', [...arguments]) +} +export function $off () { + return apply(getEmitter(), '$off', [...arguments]) +} +export function $once () { + return apply(getEmitter(), '$once', [...arguments]) +} +export function $emit () { + return apply(getEmitter(), '$emit', [...arguments]) +} -- GitLab