提交 e5285d29 编写于 作者: fxy060608's avatar fxy060608

feat(runtime): add uni.$on,uni.$once,uni.$off,uni.$emit

上级 f482d453
......@@ -40,7 +40,7 @@ const camelize = cached((str) => {
return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : '')
});
const SYNC_API_RE = /getSubNVueById|requireNativePlugin|upx2px|hideKeyboard|canIUse|^create|Sync$|Manager$|base64ToArrayBuffer|arrayBufferToBase64/;
const SYNC_API_RE = /^\$|getSubNVueById|requireNativePlugin|upx2px|hideKeyboard|canIUse|^create|Sync$|Manager$|base64ToArrayBuffer|arrayBufferToBase64/;
const CONTEXT_API_RE = /^create|Manager$/;
......@@ -256,6 +256,22 @@ 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);
var eventApi = /*#__PURE__*/Object.freeze({
$on: $on,
$off: $off,
$once: $once,
$emit: $emit
});
function wrapper$1 (webview) {
webview.$processed = true;
......@@ -1142,6 +1158,9 @@ if (typeof Proxy !== 'undefined') {
if (api[name]) {
return promisify(name, api[name])
}
if (eventApi[name]) {
return eventApi[name]
}
if (!hasOwn(wx, name) && !hasOwn(protocols, name)) {
return
}
......@@ -1151,6 +1170,10 @@ if (typeof Proxy !== 'undefined') {
} else {
uni.upx2px = upx2px;
Object.keys(eventApi).forEach(name => {
uni[name] = eventApi[name];
});
Object.keys(api).forEach(name => {
uni[name] = promisify(name, api[name]);
});
......@@ -1161,10 +1184,16 @@ if (typeof Proxy !== 'undefined') {
}
});
}
wx.createApp = createApp;
wx.createPage = createPage;
wx.createComponent = createComponent;
{
if (typeof global !== 'undefined') {
global.UniEmitter = eventApi;
}
}
wx.createApp = createApp;
wx.createPage = createPage;
wx.createComponent = createComponent;
var uni$1 = uni;
......
......@@ -40,7 +40,7 @@ const camelize = cached((str) => {
return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : '')
});
const SYNC_API_RE = /getSubNVueById|requireNativePlugin|upx2px|hideKeyboard|canIUse|^create|Sync$|Manager$|base64ToArrayBuffer|arrayBufferToBase64/;
const SYNC_API_RE = /^\$|getSubNVueById|requireNativePlugin|upx2px|hideKeyboard|canIUse|^create|Sync$|Manager$|base64ToArrayBuffer|arrayBufferToBase64/;
const CONTEXT_API_RE = /^create|Manager$/;
......@@ -656,6 +656,22 @@ 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);
var eventApi = /*#__PURE__*/Object.freeze({
$on: $on,
$off: $off,
$once: $once,
$emit: $emit
});
function setStorageSync (key, data) {
return my.setStorageSync({
key,
......@@ -1667,6 +1683,9 @@ if (typeof Proxy !== 'undefined') {
return promisify(name, todoApis[name])
}
}
if (eventApi[name]) {
return eventApi[name]
}
if (!hasOwn(my, name) && !hasOwn(protocols, name)) {
return
}
......@@ -1685,6 +1704,10 @@ if (typeof Proxy !== 'undefined') {
});
}
Object.keys(eventApi).forEach(name => {
uni[name] = eventApi[name];
});
Object.keys(api).forEach(name => {
uni[name] = promisify(name, api[name]);
});
......@@ -1695,10 +1718,10 @@ if (typeof Proxy !== 'undefined') {
}
});
}
my.createApp = createApp;
my.createPage = createPage;
my.createComponent = createComponent;
my.createApp = createApp;
my.createPage = createPage;
my.createComponent = createComponent;
var uni$1 = uni;
......
......@@ -40,7 +40,7 @@ const camelize = cached((str) => {
return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : '')
});
const SYNC_API_RE = /getSubNVueById|requireNativePlugin|upx2px|hideKeyboard|canIUse|^create|Sync$|Manager$|base64ToArrayBuffer|arrayBufferToBase64/;
const SYNC_API_RE = /^\$|getSubNVueById|requireNativePlugin|upx2px|hideKeyboard|canIUse|^create|Sync$|Manager$|base64ToArrayBuffer|arrayBufferToBase64/;
const CONTEXT_API_RE = /^create|Manager$/;
......@@ -413,6 +413,22 @@ 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);
var eventApi = /*#__PURE__*/Object.freeze({
$on: $on,
$off: $off,
$once: $once,
$emit: $emit
});
function requestPayment (params) {
let parseError = false;
if (typeof params.orderInfo === 'string') {
......@@ -1286,6 +1302,9 @@ if (typeof Proxy !== 'undefined') {
return promisify(name, todoApis[name])
}
}
if (eventApi[name]) {
return eventApi[name]
}
if (!hasOwn(swan, name) && !hasOwn(protocols, name)) {
return
}
......@@ -1304,6 +1323,10 @@ if (typeof Proxy !== 'undefined') {
});
}
Object.keys(eventApi).forEach(name => {
uni[name] = eventApi[name];
});
Object.keys(api).forEach(name => {
uni[name] = promisify(name, api[name]);
});
......@@ -1314,10 +1337,10 @@ if (typeof Proxy !== 'undefined') {
}
});
}
swan.createApp = createApp;
swan.createPage = createPage;
swan.createComponent = createComponent;
swan.createApp = createApp;
swan.createPage = createPage;
swan.createComponent = createComponent;
var uni$1 = uni;
......
......@@ -40,7 +40,7 @@ const camelize = cached((str) => {
return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : '')
});
const SYNC_API_RE = /getSubNVueById|requireNativePlugin|upx2px|hideKeyboard|canIUse|^create|Sync$|Manager$|base64ToArrayBuffer|arrayBufferToBase64/;
const SYNC_API_RE = /^\$|getSubNVueById|requireNativePlugin|upx2px|hideKeyboard|canIUse|^create|Sync$|Manager$|base64ToArrayBuffer|arrayBufferToBase64/;
const CONTEXT_API_RE = /^create|Manager$/;
......@@ -474,6 +474,22 @@ 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);
var eventApi = /*#__PURE__*/Object.freeze({
$on: $on,
$off: $off,
$once: $once,
$emit: $emit
});
var api = /*#__PURE__*/Object.freeze({
......@@ -1361,6 +1377,9 @@ if (typeof Proxy !== 'undefined') {
return promisify(name, todoApis[name])
}
}
if (eventApi[name]) {
return eventApi[name]
}
if (!hasOwn(tt, name) && !hasOwn(protocols, name)) {
return
}
......@@ -1379,6 +1398,10 @@ if (typeof Proxy !== 'undefined') {
});
}
Object.keys(eventApi).forEach(name => {
uni[name] = eventApi[name];
});
Object.keys(api).forEach(name => {
uni[name] = promisify(name, api[name]);
});
......@@ -1389,10 +1412,10 @@ if (typeof Proxy !== 'undefined') {
}
});
}
tt.createApp = createApp;
tt.createPage = createPage;
tt.createComponent = createComponent;
tt.createApp = createApp;
tt.createPage = createPage;
tt.createComponent = createComponent;
var uni$1 = uni;
......
......@@ -40,7 +40,7 @@ const camelize = cached((str) => {
return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : '')
});
const SYNC_API_RE = /getSubNVueById|requireNativePlugin|upx2px|hideKeyboard|canIUse|^create|Sync$|Manager$|base64ToArrayBuffer|arrayBufferToBase64/;
const SYNC_API_RE = /^\$|getSubNVueById|requireNativePlugin|upx2px|hideKeyboard|canIUse|^create|Sync$|Manager$|base64ToArrayBuffer|arrayBufferToBase64/;
const CONTEXT_API_RE = /^create|Manager$/;
......@@ -326,6 +326,22 @@ 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);
var eventApi = /*#__PURE__*/Object.freeze({
$on: $on,
$off: $off,
$once: $once,
$emit: $emit
});
var api = /*#__PURE__*/Object.freeze({
......@@ -1121,6 +1137,9 @@ if (typeof Proxy !== 'undefined') {
return promisify(name, todoApis[name])
}
}
if (eventApi[name]) {
return eventApi[name]
}
if (!hasOwn(wx, name) && !hasOwn(protocols, name)) {
return
}
......@@ -1139,6 +1158,10 @@ if (typeof Proxy !== 'undefined') {
});
}
Object.keys(eventApi).forEach(name => {
uni[name] = eventApi[name];
});
Object.keys(api).forEach(name => {
uni[name] = promisify(name, api[name]);
});
......@@ -1149,10 +1172,10 @@ if (typeof Proxy !== 'undefined') {
}
});
}
wx.createApp = createApp;
wx.createPage = createPage;
wx.createComponent = createComponent;
wx.createApp = createApp;
wx.createPage = createPage;
wx.createComponent = createComponent;
var uni$1 = uni;
......
......@@ -2,7 +2,7 @@ import {
isFn
} from 'uni-shared'
const SYNC_API_RE = /getSubNVueById|requireNativePlugin|upx2px|hideKeyboard|canIUse|^create|Sync$|Manager$|base64ToArrayBuffer|arrayBufferToBase64/
const SYNC_API_RE = /^\$|getSubNVueById|requireNativePlugin|upx2px|hideKeyboard|canIUse|^create|Sync$|Manager$|base64ToArrayBuffer|arrayBufferToBase64/
const CONTEXT_API_RE = /^create|Manager$/
......
export * from '../service/api/event'
......@@ -16,6 +16,8 @@ import todoApi from './todo'
import * as extraApi from './extra'
import * as eventApi from './event'
import * as api from 'uni-platform/service/api/index.js'
import {
......@@ -59,6 +61,9 @@ if (typeof Proxy !== 'undefined') {
return promisify(name, todoApi[name])
}
}
if (eventApi[name]) {
return eventApi[name]
}
if (!hasOwn(__GLOBAL__, name) && !hasOwn(protocols, name)) {
return
}
......@@ -77,6 +82,10 @@ if (typeof Proxy !== 'undefined') {
})
}
Object.keys(eventApi).forEach(name => {
uni[name] = eventApi[name]
})
Object.keys(api).forEach(name => {
uni[name] = promisify(name, api[name])
})
......@@ -87,15 +96,21 @@ if (typeof Proxy !== 'undefined') {
}
})
}
__GLOBAL__.createApp = createApp
__GLOBAL__.createPage = createPage
__GLOBAL__.createComponent = createComponent
export {
createApp,
createPage,
createComponent
}
if (__PLATFORM__ === 'app-plus') {
if (typeof global !== 'undefined') {
global.UniEmitter = eventApi
}
}
__GLOBAL__.createApp = createApp
__GLOBAL__.createPage = createPage
__GLOBAL__.createComponent = createComponent
export {
createApp,
createPage,
createComponent
}
export default uni
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)
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册