@cloudbase/model 2.8.27-beta.0 → 2.8.29-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,3 +1,5 @@
1
1
  import { ICloudbase } from '@cloudbase/types';
2
+ declare function getEntity(cloudbase: any): import("@cloudbase/wx-cloud-client-sdk").OrmClient;
3
+ export declare function lazyGetEntity(cloudbase: ICloudbase): ReturnType<typeof getEntity>;
2
4
  export declare function registerModel(app: ICloudbase): void;
3
5
  export * from '@cloudbase/wx-cloud-client-sdk';
package/dist/cjs/index.js CHANGED
@@ -61,8 +61,10 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
61
61
  }
62
62
  };
63
63
  Object.defineProperty(exports, "__esModule", { value: true });
64
- exports.registerModel = void 0;
64
+ exports.registerModel = exports.lazyGetEntity = void 0;
65
65
  var wx_cloud_client_sdk_1 = require("@cloudbase/wx-cloud-client-sdk");
66
+ var utilities_1 = require("@cloudbase/utilities");
67
+ var CloudbaseEventEmitter = utilities_1.events.CloudbaseEventEmitter;
66
68
  var COMPONENT_NAME = 'models';
67
69
  function getEntity(cloudbase) {
68
70
  var _this = this;
@@ -85,30 +87,45 @@ function getEntity(cloudbase) {
85
87
  var entity = (0, wx_cloud_client_sdk_1.generateHTTPClient)(callFunction, fetch, baseUrl);
86
88
  return entity;
87
89
  }
90
+ var cloudbaseModelMap = new WeakMap();
88
91
  function lazyGetEntity(cloudbase) {
89
- var entity;
90
92
  return new Proxy({}, {
91
93
  get: function (_, prop) {
94
+ var entity = cloudbaseModelMap.get(cloudbase);
92
95
  if (!entity) {
93
96
  entity = getEntity(cloudbase);
97
+ cloudbaseModelMap.set(cloudbase, entity);
94
98
  }
95
99
  return entity[prop];
96
100
  },
97
101
  });
98
102
  }
99
- var getComponent = function (cloudbase) { return ({
103
+ exports.lazyGetEntity = lazyGetEntity;
104
+ var CLOUDBASE_INIT_EVENT = 'cloudbase_init';
105
+ var bus = new CloudbaseEventEmitter();
106
+ bus.on(CLOUDBASE_INIT_EVENT, function (_a) {
107
+ var cloudbase = _a.data;
108
+ Object.assign(cloudbase, { models: lazyGetEntity(cloudbase) });
109
+ });
110
+ var component = {
100
111
  name: COMPONENT_NAME,
101
112
  namespace: COMPONENT_NAME,
102
- entity: lazyGetEntity(cloudbase),
103
- }); };
113
+ entity: new Proxy({}, {
114
+ get: function (_, prop) {
115
+ console.warn("\u3010deprecated\u3011Accessing Cloudbase.prototype.models.".concat(prop, "."));
116
+ },
117
+ }),
118
+ injectEvents: {
119
+ bus: bus,
120
+ events: [CLOUDBASE_INIT_EVENT],
121
+ },
122
+ };
104
123
  try {
105
- var component = getComponent(cloudbase);
106
124
  cloudbase.registerComponent(component);
107
125
  }
108
126
  catch (e) { }
109
127
  function registerModel(app) {
110
128
  try {
111
- var component = getComponent(app);
112
129
  app.registerComponent(component);
113
130
  }
114
131
  catch (e) {
@@ -117,4 +134,4 @@ function registerModel(app) {
117
134
  }
118
135
  exports.registerModel = registerModel;
119
136
  __exportStar(require("@cloudbase/wx-cloud-client-sdk"), exports);
120
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBLHNFQUFtRTtBQU1uRSxJQUFNLGNBQWMsR0FBRyxRQUFRLENBQUE7QUFFL0IsU0FBUyxTQUFTLENBQUMsU0FBYztJQUFqQyxpQkF3QkM7SUF2QkMsSUFBTSxZQUFZLEdBQUcsU0FBUyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUE7SUFDM0QsSUFBTSxjQUFjLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUN0RSxJQUFNLEtBQUssR0FBRyxVQUFPLFlBQTJCOzs7O3dCQUNsQyxXQUFNLGNBQWMsdUJBQzNCLFlBQVksS0FDZixPQUFPLGFBQ0wsY0FBYyxFQUFFLGtCQUFrQixJQUMvQixZQUFZLENBQUMsT0FBTyxLQUV6QixFQUFBOztvQkFOSSxHQUFHLEdBQUcsU0FNVjtvQkFFSyxXQUFNLEdBQUcsQ0FBQyxJQUFJLEVBQUE7d0JBQXJCLFdBQU8sU0FBYyxFQUFBOzs7U0FDdEIsQ0FBQTtJQUVLLElBQUEsS0FBeUIsU0FBUyxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FHcEUsRUFITyxRQUFRLGNBQUEsRUFBRSxRQUFRLGNBR3pCLENBQUE7SUFDRCxJQUFNLE9BQU8sR0FBRyxVQUFHLFFBQVEsU0FBRyxRQUFRLFdBQVEsQ0FBQTtJQUU5QyxJQUFNLE1BQU0sR0FBRyxJQUFBLHdDQUFrQixFQUFDLFlBQVksRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUE7SUFFL0QsT0FBTyxNQUFNLENBQUE7QUFDZixDQUFDO0FBT0QsU0FBUyxhQUFhLENBQUMsU0FBcUI7SUFDMUMsSUFBSSxNQUFvQyxDQUFBO0lBQ3hDLE9BQU8sSUFBSSxLQUFLLENBQ2QsRUFBRSxFQUNGO1FBQ0UsR0FBRyxFQUFFLFVBQUMsQ0FBQyxFQUFFLElBQVk7WUFDbkIsSUFBSSxDQUFDLE1BQU0sRUFBRTtnQkFDWCxNQUFNLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFBO2FBQzlCO1lBQ0QsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDckIsQ0FBQztLQUNGLENBQ0YsQ0FBQTtBQUNILENBQUM7QUFFRCxJQUFNLFlBQVksR0FBRyxVQUFDLFNBQXFCLElBQTBCLE9BQUEsQ0FBQztJQUNwRSxJQUFJLEVBQUUsY0FBYztJQUNwQixTQUFTLEVBQUUsY0FBYztJQUN6QixNQUFNLEVBQUUsYUFBYSxDQUFDLFNBQVMsQ0FBQztDQUNqQyxDQUFDLEVBSm1FLENBSW5FLENBQUE7QUFFRixJQUFJO0lBQ0YsSUFBTSxTQUFTLEdBQUcsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBQ3pDLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQTtDQUN2QztBQUFDLE9BQU8sQ0FBQyxFQUFFLEdBQUc7QUFFZixTQUFnQixhQUFhLENBQUMsR0FBZTtJQUMzQyxJQUFJO1FBQ0YsSUFBTSxTQUFTLEdBQUcsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQ25DLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQTtLQUNqQztJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1YsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtLQUNoQjtBQUNILENBQUM7QUFQRCxzQ0FPQztBQUVELGlFQUE4QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElDbG91ZGJhc2UgfSBmcm9tICdAY2xvdWRiYXNlL3R5cGVzJ1xuaW1wb3J0IHsgSUNsb3VkYmFzZUNvbXBvbmVudCB9IGZyb20gJ0BjbG91ZGJhc2UvdHlwZXMvY29tcG9uZW50J1xuaW1wb3J0IHsgZ2VuZXJhdGVIVFRQQ2xpZW50IH0gZnJvbSAnQGNsb3VkYmFzZS93eC1jbG91ZC1jbGllbnQtc2RrJ1xuXG5kZWNsYXJlIGNvbnN0IGNsb3VkYmFzZTogSUNsb3VkYmFzZVxuXG50eXBlIElGZXRjaE9wdGlvbnMgPSBQYXJhbWV0ZXJzPElDbG91ZGJhc2VbJ3JlcXVlc3QnXVsnZmV0Y2gnXT5bMF1cblxuY29uc3QgQ09NUE9ORU5UX05BTUUgPSAnbW9kZWxzJ1xuXG5mdW5jdGlvbiBnZXRFbnRpdHkoY2xvdWRiYXNlOiBhbnkpIHtcbiAgY29uc3QgY2FsbEZ1bmN0aW9uID0gY2xvdWRiYXNlLmNhbGxGdW5jdGlvbi5iaW5kKGNsb3VkYmFzZSlcbiAgY29uc3QgY2xvdWRiYXNlRmV0Y2ggPSBjbG91ZGJhc2UucmVxdWVzdC5mZXRjaC5iaW5kKGNsb3VkYmFzZS5yZXF1ZXN0KVxuICBjb25zdCBmZXRjaCA9IGFzeW5jIChmZXRjaE9wdGlvbnM6IElGZXRjaE9wdGlvbnMpID0+IHtcbiAgICBjb25zdCByZXMgPSBhd2FpdCBjbG91ZGJhc2VGZXRjaCh7XG4gICAgICAuLi5mZXRjaE9wdGlvbnMsXG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgIC4uLmZldGNoT3B0aW9ucy5oZWFkZXJzLFxuICAgICAgfSxcbiAgICB9KVxuXG4gICAgcmV0dXJuIGF3YWl0IHJlcy5kYXRhXG4gIH1cblxuICBjb25zdCB7IEJBU0VfVVJMLCBQUk9UT0NPTCB9ID0gY2xvdWRiYXNlLmdldEVuZFBvaW50V2l0aEtleSgnR0FURVdBWScpIGFzIHtcbiAgICBCQVNFX1VSTDogc3RyaW5nXG4gICAgUFJPVE9DT0w6IHN0cmluZ1xuICB9XG4gIGNvbnN0IGJhc2VVcmwgPSBgJHtQUk9UT0NPTH0ke0JBU0VfVVJMfS9tb2RlbGBcblxuICBjb25zdCBlbnRpdHkgPSBnZW5lcmF0ZUhUVFBDbGllbnQoY2FsbEZ1bmN0aW9uLCBmZXRjaCwgYmFzZVVybClcblxuICByZXR1cm4gZW50aXR5XG59XG5cbi8qKlxuICog5Yib5bu6IG1vZGVscyBlbnRpdHkg5pe277yM6ZyA6KaBIGJhc2VVcmzjgIFmZXRjaO+8jOiAjOi/meS4pOS4quWPguaVsOmDvemcgOimgeWcqCBjbG91ZGJhc2UuaW5pdCDkuYvlkI7miY3og73ojrflj5bjgIJcbiAqIOWboOatpOmcgOimgeWcqCBjbG91ZGJhc2UuaW5pdCDkuYvlkI7miafooYzjgIJcbiAqIOatpOWHveaVsOWwhuWIm+W7uiBlbnRpdHkg55qE5q2l6aqk5bu25ZCO5Yiw56ys5LiA5qyh6K+75Y+WIG1vZGVscyDkuIrnmoTlsZ7mgKfml7bmiafooYzjgIJcbiAqL1xuZnVuY3Rpb24gbGF6eUdldEVudGl0eShjbG91ZGJhc2U6IElDbG91ZGJhc2UpOiBSZXR1cm5UeXBlPHR5cGVvZiBnZXRFbnRpdHk+IHtcbiAgbGV0IGVudGl0eTogUmV0dXJuVHlwZTx0eXBlb2YgZ2V0RW50aXR5PlxuICByZXR1cm4gbmV3IFByb3h5KFxuICAgIHt9LFxuICAgIHtcbiAgICAgIGdldDogKF8sIHByb3A6IHN0cmluZykgPT4ge1xuICAgICAgICBpZiAoIWVudGl0eSkge1xuICAgICAgICAgIGVudGl0eSA9IGdldEVudGl0eShjbG91ZGJhc2UpXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGVudGl0eVtwcm9wXVxuICAgICAgfSxcbiAgICB9LFxuICApXG59XG5cbmNvbnN0IGdldENvbXBvbmVudCA9IChjbG91ZGJhc2U6IElDbG91ZGJhc2UpOiBJQ2xvdWRiYXNlQ29tcG9uZW50ID0+ICh7XG4gIG5hbWU6IENPTVBPTkVOVF9OQU1FLFxuICBuYW1lc3BhY2U6IENPTVBPTkVOVF9OQU1FLFxuICBlbnRpdHk6IGxhenlHZXRFbnRpdHkoY2xvdWRiYXNlKSxcbn0pXG5cbnRyeSB7XG4gIGNvbnN0IGNvbXBvbmVudCA9IGdldENvbXBvbmVudChjbG91ZGJhc2UpXG4gIGNsb3VkYmFzZS5yZWdpc3RlckNvbXBvbmVudChjb21wb25lbnQpXG59IGNhdGNoIChlKSB7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyTW9kZWwoYXBwOiBJQ2xvdWRiYXNlKSB7XG4gIHRyeSB7XG4gICAgY29uc3QgY29tcG9uZW50ID0gZ2V0Q29tcG9uZW50KGFwcClcbiAgICBhcHAucmVnaXN0ZXJDb21wb25lbnQoY29tcG9uZW50KVxuICB9IGNhdGNoIChlKSB7XG4gICAgY29uc29sZS53YXJuKGUpXG4gIH1cbn1cblxuZXhwb3J0ICogZnJvbSAnQGNsb3VkYmFzZS93eC1jbG91ZC1jbGllbnQtc2RrJ1xuIl19
137
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBLHNFQUFtRTtBQUNuRSxrREFBNkM7QUFFckMsSUFBQSxxQkFBcUIsR0FBSyxrQkFBTSxzQkFBWCxDQUFXO0FBTXhDLElBQU0sY0FBYyxHQUFHLFFBQVEsQ0FBQTtBQUUvQixTQUFTLFNBQVMsQ0FBQyxTQUFjO0lBQWpDLGlCQXdCQztJQXZCQyxJQUFNLFlBQVksR0FBRyxTQUFTLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUMzRCxJQUFNLGNBQWMsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQ3RFLElBQU0sS0FBSyxHQUFHLFVBQU8sWUFBMkI7Ozs7d0JBQ2xDLFdBQU0sY0FBYyx1QkFDM0IsWUFBWSxLQUNmLE9BQU8sYUFDTCxjQUFjLEVBQUUsa0JBQWtCLElBQy9CLFlBQVksQ0FBQyxPQUFPLEtBRXpCLEVBQUE7O29CQU5JLEdBQUcsR0FBRyxTQU1WO29CQUVLLFdBQU0sR0FBRyxDQUFDLElBQUksRUFBQTt3QkFBckIsV0FBTyxTQUFjLEVBQUE7OztTQUN0QixDQUFBO0lBRUssSUFBQSxLQUF5QixTQUFTLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUdwRSxFQUhPLFFBQVEsY0FBQSxFQUFFLFFBQVEsY0FHekIsQ0FBQTtJQUNELElBQU0sT0FBTyxHQUFHLFVBQUcsUUFBUSxTQUFHLFFBQVEsV0FBUSxDQUFBO0lBRTlDLElBQU0sTUFBTSxHQUFHLElBQUEsd0NBQWtCLEVBQUMsWUFBWSxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQTtJQUUvRCxPQUFPLE1BQU0sQ0FBQTtBQUNmLENBQUM7QUFFRCxJQUFNLGlCQUFpQixHQUFHLElBQUksT0FBTyxFQUFFLENBQUE7QUFPdkMsU0FBZ0IsYUFBYSxDQUFDLFNBQXFCO0lBQ2pELE9BQU8sSUFBSSxLQUFLLENBQ2QsRUFBRSxFQUNGO1FBQ0UsR0FBRyxFQUFFLFVBQUMsQ0FBQyxFQUFFLElBQVk7WUFDbkIsSUFBSSxNQUFNLEdBQUcsaUJBQWlCLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFBO1lBQzdDLElBQUksQ0FBQyxNQUFNLEVBQUU7Z0JBQ1gsTUFBTSxHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQTtnQkFDN0IsaUJBQWlCLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQTthQUN6QztZQUNELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ3JCLENBQUM7S0FDRixDQUNGLENBQUE7QUFDSCxDQUFDO0FBZEQsc0NBY0M7QUFFRCxJQUFNLG9CQUFvQixHQUFHLGdCQUFnQixDQUFBO0FBRTdDLElBQU0sR0FBRyxHQUFHLElBQUkscUJBQXFCLEVBQUUsQ0FBQTtBQUV2QyxHQUFHLENBQUMsRUFBRSxDQUFDLG9CQUFvQixFQUFFLFVBQUMsRUFBeUM7UUFBakMsU0FBUyxVQUFBO0lBQzdDLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLEVBQUUsTUFBTSxFQUFFLGFBQWEsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUE7QUFDaEUsQ0FBQyxDQUFDLENBQUE7QUFFRixJQUFNLFNBQVMsR0FBd0I7SUFDckMsSUFBSSxFQUFFLGNBQWM7SUFDcEIsU0FBUyxFQUFFLGNBQWM7SUFDekIsTUFBTSxFQUFFLElBQUksS0FBSyxDQUNmLEVBQUUsRUFDRjtRQUNFLEdBQUcsRUFBRSxVQUFDLENBQUMsRUFBRSxJQUFZO1lBQ25CLE9BQU8sQ0FBQyxJQUFJLENBQUMscUVBQW9ELElBQUksTUFBRyxDQUFDLENBQUE7UUFDM0UsQ0FBQztLQUNGLENBQ0Y7SUFDRCxZQUFZLEVBQUU7UUFDWixHQUFHLEtBQUE7UUFDSCxNQUFNLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQztLQUMvQjtDQUNGLENBQUE7QUFFRCxJQUFJO0lBQ0YsU0FBUyxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxDQUFBO0NBQ3ZDO0FBQUMsT0FBTyxDQUFDLEVBQUUsR0FBRztBQUVmLFNBQWdCLGFBQWEsQ0FBQyxHQUFlO0lBQzNDLElBQUk7UUFDRixHQUFHLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLENBQUE7S0FDakM7SUFBQyxPQUFPLENBQUMsRUFBRTtRQUNWLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7S0FDaEI7QUFDSCxDQUFDO0FBTkQsc0NBTUM7QUFFRCxpRUFBOEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJQ2xvdWRiYXNlIH0gZnJvbSAnQGNsb3VkYmFzZS90eXBlcydcbmltcG9ydCB7IElDbG91ZGJhc2VDb21wb25lbnQgfSBmcm9tICdAY2xvdWRiYXNlL3R5cGVzL2NvbXBvbmVudCdcbmltcG9ydCB7IGdlbmVyYXRlSFRUUENsaWVudCB9IGZyb20gJ0BjbG91ZGJhc2Uvd3gtY2xvdWQtY2xpZW50LXNkaydcbmltcG9ydCB7IGV2ZW50cyB9IGZyb20gJ0BjbG91ZGJhc2UvdXRpbGl0aWVzJ1xuXG5jb25zdCB7IENsb3VkYmFzZUV2ZW50RW1pdHRlciB9ID0gZXZlbnRzXG5cbmRlY2xhcmUgY29uc3QgY2xvdWRiYXNlOiBJQ2xvdWRiYXNlXG5cbnR5cGUgSUZldGNoT3B0aW9ucyA9IFBhcmFtZXRlcnM8SUNsb3VkYmFzZVsncmVxdWVzdCddWydmZXRjaCddPlswXVxuXG5jb25zdCBDT01QT05FTlRfTkFNRSA9ICdtb2RlbHMnXG5cbmZ1bmN0aW9uIGdldEVudGl0eShjbG91ZGJhc2U6IGFueSkge1xuICBjb25zdCBjYWxsRnVuY3Rpb24gPSBjbG91ZGJhc2UuY2FsbEZ1bmN0aW9uLmJpbmQoY2xvdWRiYXNlKVxuICBjb25zdCBjbG91ZGJhc2VGZXRjaCA9IGNsb3VkYmFzZS5yZXF1ZXN0LmZldGNoLmJpbmQoY2xvdWRiYXNlLnJlcXVlc3QpXG4gIGNvbnN0IGZldGNoID0gYXN5bmMgKGZldGNoT3B0aW9uczogSUZldGNoT3B0aW9ucykgPT4ge1xuICAgIGNvbnN0IHJlcyA9IGF3YWl0IGNsb3VkYmFzZUZldGNoKHtcbiAgICAgIC4uLmZldGNoT3B0aW9ucyxcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgLi4uZmV0Y2hPcHRpb25zLmhlYWRlcnMsXG4gICAgICB9LFxuICAgIH0pXG5cbiAgICByZXR1cm4gYXdhaXQgcmVzLmRhdGFcbiAgfVxuXG4gIGNvbnN0IHsgQkFTRV9VUkwsIFBST1RPQ09MIH0gPSBjbG91ZGJhc2UuZ2V0RW5kUG9pbnRXaXRoS2V5KCdHQVRFV0FZJykgYXMge1xuICAgIEJBU0VfVVJMOiBzdHJpbmdcbiAgICBQUk9UT0NPTDogc3RyaW5nXG4gIH1cbiAgY29uc3QgYmFzZVVybCA9IGAke1BST1RPQ09MfSR7QkFTRV9VUkx9L21vZGVsYFxuXG4gIGNvbnN0IGVudGl0eSA9IGdlbmVyYXRlSFRUUENsaWVudChjYWxsRnVuY3Rpb24sIGZldGNoLCBiYXNlVXJsKVxuXG4gIHJldHVybiBlbnRpdHlcbn1cblxuY29uc3QgY2xvdWRiYXNlTW9kZWxNYXAgPSBuZXcgV2Vha01hcCgpXG5cbi8qKlxuICog5Yib5bu6IG1vZGVscyBlbnRpdHkg5pe277yM6ZyA6KaBIGJhc2VVcmzjgIFmZXRjaO+8jOiAjOi/meS4pOS4quWPguaVsOmDvemcgOimgeWcqCBjbG91ZGJhc2UuaW5pdCDkuYvlkI7miY3og73ojrflj5bjgIJcbiAqIOWboOatpOmcgOimgeWcqCBjbG91ZGJhc2UuaW5pdCDkuYvlkI7miafooYzjgIJcbiAqIOatpOWHveaVsOWwhuWIm+W7uiBlbnRpdHkg55qE5q2l6aqk5bu25ZCO5Yiw56ys5LiA5qyh6K+75Y+WIG1vZGVscyDkuIrnmoTlsZ7mgKfml7bmiafooYzjgIJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGxhenlHZXRFbnRpdHkoY2xvdWRiYXNlOiBJQ2xvdWRiYXNlKTogUmV0dXJuVHlwZTx0eXBlb2YgZ2V0RW50aXR5PiB7XG4gIHJldHVybiBuZXcgUHJveHkoXG4gICAge30sXG4gICAge1xuICAgICAgZ2V0OiAoXywgcHJvcDogc3RyaW5nKSA9PiB7XG4gICAgICAgIGxldCBlbnRpdHkgPSBjbG91ZGJhc2VNb2RlbE1hcC5nZXQoY2xvdWRiYXNlKVxuICAgICAgICBpZiAoIWVudGl0eSkge1xuICAgICAgICAgIGVudGl0eSA9IGdldEVudGl0eShjbG91ZGJhc2UpXG4gICAgICAgICAgY2xvdWRiYXNlTW9kZWxNYXAuc2V0KGNsb3VkYmFzZSwgZW50aXR5KVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBlbnRpdHlbcHJvcF1cbiAgICAgIH0sXG4gICAgfSxcbiAgKVxufVxuXG5jb25zdCBDTE9VREJBU0VfSU5JVF9FVkVOVCA9ICdjbG91ZGJhc2VfaW5pdCdcblxuY29uc3QgYnVzID0gbmV3IENsb3VkYmFzZUV2ZW50RW1pdHRlcigpXG5cbmJ1cy5vbihDTE9VREJBU0VfSU5JVF9FVkVOVCwgKHsgZGF0YTogY2xvdWRiYXNlIH06IHsgZGF0YTogSUNsb3VkYmFzZSB9KSA9PiB7XG4gIE9iamVjdC5hc3NpZ24oY2xvdWRiYXNlLCB7IG1vZGVsczogbGF6eUdldEVudGl0eShjbG91ZGJhc2UpIH0pXG59KVxuXG5jb25zdCBjb21wb25lbnQ6IElDbG91ZGJhc2VDb21wb25lbnQgPSB7XG4gIG5hbWU6IENPTVBPTkVOVF9OQU1FLFxuICBuYW1lc3BhY2U6IENPTVBPTkVOVF9OQU1FLFxuICBlbnRpdHk6IG5ldyBQcm94eShcbiAgICB7fSxcbiAgICB7XG4gICAgICBnZXQ6IChfLCBwcm9wOiBzdHJpbmcpID0+IHtcbiAgICAgICAgY29uc29sZS53YXJuKGDjgJBkZXByZWNhdGVk44CRQWNjZXNzaW5nIENsb3VkYmFzZS5wcm90b3R5cGUubW9kZWxzLiR7cHJvcH0uYClcbiAgICAgIH0sXG4gICAgfSxcbiAgKSxcbiAgaW5qZWN0RXZlbnRzOiB7XG4gICAgYnVzLFxuICAgIGV2ZW50czogW0NMT1VEQkFTRV9JTklUX0VWRU5UXSxcbiAgfSxcbn1cblxudHJ5IHtcbiAgY2xvdWRiYXNlLnJlZ2lzdGVyQ29tcG9uZW50KGNvbXBvbmVudClcbn0gY2F0Y2ggKGUpIHsgfVxuXG5leHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXJNb2RlbChhcHA6IElDbG91ZGJhc2UpIHtcbiAgdHJ5IHtcbiAgICBhcHAucmVnaXN0ZXJDb21wb25lbnQoY29tcG9uZW50KVxuICB9IGNhdGNoIChlKSB7XG4gICAgY29uc29sZS53YXJuKGUpXG4gIH1cbn1cblxuZXhwb3J0ICogZnJvbSAnQGNsb3VkYmFzZS93eC1jbG91ZC1jbGllbnQtc2RrJ1xuIl19
@@ -1,3 +1,5 @@
1
1
  import { ICloudbase } from '@cloudbase/types';
2
+ declare function getEntity(cloudbase: any): import("@cloudbase/wx-cloud-client-sdk").OrmClient;
3
+ export declare function lazyGetEntity(cloudbase: ICloudbase): ReturnType<typeof getEntity>;
2
4
  export declare function registerModel(app: ICloudbase): void;
3
5
  export * from '@cloudbase/wx-cloud-client-sdk';
package/dist/esm/index.js CHANGED
@@ -46,6 +46,8 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
46
46
  }
47
47
  };
48
48
  import { generateHTTPClient } from '@cloudbase/wx-cloud-client-sdk';
49
+ import { events } from '@cloudbase/utilities';
50
+ var CloudbaseEventEmitter = events.CloudbaseEventEmitter;
49
51
  var COMPONENT_NAME = 'models';
50
52
  function getEntity(cloudbase) {
51
53
  var _this = this;
@@ -68,30 +70,44 @@ function getEntity(cloudbase) {
68
70
  var entity = generateHTTPClient(callFunction, fetch, baseUrl);
69
71
  return entity;
70
72
  }
71
- function lazyGetEntity(cloudbase) {
72
- var entity;
73
+ var cloudbaseModelMap = new WeakMap();
74
+ export function lazyGetEntity(cloudbase) {
73
75
  return new Proxy({}, {
74
76
  get: function (_, prop) {
77
+ var entity = cloudbaseModelMap.get(cloudbase);
75
78
  if (!entity) {
76
79
  entity = getEntity(cloudbase);
80
+ cloudbaseModelMap.set(cloudbase, entity);
77
81
  }
78
82
  return entity[prop];
79
83
  },
80
84
  });
81
85
  }
82
- var getComponent = function (cloudbase) { return ({
86
+ var CLOUDBASE_INIT_EVENT = 'cloudbase_init';
87
+ var bus = new CloudbaseEventEmitter();
88
+ bus.on(CLOUDBASE_INIT_EVENT, function (_a) {
89
+ var cloudbase = _a.data;
90
+ Object.assign(cloudbase, { models: lazyGetEntity(cloudbase) });
91
+ });
92
+ var component = {
83
93
  name: COMPONENT_NAME,
84
94
  namespace: COMPONENT_NAME,
85
- entity: lazyGetEntity(cloudbase),
86
- }); };
95
+ entity: new Proxy({}, {
96
+ get: function (_, prop) {
97
+ console.warn("\u3010deprecated\u3011Accessing Cloudbase.prototype.models.".concat(prop, "."));
98
+ },
99
+ }),
100
+ injectEvents: {
101
+ bus: bus,
102
+ events: [CLOUDBASE_INIT_EVENT],
103
+ },
104
+ };
87
105
  try {
88
- var component = getComponent(cloudbase);
89
106
  cloudbase.registerComponent(component);
90
107
  }
91
108
  catch (e) { }
92
109
  export function registerModel(app) {
93
110
  try {
94
- var component = getComponent(app);
95
111
  app.registerComponent(component);
96
112
  }
97
113
  catch (e) {
@@ -99,4 +115,4 @@ export function registerModel(app) {
99
115
  }
100
116
  }
101
117
  export * from '@cloudbase/wx-cloud-client-sdk';
102
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQTtBQU1uRSxJQUFNLGNBQWMsR0FBRyxRQUFRLENBQUE7QUFFL0IsU0FBUyxTQUFTLENBQUMsU0FBYztJQUFqQyxpQkF3QkM7SUF2QkMsSUFBTSxZQUFZLEdBQUcsU0FBUyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUE7SUFDM0QsSUFBTSxjQUFjLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUN0RSxJQUFNLEtBQUssR0FBRyxVQUFPLFlBQTJCOzs7O3dCQUNsQyxXQUFNLGNBQWMsdUJBQzNCLFlBQVksS0FDZixPQUFPLGFBQ0wsY0FBYyxFQUFFLGtCQUFrQixJQUMvQixZQUFZLENBQUMsT0FBTyxLQUV6QixFQUFBOztvQkFOSSxHQUFHLEdBQUcsU0FNVjtvQkFFSyxXQUFNLEdBQUcsQ0FBQyxJQUFJLEVBQUE7d0JBQXJCLFdBQU8sU0FBYyxFQUFBOzs7U0FDdEIsQ0FBQTtJQUVLLElBQUEsS0FBeUIsU0FBUyxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FHcEUsRUFITyxRQUFRLGNBQUEsRUFBRSxRQUFRLGNBR3pCLENBQUE7SUFDRCxJQUFNLE9BQU8sR0FBRyxVQUFHLFFBQVEsU0FBRyxRQUFRLFdBQVEsQ0FBQTtJQUU5QyxJQUFNLE1BQU0sR0FBRyxrQkFBa0IsQ0FBQyxZQUFZLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFBO0lBRS9ELE9BQU8sTUFBTSxDQUFBO0FBQ2YsQ0FBQztBQU9ELFNBQVMsYUFBYSxDQUFDLFNBQXFCO0lBQzFDLElBQUksTUFBb0MsQ0FBQTtJQUN4QyxPQUFPLElBQUksS0FBSyxDQUNkLEVBQUUsRUFDRjtRQUNFLEdBQUcsRUFBRSxVQUFDLENBQUMsRUFBRSxJQUFZO1lBQ25CLElBQUksQ0FBQyxNQUFNLEVBQUU7Z0JBQ1gsTUFBTSxHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQTthQUM5QjtZQUNELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ3JCLENBQUM7S0FDRixDQUNGLENBQUE7QUFDSCxDQUFDO0FBRUQsSUFBTSxZQUFZLEdBQUcsVUFBQyxTQUFxQixJQUEwQixPQUFBLENBQUM7SUFDcEUsSUFBSSxFQUFFLGNBQWM7SUFDcEIsU0FBUyxFQUFFLGNBQWM7SUFDekIsTUFBTSxFQUFFLGFBQWEsQ0FBQyxTQUFTLENBQUM7Q0FDakMsQ0FBQyxFQUptRSxDQUluRSxDQUFBO0FBRUYsSUFBSTtJQUNGLElBQU0sU0FBUyxHQUFHLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUN6QyxTQUFTLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLENBQUE7Q0FDdkM7QUFBQyxPQUFPLENBQUMsRUFBRSxHQUFHO0FBRWYsTUFBTSxVQUFVLGFBQWEsQ0FBQyxHQUFlO0lBQzNDLElBQUk7UUFDRixJQUFNLFNBQVMsR0FBRyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDbkMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxDQUFBO0tBQ2pDO0lBQUMsT0FBTyxDQUFDLEVBQUU7UUFDVixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO0tBQ2hCO0FBQ0gsQ0FBQztBQUVELGNBQWMsZ0NBQWdDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJQ2xvdWRiYXNlIH0gZnJvbSAnQGNsb3VkYmFzZS90eXBlcydcbmltcG9ydCB7IElDbG91ZGJhc2VDb21wb25lbnQgfSBmcm9tICdAY2xvdWRiYXNlL3R5cGVzL2NvbXBvbmVudCdcbmltcG9ydCB7IGdlbmVyYXRlSFRUUENsaWVudCB9IGZyb20gJ0BjbG91ZGJhc2Uvd3gtY2xvdWQtY2xpZW50LXNkaydcblxuZGVjbGFyZSBjb25zdCBjbG91ZGJhc2U6IElDbG91ZGJhc2VcblxudHlwZSBJRmV0Y2hPcHRpb25zID0gUGFyYW1ldGVyczxJQ2xvdWRiYXNlWydyZXF1ZXN0J11bJ2ZldGNoJ10+WzBdXG5cbmNvbnN0IENPTVBPTkVOVF9OQU1FID0gJ21vZGVscydcblxuZnVuY3Rpb24gZ2V0RW50aXR5KGNsb3VkYmFzZTogYW55KSB7XG4gIGNvbnN0IGNhbGxGdW5jdGlvbiA9IGNsb3VkYmFzZS5jYWxsRnVuY3Rpb24uYmluZChjbG91ZGJhc2UpXG4gIGNvbnN0IGNsb3VkYmFzZUZldGNoID0gY2xvdWRiYXNlLnJlcXVlc3QuZmV0Y2guYmluZChjbG91ZGJhc2UucmVxdWVzdClcbiAgY29uc3QgZmV0Y2ggPSBhc3luYyAoZmV0Y2hPcHRpb25zOiBJRmV0Y2hPcHRpb25zKSA9PiB7XG4gICAgY29uc3QgcmVzID0gYXdhaXQgY2xvdWRiYXNlRmV0Y2goe1xuICAgICAgLi4uZmV0Y2hPcHRpb25zLFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAuLi5mZXRjaE9wdGlvbnMuaGVhZGVycyxcbiAgICAgIH0sXG4gICAgfSlcblxuICAgIHJldHVybiBhd2FpdCByZXMuZGF0YVxuICB9XG5cbiAgY29uc3QgeyBCQVNFX1VSTCwgUFJPVE9DT0wgfSA9IGNsb3VkYmFzZS5nZXRFbmRQb2ludFdpdGhLZXkoJ0dBVEVXQVknKSBhcyB7XG4gICAgQkFTRV9VUkw6IHN0cmluZ1xuICAgIFBST1RPQ09MOiBzdHJpbmdcbiAgfVxuICBjb25zdCBiYXNlVXJsID0gYCR7UFJPVE9DT0x9JHtCQVNFX1VSTH0vbW9kZWxgXG5cbiAgY29uc3QgZW50aXR5ID0gZ2VuZXJhdGVIVFRQQ2xpZW50KGNhbGxGdW5jdGlvbiwgZmV0Y2gsIGJhc2VVcmwpXG5cbiAgcmV0dXJuIGVudGl0eVxufVxuXG4vKipcbiAqIOWIm+W7uiBtb2RlbHMgZW50aXR5IOaXtu+8jOmcgOimgSBiYXNlVXJs44CBZmV0Y2jvvIzogIzov5nkuKTkuKrlj4LmlbDpg73pnIDopoHlnKggY2xvdWRiYXNlLmluaXQg5LmL5ZCO5omN6IO96I635Y+W44CCXG4gKiDlm6DmraTpnIDopoHlnKggY2xvdWRiYXNlLmluaXQg5LmL5ZCO5omn6KGM44CCXG4gKiDmraTlh73mlbDlsIbliJvlu7ogZW50aXR5IOeahOatpemqpOW7tuWQjuWIsOesrOS4gOasoeivu+WPliBtb2RlbHMg5LiK55qE5bGe5oCn5pe25omn6KGM44CCXG4gKi9cbmZ1bmN0aW9uIGxhenlHZXRFbnRpdHkoY2xvdWRiYXNlOiBJQ2xvdWRiYXNlKTogUmV0dXJuVHlwZTx0eXBlb2YgZ2V0RW50aXR5PiB7XG4gIGxldCBlbnRpdHk6IFJldHVyblR5cGU8dHlwZW9mIGdldEVudGl0eT5cbiAgcmV0dXJuIG5ldyBQcm94eShcbiAgICB7fSxcbiAgICB7XG4gICAgICBnZXQ6IChfLCBwcm9wOiBzdHJpbmcpID0+IHtcbiAgICAgICAgaWYgKCFlbnRpdHkpIHtcbiAgICAgICAgICBlbnRpdHkgPSBnZXRFbnRpdHkoY2xvdWRiYXNlKVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBlbnRpdHlbcHJvcF1cbiAgICAgIH0sXG4gICAgfSxcbiAgKVxufVxuXG5jb25zdCBnZXRDb21wb25lbnQgPSAoY2xvdWRiYXNlOiBJQ2xvdWRiYXNlKTogSUNsb3VkYmFzZUNvbXBvbmVudCA9PiAoe1xuICBuYW1lOiBDT01QT05FTlRfTkFNRSxcbiAgbmFtZXNwYWNlOiBDT01QT05FTlRfTkFNRSxcbiAgZW50aXR5OiBsYXp5R2V0RW50aXR5KGNsb3VkYmFzZSksXG59KVxuXG50cnkge1xuICBjb25zdCBjb21wb25lbnQgPSBnZXRDb21wb25lbnQoY2xvdWRiYXNlKVxuICBjbG91ZGJhc2UucmVnaXN0ZXJDb21wb25lbnQoY29tcG9uZW50KVxufSBjYXRjaCAoZSkgeyB9XG5cbmV4cG9ydCBmdW5jdGlvbiByZWdpc3Rlck1vZGVsKGFwcDogSUNsb3VkYmFzZSkge1xuICB0cnkge1xuICAgIGNvbnN0IGNvbXBvbmVudCA9IGdldENvbXBvbmVudChhcHApXG4gICAgYXBwLnJlZ2lzdGVyQ29tcG9uZW50KGNvbXBvbmVudClcbiAgfSBjYXRjaCAoZSkge1xuICAgIGNvbnNvbGUud2FybihlKVxuICB9XG59XG5cbmV4cG9ydCAqIGZyb20gJ0BjbG91ZGJhc2Uvd3gtY2xvdWQtY2xpZW50LXNkaydcbiJdfQ==
118
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQTtBQUNuRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFFckMsSUFBQSxxQkFBcUIsR0FBSyxNQUFNLHNCQUFYLENBQVc7QUFNeEMsSUFBTSxjQUFjLEdBQUcsUUFBUSxDQUFBO0FBRS9CLFNBQVMsU0FBUyxDQUFDLFNBQWM7SUFBakMsaUJBd0JDO0lBdkJDLElBQU0sWUFBWSxHQUFHLFNBQVMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBQzNELElBQU0sY0FBYyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDdEUsSUFBTSxLQUFLLEdBQUcsVUFBTyxZQUEyQjs7Ozt3QkFDbEMsV0FBTSxjQUFjLHVCQUMzQixZQUFZLEtBQ2YsT0FBTyxhQUNMLGNBQWMsRUFBRSxrQkFBa0IsSUFDL0IsWUFBWSxDQUFDLE9BQU8sS0FFekIsRUFBQTs7b0JBTkksR0FBRyxHQUFHLFNBTVY7b0JBRUssV0FBTSxHQUFHLENBQUMsSUFBSSxFQUFBO3dCQUFyQixXQUFPLFNBQWMsRUFBQTs7O1NBQ3RCLENBQUE7SUFFSyxJQUFBLEtBQXlCLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBR3BFLEVBSE8sUUFBUSxjQUFBLEVBQUUsUUFBUSxjQUd6QixDQUFBO0lBQ0QsSUFBTSxPQUFPLEdBQUcsVUFBRyxRQUFRLFNBQUcsUUFBUSxXQUFRLENBQUE7SUFFOUMsSUFBTSxNQUFNLEdBQUcsa0JBQWtCLENBQUMsWUFBWSxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQTtJQUUvRCxPQUFPLE1BQU0sQ0FBQTtBQUNmLENBQUM7QUFFRCxJQUFNLGlCQUFpQixHQUFHLElBQUksT0FBTyxFQUFFLENBQUE7QUFPdkMsTUFBTSxVQUFVLGFBQWEsQ0FBQyxTQUFxQjtJQUNqRCxPQUFPLElBQUksS0FBSyxDQUNkLEVBQUUsRUFDRjtRQUNFLEdBQUcsRUFBRSxVQUFDLENBQUMsRUFBRSxJQUFZO1lBQ25CLElBQUksTUFBTSxHQUFHLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQTtZQUM3QyxJQUFJLENBQUMsTUFBTSxFQUFFO2dCQUNYLE1BQU0sR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUE7Z0JBQzdCLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUE7YUFDekM7WUFDRCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUNyQixDQUFDO0tBQ0YsQ0FDRixDQUFBO0FBQ0gsQ0FBQztBQUVELElBQU0sb0JBQW9CLEdBQUcsZ0JBQWdCLENBQUE7QUFFN0MsSUFBTSxHQUFHLEdBQUcsSUFBSSxxQkFBcUIsRUFBRSxDQUFBO0FBRXZDLEdBQUcsQ0FBQyxFQUFFLENBQUMsb0JBQW9CLEVBQUUsVUFBQyxFQUF5QztRQUFqQyxTQUFTLFVBQUE7SUFDN0MsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsRUFBRSxNQUFNLEVBQUUsYUFBYSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQTtBQUNoRSxDQUFDLENBQUMsQ0FBQTtBQUVGLElBQU0sU0FBUyxHQUF3QjtJQUNyQyxJQUFJLEVBQUUsY0FBYztJQUNwQixTQUFTLEVBQUUsY0FBYztJQUN6QixNQUFNLEVBQUUsSUFBSSxLQUFLLENBQ2YsRUFBRSxFQUNGO1FBQ0UsR0FBRyxFQUFFLFVBQUMsQ0FBQyxFQUFFLElBQVk7WUFDbkIsT0FBTyxDQUFDLElBQUksQ0FBQyxxRUFBb0QsSUFBSSxNQUFHLENBQUMsQ0FBQTtRQUMzRSxDQUFDO0tBQ0YsQ0FDRjtJQUNELFlBQVksRUFBRTtRQUNaLEdBQUcsS0FBQTtRQUNILE1BQU0sRUFBRSxDQUFDLG9CQUFvQixDQUFDO0tBQy9CO0NBQ0YsQ0FBQTtBQUVELElBQUk7SUFDRixTQUFTLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLENBQUE7Q0FDdkM7QUFBQyxPQUFPLENBQUMsRUFBRSxHQUFHO0FBRWYsTUFBTSxVQUFVLGFBQWEsQ0FBQyxHQUFlO0lBQzNDLElBQUk7UUFDRixHQUFHLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLENBQUE7S0FDakM7SUFBQyxPQUFPLENBQUMsRUFBRTtRQUNWLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7S0FDaEI7QUFDSCxDQUFDO0FBRUQsY0FBYyxnQ0FBZ0MsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElDbG91ZGJhc2UgfSBmcm9tICdAY2xvdWRiYXNlL3R5cGVzJ1xuaW1wb3J0IHsgSUNsb3VkYmFzZUNvbXBvbmVudCB9IGZyb20gJ0BjbG91ZGJhc2UvdHlwZXMvY29tcG9uZW50J1xuaW1wb3J0IHsgZ2VuZXJhdGVIVFRQQ2xpZW50IH0gZnJvbSAnQGNsb3VkYmFzZS93eC1jbG91ZC1jbGllbnQtc2RrJ1xuaW1wb3J0IHsgZXZlbnRzIH0gZnJvbSAnQGNsb3VkYmFzZS91dGlsaXRpZXMnXG5cbmNvbnN0IHsgQ2xvdWRiYXNlRXZlbnRFbWl0dGVyIH0gPSBldmVudHNcblxuZGVjbGFyZSBjb25zdCBjbG91ZGJhc2U6IElDbG91ZGJhc2VcblxudHlwZSBJRmV0Y2hPcHRpb25zID0gUGFyYW1ldGVyczxJQ2xvdWRiYXNlWydyZXF1ZXN0J11bJ2ZldGNoJ10+WzBdXG5cbmNvbnN0IENPTVBPTkVOVF9OQU1FID0gJ21vZGVscydcblxuZnVuY3Rpb24gZ2V0RW50aXR5KGNsb3VkYmFzZTogYW55KSB7XG4gIGNvbnN0IGNhbGxGdW5jdGlvbiA9IGNsb3VkYmFzZS5jYWxsRnVuY3Rpb24uYmluZChjbG91ZGJhc2UpXG4gIGNvbnN0IGNsb3VkYmFzZUZldGNoID0gY2xvdWRiYXNlLnJlcXVlc3QuZmV0Y2guYmluZChjbG91ZGJhc2UucmVxdWVzdClcbiAgY29uc3QgZmV0Y2ggPSBhc3luYyAoZmV0Y2hPcHRpb25zOiBJRmV0Y2hPcHRpb25zKSA9PiB7XG4gICAgY29uc3QgcmVzID0gYXdhaXQgY2xvdWRiYXNlRmV0Y2goe1xuICAgICAgLi4uZmV0Y2hPcHRpb25zLFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAuLi5mZXRjaE9wdGlvbnMuaGVhZGVycyxcbiAgICAgIH0sXG4gICAgfSlcblxuICAgIHJldHVybiBhd2FpdCByZXMuZGF0YVxuICB9XG5cbiAgY29uc3QgeyBCQVNFX1VSTCwgUFJPVE9DT0wgfSA9IGNsb3VkYmFzZS5nZXRFbmRQb2ludFdpdGhLZXkoJ0dBVEVXQVknKSBhcyB7XG4gICAgQkFTRV9VUkw6IHN0cmluZ1xuICAgIFBST1RPQ09MOiBzdHJpbmdcbiAgfVxuICBjb25zdCBiYXNlVXJsID0gYCR7UFJPVE9DT0x9JHtCQVNFX1VSTH0vbW9kZWxgXG5cbiAgY29uc3QgZW50aXR5ID0gZ2VuZXJhdGVIVFRQQ2xpZW50KGNhbGxGdW5jdGlvbiwgZmV0Y2gsIGJhc2VVcmwpXG5cbiAgcmV0dXJuIGVudGl0eVxufVxuXG5jb25zdCBjbG91ZGJhc2VNb2RlbE1hcCA9IG5ldyBXZWFrTWFwKClcblxuLyoqXG4gKiDliJvlu7ogbW9kZWxzIGVudGl0eSDml7bvvIzpnIDopoEgYmFzZVVybOOAgWZldGNo77yM6ICM6L+Z5Lik5Liq5Y+C5pWw6YO96ZyA6KaB5ZyoIGNsb3VkYmFzZS5pbml0IOS5i+WQjuaJjeiDveiOt+WPluOAglxuICog5Zug5q2k6ZyA6KaB5ZyoIGNsb3VkYmFzZS5pbml0IOS5i+WQjuaJp+ihjOOAglxuICog5q2k5Ye95pWw5bCG5Yib5bu6IGVudGl0eSDnmoTmraXpqqTlu7blkI7liLDnrKzkuIDmrKHor7vlj5YgbW9kZWxzIOS4iueahOWxnuaAp+aXtuaJp+ihjOOAglxuICovXG5leHBvcnQgZnVuY3Rpb24gbGF6eUdldEVudGl0eShjbG91ZGJhc2U6IElDbG91ZGJhc2UpOiBSZXR1cm5UeXBlPHR5cGVvZiBnZXRFbnRpdHk+IHtcbiAgcmV0dXJuIG5ldyBQcm94eShcbiAgICB7fSxcbiAgICB7XG4gICAgICBnZXQ6IChfLCBwcm9wOiBzdHJpbmcpID0+IHtcbiAgICAgICAgbGV0IGVudGl0eSA9IGNsb3VkYmFzZU1vZGVsTWFwLmdldChjbG91ZGJhc2UpXG4gICAgICAgIGlmICghZW50aXR5KSB7XG4gICAgICAgICAgZW50aXR5ID0gZ2V0RW50aXR5KGNsb3VkYmFzZSlcbiAgICAgICAgICBjbG91ZGJhc2VNb2RlbE1hcC5zZXQoY2xvdWRiYXNlLCBlbnRpdHkpXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGVudGl0eVtwcm9wXVxuICAgICAgfSxcbiAgICB9LFxuICApXG59XG5cbmNvbnN0IENMT1VEQkFTRV9JTklUX0VWRU5UID0gJ2Nsb3VkYmFzZV9pbml0J1xuXG5jb25zdCBidXMgPSBuZXcgQ2xvdWRiYXNlRXZlbnRFbWl0dGVyKClcblxuYnVzLm9uKENMT1VEQkFTRV9JTklUX0VWRU5ULCAoeyBkYXRhOiBjbG91ZGJhc2UgfTogeyBkYXRhOiBJQ2xvdWRiYXNlIH0pID0+IHtcbiAgT2JqZWN0LmFzc2lnbihjbG91ZGJhc2UsIHsgbW9kZWxzOiBsYXp5R2V0RW50aXR5KGNsb3VkYmFzZSkgfSlcbn0pXG5cbmNvbnN0IGNvbXBvbmVudDogSUNsb3VkYmFzZUNvbXBvbmVudCA9IHtcbiAgbmFtZTogQ09NUE9ORU5UX05BTUUsXG4gIG5hbWVzcGFjZTogQ09NUE9ORU5UX05BTUUsXG4gIGVudGl0eTogbmV3IFByb3h5KFxuICAgIHt9LFxuICAgIHtcbiAgICAgIGdldDogKF8sIHByb3A6IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zb2xlLndhcm4oYOOAkGRlcHJlY2F0ZWTjgJFBY2Nlc3NpbmcgQ2xvdWRiYXNlLnByb3RvdHlwZS5tb2RlbHMuJHtwcm9wfS5gKVxuICAgICAgfSxcbiAgICB9LFxuICApLFxuICBpbmplY3RFdmVudHM6IHtcbiAgICBidXMsXG4gICAgZXZlbnRzOiBbQ0xPVURCQVNFX0lOSVRfRVZFTlRdLFxuICB9LFxufVxuXG50cnkge1xuICBjbG91ZGJhc2UucmVnaXN0ZXJDb21wb25lbnQoY29tcG9uZW50KVxufSBjYXRjaCAoZSkgeyB9XG5cbmV4cG9ydCBmdW5jdGlvbiByZWdpc3Rlck1vZGVsKGFwcDogSUNsb3VkYmFzZSkge1xuICB0cnkge1xuICAgIGFwcC5yZWdpc3RlckNvbXBvbmVudChjb21wb25lbnQpXG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBjb25zb2xlLndhcm4oZSlcbiAgfVxufVxuXG5leHBvcnQgKiBmcm9tICdAY2xvdWRiYXNlL3d4LWNsb3VkLWNsaWVudC1zZGsnXG4iXX0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cloudbase/model",
3
- "version": "2.8.27-beta.0",
3
+ "version": "2.8.29-beta.0",
4
4
  "description": "cloudbase js sdk model module",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",
@@ -27,9 +27,9 @@
27
27
  "author": "",
28
28
  "license": "Apache-2.0",
29
29
  "dependencies": {
30
- "@cloudbase/types": "^2.8.27-beta.0",
31
- "@cloudbase/utilities": "^2.8.27-beta.0",
30
+ "@cloudbase/types": "^2.8.29-beta.0",
31
+ "@cloudbase/utilities": "^2.8.29-beta.0",
32
32
  "@cloudbase/wx-cloud-client-sdk": "^1.3.1"
33
33
  },
34
- "gitHead": "fc08f9ab697086d55db39c5519c6d25ddd765c2c"
34
+ "gitHead": "56acec1fd8511f81b96cedf58cfa53e3c7be0758"
35
35
  }
package/src/index.ts CHANGED
@@ -1,6 +1,9 @@
1
1
  import { ICloudbase } from '@cloudbase/types'
2
2
  import { ICloudbaseComponent } from '@cloudbase/types/component'
3
3
  import { generateHTTPClient } from '@cloudbase/wx-cloud-client-sdk'
4
+ import { events } from '@cloudbase/utilities'
5
+
6
+ const { CloudbaseEventEmitter } = events
4
7
 
5
8
  declare const cloudbase: ICloudbase
6
9
 
@@ -34,19 +37,22 @@ function getEntity(cloudbase: any) {
34
37
  return entity
35
38
  }
36
39
 
40
+ const cloudbaseModelMap = new WeakMap()
41
+
37
42
  /**
38
43
  * 创建 models entity 时,需要 baseUrl、fetch,而这两个参数都需要在 cloudbase.init 之后才能获取。
39
44
  * 因此需要在 cloudbase.init 之后执行。
40
45
  * 此函数将创建 entity 的步骤延后到第一次读取 models 上的属性时执行。
41
46
  */
42
- function lazyGetEntity(cloudbase: ICloudbase): ReturnType<typeof getEntity> {
43
- let entity: ReturnType<typeof getEntity>
47
+ export function lazyGetEntity(cloudbase: ICloudbase): ReturnType<typeof getEntity> {
44
48
  return new Proxy(
45
49
  {},
46
50
  {
47
51
  get: (_, prop: string) => {
52
+ let entity = cloudbaseModelMap.get(cloudbase)
48
53
  if (!entity) {
49
54
  entity = getEntity(cloudbase)
55
+ cloudbaseModelMap.set(cloudbase, entity)
50
56
  }
51
57
  return entity[prop]
52
58
  },
@@ -54,20 +60,37 @@ function lazyGetEntity(cloudbase: ICloudbase): ReturnType<typeof getEntity> {
54
60
  )
55
61
  }
56
62
 
57
- const getComponent = (cloudbase: ICloudbase): ICloudbaseComponent => ({
63
+ const CLOUDBASE_INIT_EVENT = 'cloudbase_init'
64
+
65
+ const bus = new CloudbaseEventEmitter()
66
+
67
+ bus.on(CLOUDBASE_INIT_EVENT, ({ data: cloudbase }: { data: ICloudbase }) => {
68
+ Object.assign(cloudbase, { models: lazyGetEntity(cloudbase) })
69
+ })
70
+
71
+ const component: ICloudbaseComponent = {
58
72
  name: COMPONENT_NAME,
59
73
  namespace: COMPONENT_NAME,
60
- entity: lazyGetEntity(cloudbase),
61
- })
74
+ entity: new Proxy(
75
+ {},
76
+ {
77
+ get: (_, prop: string) => {
78
+ console.warn(`【deprecated】Accessing Cloudbase.prototype.models.${prop}.`)
79
+ },
80
+ },
81
+ ),
82
+ injectEvents: {
83
+ bus,
84
+ events: [CLOUDBASE_INIT_EVENT],
85
+ },
86
+ }
62
87
 
63
88
  try {
64
- const component = getComponent(cloudbase)
65
89
  cloudbase.registerComponent(component)
66
90
  } catch (e) { }
67
91
 
68
92
  export function registerModel(app: ICloudbase) {
69
93
  try {
70
- const component = getComponent(app)
71
94
  app.registerComponent(component)
72
95
  } catch (e) {
73
96
  console.warn(e)