phecda-core 1.0.4 → 1.0.6

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.
package/dist/index.d.ts CHANGED
@@ -2,17 +2,11 @@ interface PhecdaNameSpace {
2
2
  [name: string]: Phecda;
3
3
  }
4
4
  interface UsePipeOptions {
5
- transform: boolean;
6
- collectError: boolean;
5
+ transform?: boolean;
6
+ collectError?: boolean;
7
7
  }
8
8
  interface PhecdaHandler {
9
- init?: (instance: any) => any;
10
- pipe?: (instance: any) => void;
11
- rule?: RegExp | string | Function | number;
12
- info?: string;
13
- meta?: any;
14
- error?: any;
15
- http?: any;
9
+ [key: string]: any;
16
10
  }
17
11
  interface Phecda {
18
12
  _namespace: {
@@ -22,13 +16,14 @@ interface Phecda {
22
16
  __IGNORE_VAR__: Set<PropertyKey>;
23
17
  __STATE_VAR__: Set<PropertyKey>;
24
18
  __STATE_HANDLER__: Map<PropertyKey, PhecdaHandler[]>;
19
+ __STATE_NAMESPACE__: Map<PropertyKey, Object>;
25
20
  };
26
21
  }
27
22
  type ClassValue<I> = {
28
23
  [P in keyof I]: I[P] extends Function ? undefined : I[P];
29
24
  };
30
25
 
31
- declare function plainToClass<M extends new (...args: any) => any, Data extends Record<PropertyKey, any>>(Model: M, input: Data, options?: Partial<UsePipeOptions>): Promise<{
26
+ declare function plainToClass<M extends new (...args: any) => any, Data extends Record<PropertyKey, any>>(Model: M, input: Data, options?: UsePipeOptions): Promise<{
32
27
  err: string[];
33
28
  data: InstanceType<M>;
34
29
  }>;
@@ -83,14 +78,17 @@ declare function Get(target: any, key: PropertyKey): void;
83
78
  declare function Pipe(v: ReturnType<typeof to>): (obj: any, key: PropertyKey) => void;
84
79
  declare function Tag(tag: string): (target: any) => void;
85
80
  declare function Storage(target: any): void;
81
+ declare function Window(target: any): void;
86
82
 
87
83
  declare function validate(p: RegExp | string | Function | Object | Number, v: any): Promise<any>;
88
84
  declare function getTag<M extends new (...args: any) => any>(Model: M): any;
85
+ declare function mergeOptions(obj1: any, obj2?: any): any;
89
86
 
87
+ declare function isPhecda(target: any): any;
90
88
  declare function init(target: Phecda): void;
91
89
  declare function regisInitEvent(target: Phecda, key: string): void;
92
90
  declare function getInitEvent(target: Phecda): string[];
93
- declare function setModalState(target: Phecda, key: PropertyKey): void;
91
+ declare function setModalVar(target: Phecda, key: PropertyKey): void;
94
92
  declare function setExposeKey(target: Phecda, key: PropertyKey): void;
95
93
  declare function setIgnoreKey(target: Phecda, key: PropertyKey): void;
96
94
  declare function getModelState(target: Phecda): string[];
@@ -98,6 +96,8 @@ declare function getExposeKey(target: Phecda): string[];
98
96
  declare function getIgnoreKey(target: Phecda): string[];
99
97
  declare function regisHandler(target: Phecda, key: PropertyKey, handler: PhecdaHandler): void;
100
98
  declare function getHandler(target: Phecda, key: PropertyKey): PhecdaHandler[];
99
+ declare function mergeState(target: Phecda, key: PropertyKey, state: any): void;
100
+ declare function getState(target: Phecda, key: PropertyKey): Object | undefined;
101
101
  declare function register(instance: Phecda): void;
102
102
 
103
103
  declare function isArray(info?: string): (obj: any, key: PropertyKey) => void;
@@ -125,4 +125,4 @@ declare function getProperty(key: string): any;
125
125
 
126
126
  declare function Watcher(eventName: string): (obj: any, key: string) => void;
127
127
 
128
- export { ClassValue, Clear, Err, Get, Ignore, Init, Phecda, PhecdaHandler, PhecdaNameSpace, Pipe, Rule, Storage, Tag, UsePipeOptions, Watcher, activeInstance, addDecoToClass, classToValue, getExposeKey, getHandler, getIgnoreKey, getInitEvent, getModelState, getProperty, getTag, init, injectProperty, isArray, isBoolean, isCnName, isDate, isEnName, isHexColor, isIdCard, isLandline, isMailBox, isMobile, isNumber, isObject, isPostalCode, isString, isWechat, plainToClass, regisHandler, regisInitEvent, register, setExposeKey, setIgnoreKey, setModalState, snapShot, to, toNumber, toString, validate };
128
+ export { ClassValue, Clear, Err, Get, Ignore, Init, Phecda, PhecdaHandler, PhecdaNameSpace, Pipe, Rule, Storage, Tag, UsePipeOptions, Watcher, Window, activeInstance, addDecoToClass, classToValue, getExposeKey, getHandler, getIgnoreKey, getInitEvent, getModelState, getProperty, getState, getTag, init, injectProperty, isArray, isBoolean, isCnName, isDate, isEnName, isHexColor, isIdCard, isLandline, isMailBox, isMobile, isNumber, isObject, isPhecda, isPostalCode, isString, isWechat, mergeOptions, mergeState, plainToClass, regisHandler, regisInitEvent, register, setExposeKey, setIgnoreKey, setModalVar, snapShot, to, toNumber, toString, validate };
package/dist/index.js CHANGED
@@ -3,6 +3,7 @@ var __defProp = Object.defineProperty;
3
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
5
  var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
6
7
  var __export = (target, all) => {
7
8
  for (var name in all)
8
9
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -30,6 +31,7 @@ __export(src_exports, {
30
31
  Storage: () => Storage,
31
32
  Tag: () => Tag,
32
33
  Watcher: () => Watcher,
34
+ Window: () => Window,
33
35
  activeInstance: () => activeInstance,
34
36
  addDecoToClass: () => addDecoToClass,
35
37
  classToValue: () => classToValue,
@@ -39,6 +41,7 @@ __export(src_exports, {
39
41
  getInitEvent: () => getInitEvent,
40
42
  getModelState: () => getModelState,
41
43
  getProperty: () => getProperty,
44
+ getState: () => getState,
42
45
  getTag: () => getTag,
43
46
  init: () => init,
44
47
  injectProperty: () => injectProperty,
@@ -53,17 +56,20 @@ __export(src_exports, {
53
56
  isMailBox: () => isMailBox,
54
57
  isMobile: () => isMobile,
55
58
  isNumber: () => isNumber,
56
- isObject: () => isObject,
59
+ isObject: () => isObject2,
60
+ isPhecda: () => isPhecda,
57
61
  isPostalCode: () => isPostalCode,
58
62
  isString: () => isString,
59
63
  isWechat: () => isWechat,
64
+ mergeOptions: () => mergeOptions,
65
+ mergeState: () => mergeState,
60
66
  plainToClass: () => plainToClass,
61
67
  regisHandler: () => regisHandler,
62
68
  regisInitEvent: () => regisInitEvent,
63
69
  register: () => register,
64
70
  setExposeKey: () => setExposeKey,
65
71
  setIgnoreKey: () => setIgnoreKey,
66
- setModalState: () => setModalState,
72
+ setModalVar: () => setModalVar,
67
73
  snapShot: () => snapShot,
68
74
  to: () => to,
69
75
  toNumber: () => toNumber,
@@ -72,7 +78,50 @@ __export(src_exports, {
72
78
  });
73
79
  module.exports = __toCommonJS(src_exports);
74
80
 
81
+ // src/utils.ts
82
+ async function validate(p, v) {
83
+ if (typeof p === "string" || typeof p === "number") {
84
+ if (v === p)
85
+ return true;
86
+ }
87
+ if (typeof p === "function")
88
+ return p(v);
89
+ if (p instanceof RegExp)
90
+ return p.test(v);
91
+ return false;
92
+ }
93
+ __name(validate, "validate");
94
+ function getTag(Model) {
95
+ return Model.prototype?._namespace?.__TAG__;
96
+ }
97
+ __name(getTag, "getTag");
98
+ function mergeOptions(obj1, obj2) {
99
+ if (!obj2)
100
+ return obj1;
101
+ for (const i in obj2) {
102
+ if (isObject(obj1[i]) && isObject(obj2[i])) {
103
+ mergeOptions(obj1[i], obj2[i]);
104
+ continue;
105
+ }
106
+ if (Array.isArray(obj1[i]) && Array.isArray(obj2[i])) {
107
+ obj1[i].push(...obj2[i].filter((item) => !obj1[i].includes(item)));
108
+ continue;
109
+ }
110
+ obj1[i] = obj2[i];
111
+ }
112
+ return obj1;
113
+ }
114
+ __name(mergeOptions, "mergeOptions");
115
+ function isObject(obj) {
116
+ return Object.prototype.toString.call(obj) === "[object Object]";
117
+ }
118
+ __name(isObject, "isObject");
119
+
75
120
  // src/core.ts
121
+ function isPhecda(target) {
122
+ return target && !!target.prototype._namespace;
123
+ }
124
+ __name(isPhecda, "isPhecda");
76
125
  function init(target) {
77
126
  if (!target._namespace) {
78
127
  target._namespace = {
@@ -81,53 +130,89 @@ function init(target) {
81
130
  __EXPOSE_VAR__: /* @__PURE__ */ new Set(),
82
131
  __IGNORE_VAR__: /* @__PURE__ */ new Set(),
83
132
  __STATE_VAR__: /* @__PURE__ */ new Set(),
84
- __STATE_HANDLER__: /* @__PURE__ */ new Map()
133
+ __STATE_HANDLER__: /* @__PURE__ */ new Map(),
134
+ __STATE_NAMESPACE__: /* @__PURE__ */ new Map()
85
135
  };
86
136
  }
87
137
  }
138
+ __name(init, "init");
88
139
  function regisInitEvent(target, key) {
89
140
  init(target);
90
141
  target._namespace.__INIT_EVENT__.add(key);
91
142
  }
143
+ __name(regisInitEvent, "regisInitEvent");
92
144
  function getInitEvent(target) {
93
145
  init(target);
94
- return [...target._namespace.__INIT_EVENT__];
146
+ return [
147
+ ...target._namespace.__INIT_EVENT__
148
+ ];
95
149
  }
96
- function setModalState(target, key) {
150
+ __name(getInitEvent, "getInitEvent");
151
+ function setModalVar(target, key) {
97
152
  init(target);
98
153
  target._namespace.__STATE_VAR__.add(key);
99
154
  setExposeKey(target, key);
100
155
  }
156
+ __name(setModalVar, "setModalVar");
101
157
  function setExposeKey(target, key) {
102
158
  init(target);
103
159
  target._namespace.__EXPOSE_VAR__.add(key);
104
160
  }
161
+ __name(setExposeKey, "setExposeKey");
105
162
  function setIgnoreKey(target, key) {
106
163
  init(target);
107
164
  target._namespace.__IGNORE_VAR__.add(key);
108
165
  }
166
+ __name(setIgnoreKey, "setIgnoreKey");
109
167
  function getModelState(target) {
110
168
  init(target);
111
- return [...target._namespace.__STATE_VAR__];
169
+ return [
170
+ ...target._namespace.__STATE_VAR__
171
+ ];
112
172
  }
173
+ __name(getModelState, "getModelState");
113
174
  function getExposeKey(target) {
114
175
  init(target);
115
- return [...target._namespace.__EXPOSE_VAR__];
176
+ return [
177
+ ...target._namespace.__EXPOSE_VAR__
178
+ ];
116
179
  }
180
+ __name(getExposeKey, "getExposeKey");
117
181
  function getIgnoreKey(target) {
118
182
  init(target);
119
- return [...target._namespace.__IGNORE_VAR__];
183
+ return [
184
+ ...target._namespace.__IGNORE_VAR__
185
+ ];
120
186
  }
187
+ __name(getIgnoreKey, "getIgnoreKey");
121
188
  function regisHandler(target, key, handler) {
122
189
  init(target);
123
190
  if (!target._namespace.__STATE_HANDLER__.has(key))
124
- target._namespace.__STATE_HANDLER__.set(key, [handler]);
191
+ target._namespace.__STATE_HANDLER__.set(key, [
192
+ handler
193
+ ]);
125
194
  else
126
195
  target._namespace.__STATE_HANDLER__.get(key).push(handler);
127
196
  }
197
+ __name(regisHandler, "regisHandler");
128
198
  function getHandler(target, key) {
129
199
  return target._namespace.__STATE_HANDLER__.get(key) || [];
130
200
  }
201
+ __name(getHandler, "getHandler");
202
+ function mergeState(target, key, state) {
203
+ const namespace = target._namespace.__STATE_NAMESPACE__;
204
+ if (!namespace.has(key))
205
+ namespace.set(key, state);
206
+ else
207
+ mergeOptions(namespace.get(key), state);
208
+ }
209
+ __name(mergeState, "mergeState");
210
+ function getState(target, key) {
211
+ const namespace = target._namespace.__STATE_NAMESPACE__;
212
+ if (namespace)
213
+ return namespace.get(key);
214
+ }
215
+ __name(getState, "getState");
131
216
  function register(instance) {
132
217
  const stateVars = getModelState(instance);
133
218
  for (const item of stateVars) {
@@ -136,19 +221,21 @@ function register(instance) {
136
221
  hanlder.init?.(instance);
137
222
  }
138
223
  }
224
+ __name(register, "register");
139
225
 
140
226
  // src/decorators.ts
141
227
  function Init(target, key) {
142
- setModalState(target, key);
228
+ setModalVar(target, key);
143
229
  regisHandler(target, key, {
144
230
  async init(instance) {
145
231
  instance[key]();
146
232
  }
147
233
  });
148
234
  }
235
+ __name(Init, "Init");
149
236
  function Rule(rule, info, meta) {
150
237
  return (obj, key) => {
151
- setModalState(obj, key);
238
+ setModalVar(obj, key);
152
239
  regisHandler(obj, key, {
153
240
  rule,
154
241
  info,
@@ -156,9 +243,11 @@ function Rule(rule, info, meta) {
156
243
  });
157
244
  };
158
245
  }
246
+ __name(Rule, "Rule");
159
247
  function Ignore(target, key) {
160
248
  setIgnoreKey(target, key);
161
249
  }
250
+ __name(Ignore, "Ignore");
162
251
  function Clear(target, key) {
163
252
  init(target);
164
253
  target._namespace.__INIT_EVENT__.delete(key);
@@ -167,20 +256,23 @@ function Clear(target, key) {
167
256
  target._namespace.__STATE_VAR__.delete(key);
168
257
  target._namespace.__STATE_HANDLER__.delete(key);
169
258
  }
259
+ __name(Clear, "Clear");
170
260
  function Err(cb) {
171
261
  return (target, key) => {
172
- setModalState(target, key);
262
+ setModalVar(target, key);
173
263
  regisHandler(target, key, {
174
264
  error: cb
175
265
  });
176
266
  };
177
267
  }
268
+ __name(Err, "Err");
178
269
  function Get(target, key) {
179
270
  setExposeKey(target, key);
180
271
  }
272
+ __name(Get, "Get");
181
273
  function Pipe(v) {
182
274
  return (obj, key) => {
183
- setModalState(obj, key);
275
+ setModalVar(obj, key);
184
276
  regisHandler(obj, key, {
185
277
  async pipe(instance) {
186
278
  const tasks = v.value;
@@ -190,19 +282,21 @@ function Pipe(v) {
190
282
  });
191
283
  };
192
284
  }
285
+ __name(Pipe, "Pipe");
193
286
  function Tag(tag) {
194
287
  return (target) => {
195
288
  init(target.prototype);
196
289
  target.prototype._namespace.__TAG__ = tag;
197
290
  };
198
291
  }
292
+ __name(Tag, "Tag");
199
293
  function Storage(target) {
200
294
  init(target.prototype);
201
295
  const tag = target.prototype._namespace.__TAG__;
202
296
  if (tag === "")
203
297
  throw new Error("miss tag");
204
298
  const uniTag = Symbol(tag);
205
- setModalState(target.prototype, uniTag);
299
+ setModalVar(target.prototype, uniTag);
206
300
  regisHandler(target.prototype, uniTag, {
207
301
  init: (instance) => {
208
302
  const { state } = instance;
@@ -218,53 +312,52 @@ function Storage(target) {
218
312
  }
219
313
  });
220
314
  }
221
-
222
- // src/utils.ts
223
- async function validate(p, v) {
224
- if (typeof p === "string" || typeof p === "number") {
225
- if (v === p)
226
- return true;
227
- }
228
- if (typeof p === "function")
229
- return p(v);
230
- if (p instanceof RegExp)
231
- return p.test(v);
232
- return false;
233
- }
234
- function getTag(Model) {
235
- return Model.prototype?._namespace?.__TAG__;
315
+ __name(Storage, "Storage");
316
+ function Window(target) {
317
+ if (!window.__PHECDA__)
318
+ window.__PHECDA__ = {};
319
+ const tag = target.prototype._namespace.__TAG__;
320
+ if (tag)
321
+ window.__PHECDA__[tag] = target;
236
322
  }
323
+ __name(Window, "Window");
237
324
 
238
325
  // src/helper.ts
239
326
  async function plainToClass(Model, input, options = {}) {
240
327
  const data = new Model();
241
- const resolvedOptions = {
242
- collectError: true,
243
- transform: false,
244
- ...options
245
- };
246
328
  const err = [];
247
329
  const stateVars = getModelState(data);
248
330
  for (const item of stateVars) {
249
331
  data[item] = input[item];
250
332
  const handlers = getHandler(data, item);
251
333
  if (handlers) {
252
- for (const handler of handlers) {
253
- const rule = handler.rule;
254
- if (rule && !await validate(rule, data[item])) {
255
- err.push(handler.info || "");
256
- if (!resolvedOptions.collectError)
257
- break;
334
+ if (options.collectError !== false) {
335
+ for (const handler of handlers) {
336
+ const rule = handler.rule;
337
+ if (rule && !await validate(rule, data[item])) {
338
+ err.push(handler.info || "");
339
+ if (!options.collectError)
340
+ break;
341
+ }
258
342
  }
259
343
  }
260
- if (err.length > 0 && !resolvedOptions.transform)
261
- return { err, data };
262
- for (const handler of handlers)
263
- await handler.pipe?.(data);
344
+ if (err.length > 0 && !options.transform)
345
+ return {
346
+ err,
347
+ data
348
+ };
349
+ if (options.transform !== false) {
350
+ for (const handler of handlers)
351
+ await handler.pipe?.(data);
352
+ }
264
353
  }
265
354
  }
266
- return { data, err };
355
+ return {
356
+ data,
357
+ err
358
+ };
267
359
  }
360
+ __name(plainToClass, "plainToClass");
268
361
  function classToValue(instance) {
269
362
  const data = {};
270
363
  const exposeVar = getExposeKey(instance);
@@ -276,11 +369,16 @@ function classToValue(instance) {
276
369
  }
277
370
  return data;
278
371
  }
372
+ __name(classToValue, "classToValue");
279
373
  function to(task, oldTasks) {
280
374
  const tasks = oldTasks || [];
281
375
  tasks.push(task);
282
- return { to: (task2) => to(task2, tasks), value: tasks };
376
+ return {
377
+ to: (task2) => to(task2, tasks),
378
+ value: tasks
379
+ };
283
380
  }
381
+ __name(to, "to");
284
382
  function snapShot(data) {
285
383
  const snap = {};
286
384
  for (const i in data)
@@ -297,96 +395,88 @@ function snapShot(data) {
297
395
  }
298
396
  };
299
397
  }
398
+ __name(snapShot, "snapShot");
300
399
  function addDecoToClass(c, key, handler, type = "normal") {
301
400
  handler(type === "normal" ? c.prototype : c, key);
302
401
  }
402
+ __name(addDecoToClass, "addDecoToClass");
303
403
 
304
404
  // src/preset/rule.ts
305
405
  function isArray(info) {
306
406
  return Rule((param) => Array.isArray(param), info || "it should be an array");
307
407
  }
408
+ __name(isArray, "isArray");
308
409
  function isBoolean(info) {
309
- return Rule((param) => [true, false].includes(param), info || "it should be true or false");
410
+ return Rule((param) => [
411
+ true,
412
+ false
413
+ ].includes(param), info || "it should be true or false");
310
414
  }
415
+ __name(isBoolean, "isBoolean");
311
416
  function isNumber(info) {
312
417
  return Rule((param) => typeof param === "number", info || "it should be true or false");
313
418
  }
419
+ __name(isNumber, "isNumber");
314
420
  function isString(info) {
315
421
  return Rule((param) => typeof param === "string", info || "it should be a string");
316
422
  }
317
- function isObject(info) {
423
+ __name(isString, "isString");
424
+ function isObject2(info) {
318
425
  return Rule((param) => {
319
426
  return Object.prototype.toString.call(param) === "[object Object]";
320
427
  }, info || "it should be an object");
321
428
  }
429
+ __name(isObject2, "isObject");
322
430
  function isMobile(info) {
323
- return Rule(
324
- /^((\+|00)86)?1((3[\d])|(4[5,6,7,9])|(5[0-3,5-9])|(6[5-7])|(7[0-8])|(8[\d])|(9[1,8,9]))\d{8}$/,
325
- info || "it should be a mobile phone number"
326
- );
431
+ return Rule(/^((\+|00)86)?1((3[\d])|(4[5,6,7,9])|(5[0-3,5-9])|(6[5-7])|(7[0-8])|(8[\d])|(9[1,8,9]))\d{8}$/, info || "it should be a mobile phone number");
327
432
  }
433
+ __name(isMobile, "isMobile");
328
434
  function isLandline(info) {
329
- return Rule(
330
- /\d{3}-\d{8}|\d{4}-\d{7}/,
331
- info || "it should be a mobile phone number"
332
- );
435
+ return Rule(/\d{3}-\d{8}|\d{4}-\d{7}/, info || "it should be a mobile phone number");
333
436
  }
437
+ __name(isLandline, "isLandline");
334
438
  function isMailBox(info) {
335
- return Rule(
336
- /^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,
337
- info || "it should be a mailbox number"
338
- );
439
+ return Rule(/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/, info || "it should be a mailbox number");
339
440
  }
441
+ __name(isMailBox, "isMailBox");
340
442
  function isIdCard(info) {
341
- return Rule(
342
- /(^\d{8}(0\d|10|11|12)([0-2]\d|30|31)\d{3}$)|(^\d{6}(18|19|20)\d{2}(0\d|10|11|12)([0-2]\d|30|31)\d{3}(\d|X|x)$)/,
343
- info || "it should be an identity card number"
344
- );
443
+ return Rule(/(^\d{8}(0\d|10|11|12)([0-2]\d|30|31)\d{3}$)|(^\d{6}(18|19|20)\d{2}(0\d|10|11|12)([0-2]\d|30|31)\d{3}(\d|X|x)$)/, info || "it should be an identity card number");
345
444
  }
445
+ __name(isIdCard, "isIdCard");
346
446
  function isCnName(info) {
347
- return Rule(
348
- /^([\u4E00-\u9FA5·]{2,16})$/,
349
- info || "\u9700\u8981\u662F\u4E00\u4E2A\u5408\u7406\u7684\u4E2D\u6587\u540D\u5B57"
350
- );
447
+ return Rule(/^([\u4E00-\u9FA5·]{2,16})$/, info || "\u9700\u8981\u662F\u4E00\u4E2A\u5408\u7406\u7684\u4E2D\u6587\u540D\u5B57");
351
448
  }
449
+ __name(isCnName, "isCnName");
352
450
  function isEnName(info) {
353
- return Rule(
354
- /(^[a-zA-Z]{1}[a-zA-Z\s]{0,20}[a-zA-Z]{1}$)/,
355
- info || "it should be a valid en-name"
356
- );
451
+ return Rule(/(^[a-zA-Z]{1}[a-zA-Z\s]{0,20}[a-zA-Z]{1}$)/, info || "it should be a valid en-name");
357
452
  }
453
+ __name(isEnName, "isEnName");
358
454
  function isDate(info) {
359
- return Rule(
360
- /^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)$/,
361
- info || "it should be a valid date"
362
- );
455
+ return Rule(/^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)$/, info || "it should be a valid date");
363
456
  }
457
+ __name(isDate, "isDate");
364
458
  function isWechat(info) {
365
- return Rule(
366
- /^[a-zA-Z]([-_a-zA-Z0-9]{5,19})+$/,
367
- info || "it should be a valid date"
368
- );
459
+ return Rule(/^[a-zA-Z]([-_a-zA-Z0-9]{5,19})+$/, info || "it should be a valid date");
369
460
  }
461
+ __name(isWechat, "isWechat");
370
462
  function isHexColor(info) {
371
- return Rule(
372
- /^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/,
373
- info || "it should be a valid hex-color"
374
- );
463
+ return Rule(/^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/, info || "it should be a valid hex-color");
375
464
  }
465
+ __name(isHexColor, "isHexColor");
376
466
  function isPostalCode(info) {
377
- return Rule(
378
- /^(0[1-7]|1[0-356]|2[0-7]|3[0-6]|4[0-7]|5[1-7]|6[1-7]|7[0-5]|8[013-6])\d{4}$/,
379
- info || "it should be a valid postal code"
380
- );
467
+ return Rule(/^(0[1-7]|1[0-356]|2[0-7]|3[0-6]|4[0-7]|5[1-7]|6[1-7]|7[0-5]|8[013-6])\d{4}$/, info || "it should be a valid postal code");
381
468
  }
469
+ __name(isPostalCode, "isPostalCode");
382
470
 
383
471
  // src/preset/pipe.ts
384
472
  function toNumber() {
385
473
  return Pipe(to((param) => Number(param)));
386
474
  }
475
+ __name(toNumber, "toNumber");
387
476
  function toString() {
388
477
  return Pipe(to((param) => String(param)));
389
478
  }
479
+ __name(toString, "toString");
390
480
 
391
481
  // src/namespace.ts
392
482
  var activeInstance = {};
@@ -394,21 +484,28 @@ function injectProperty(key, value) {
394
484
  activeInstance[key] = value;
395
485
  return activeInstance;
396
486
  }
487
+ __name(injectProperty, "injectProperty");
397
488
  function getProperty(key) {
398
489
  return activeInstance[key];
399
490
  }
491
+ __name(getProperty, "getProperty");
400
492
 
401
493
  // src/custom/decorator.ts
402
494
  function Watcher(eventName) {
403
495
  return (obj, key) => {
404
- setModalState(obj, key);
496
+ setModalVar(obj, key);
405
497
  regisHandler(obj, key, {
406
498
  init(instance) {
407
- getProperty("watcher")?.({ eventName, instance, key });
499
+ getProperty("watcher")?.({
500
+ eventName,
501
+ instance,
502
+ key
503
+ });
408
504
  }
409
505
  });
410
506
  };
411
507
  }
508
+ __name(Watcher, "Watcher");
412
509
  // Annotate the CommonJS export names for ESM import in node:
413
510
  0 && (module.exports = {
414
511
  Clear,
@@ -421,6 +518,7 @@ function Watcher(eventName) {
421
518
  Storage,
422
519
  Tag,
423
520
  Watcher,
521
+ Window,
424
522
  activeInstance,
425
523
  addDecoToClass,
426
524
  classToValue,
@@ -430,6 +528,7 @@ function Watcher(eventName) {
430
528
  getInitEvent,
431
529
  getModelState,
432
530
  getProperty,
531
+ getState,
433
532
  getTag,
434
533
  init,
435
534
  injectProperty,
@@ -445,16 +544,19 @@ function Watcher(eventName) {
445
544
  isMobile,
446
545
  isNumber,
447
546
  isObject,
547
+ isPhecda,
448
548
  isPostalCode,
449
549
  isString,
450
550
  isWechat,
551
+ mergeOptions,
552
+ mergeState,
451
553
  plainToClass,
452
554
  regisHandler,
453
555
  regisInitEvent,
454
556
  register,
455
557
  setExposeKey,
456
558
  setIgnoreKey,
457
- setModalState,
559
+ setModalVar,
458
560
  snapShot,
459
561
  to,
460
562
  toNumber,
package/dist/index.mjs CHANGED
@@ -1,4 +1,50 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+
4
+ // src/utils.ts
5
+ async function validate(p, v) {
6
+ if (typeof p === "string" || typeof p === "number") {
7
+ if (v === p)
8
+ return true;
9
+ }
10
+ if (typeof p === "function")
11
+ return p(v);
12
+ if (p instanceof RegExp)
13
+ return p.test(v);
14
+ return false;
15
+ }
16
+ __name(validate, "validate");
17
+ function getTag(Model) {
18
+ return Model.prototype?._namespace?.__TAG__;
19
+ }
20
+ __name(getTag, "getTag");
21
+ function mergeOptions(obj1, obj2) {
22
+ if (!obj2)
23
+ return obj1;
24
+ for (const i in obj2) {
25
+ if (isObject(obj1[i]) && isObject(obj2[i])) {
26
+ mergeOptions(obj1[i], obj2[i]);
27
+ continue;
28
+ }
29
+ if (Array.isArray(obj1[i]) && Array.isArray(obj2[i])) {
30
+ obj1[i].push(...obj2[i].filter((item) => !obj1[i].includes(item)));
31
+ continue;
32
+ }
33
+ obj1[i] = obj2[i];
34
+ }
35
+ return obj1;
36
+ }
37
+ __name(mergeOptions, "mergeOptions");
38
+ function isObject(obj) {
39
+ return Object.prototype.toString.call(obj) === "[object Object]";
40
+ }
41
+ __name(isObject, "isObject");
42
+
1
43
  // src/core.ts
44
+ function isPhecda(target) {
45
+ return target && !!target.prototype._namespace;
46
+ }
47
+ __name(isPhecda, "isPhecda");
2
48
  function init(target) {
3
49
  if (!target._namespace) {
4
50
  target._namespace = {
@@ -7,53 +53,89 @@ function init(target) {
7
53
  __EXPOSE_VAR__: /* @__PURE__ */ new Set(),
8
54
  __IGNORE_VAR__: /* @__PURE__ */ new Set(),
9
55
  __STATE_VAR__: /* @__PURE__ */ new Set(),
10
- __STATE_HANDLER__: /* @__PURE__ */ new Map()
56
+ __STATE_HANDLER__: /* @__PURE__ */ new Map(),
57
+ __STATE_NAMESPACE__: /* @__PURE__ */ new Map()
11
58
  };
12
59
  }
13
60
  }
61
+ __name(init, "init");
14
62
  function regisInitEvent(target, key) {
15
63
  init(target);
16
64
  target._namespace.__INIT_EVENT__.add(key);
17
65
  }
66
+ __name(regisInitEvent, "regisInitEvent");
18
67
  function getInitEvent(target) {
19
68
  init(target);
20
- return [...target._namespace.__INIT_EVENT__];
69
+ return [
70
+ ...target._namespace.__INIT_EVENT__
71
+ ];
21
72
  }
22
- function setModalState(target, key) {
73
+ __name(getInitEvent, "getInitEvent");
74
+ function setModalVar(target, key) {
23
75
  init(target);
24
76
  target._namespace.__STATE_VAR__.add(key);
25
77
  setExposeKey(target, key);
26
78
  }
79
+ __name(setModalVar, "setModalVar");
27
80
  function setExposeKey(target, key) {
28
81
  init(target);
29
82
  target._namespace.__EXPOSE_VAR__.add(key);
30
83
  }
84
+ __name(setExposeKey, "setExposeKey");
31
85
  function setIgnoreKey(target, key) {
32
86
  init(target);
33
87
  target._namespace.__IGNORE_VAR__.add(key);
34
88
  }
89
+ __name(setIgnoreKey, "setIgnoreKey");
35
90
  function getModelState(target) {
36
91
  init(target);
37
- return [...target._namespace.__STATE_VAR__];
92
+ return [
93
+ ...target._namespace.__STATE_VAR__
94
+ ];
38
95
  }
96
+ __name(getModelState, "getModelState");
39
97
  function getExposeKey(target) {
40
98
  init(target);
41
- return [...target._namespace.__EXPOSE_VAR__];
99
+ return [
100
+ ...target._namespace.__EXPOSE_VAR__
101
+ ];
42
102
  }
103
+ __name(getExposeKey, "getExposeKey");
43
104
  function getIgnoreKey(target) {
44
105
  init(target);
45
- return [...target._namespace.__IGNORE_VAR__];
106
+ return [
107
+ ...target._namespace.__IGNORE_VAR__
108
+ ];
46
109
  }
110
+ __name(getIgnoreKey, "getIgnoreKey");
47
111
  function regisHandler(target, key, handler) {
48
112
  init(target);
49
113
  if (!target._namespace.__STATE_HANDLER__.has(key))
50
- target._namespace.__STATE_HANDLER__.set(key, [handler]);
114
+ target._namespace.__STATE_HANDLER__.set(key, [
115
+ handler
116
+ ]);
51
117
  else
52
118
  target._namespace.__STATE_HANDLER__.get(key).push(handler);
53
119
  }
120
+ __name(regisHandler, "regisHandler");
54
121
  function getHandler(target, key) {
55
122
  return target._namespace.__STATE_HANDLER__.get(key) || [];
56
123
  }
124
+ __name(getHandler, "getHandler");
125
+ function mergeState(target, key, state) {
126
+ const namespace = target._namespace.__STATE_NAMESPACE__;
127
+ if (!namespace.has(key))
128
+ namespace.set(key, state);
129
+ else
130
+ mergeOptions(namespace.get(key), state);
131
+ }
132
+ __name(mergeState, "mergeState");
133
+ function getState(target, key) {
134
+ const namespace = target._namespace.__STATE_NAMESPACE__;
135
+ if (namespace)
136
+ return namespace.get(key);
137
+ }
138
+ __name(getState, "getState");
57
139
  function register(instance) {
58
140
  const stateVars = getModelState(instance);
59
141
  for (const item of stateVars) {
@@ -62,19 +144,21 @@ function register(instance) {
62
144
  hanlder.init?.(instance);
63
145
  }
64
146
  }
147
+ __name(register, "register");
65
148
 
66
149
  // src/decorators.ts
67
150
  function Init(target, key) {
68
- setModalState(target, key);
151
+ setModalVar(target, key);
69
152
  regisHandler(target, key, {
70
153
  async init(instance) {
71
154
  instance[key]();
72
155
  }
73
156
  });
74
157
  }
158
+ __name(Init, "Init");
75
159
  function Rule(rule, info, meta) {
76
160
  return (obj, key) => {
77
- setModalState(obj, key);
161
+ setModalVar(obj, key);
78
162
  regisHandler(obj, key, {
79
163
  rule,
80
164
  info,
@@ -82,9 +166,11 @@ function Rule(rule, info, meta) {
82
166
  });
83
167
  };
84
168
  }
169
+ __name(Rule, "Rule");
85
170
  function Ignore(target, key) {
86
171
  setIgnoreKey(target, key);
87
172
  }
173
+ __name(Ignore, "Ignore");
88
174
  function Clear(target, key) {
89
175
  init(target);
90
176
  target._namespace.__INIT_EVENT__.delete(key);
@@ -93,20 +179,23 @@ function Clear(target, key) {
93
179
  target._namespace.__STATE_VAR__.delete(key);
94
180
  target._namespace.__STATE_HANDLER__.delete(key);
95
181
  }
182
+ __name(Clear, "Clear");
96
183
  function Err(cb) {
97
184
  return (target, key) => {
98
- setModalState(target, key);
185
+ setModalVar(target, key);
99
186
  regisHandler(target, key, {
100
187
  error: cb
101
188
  });
102
189
  };
103
190
  }
191
+ __name(Err, "Err");
104
192
  function Get(target, key) {
105
193
  setExposeKey(target, key);
106
194
  }
195
+ __name(Get, "Get");
107
196
  function Pipe(v) {
108
197
  return (obj, key) => {
109
- setModalState(obj, key);
198
+ setModalVar(obj, key);
110
199
  regisHandler(obj, key, {
111
200
  async pipe(instance) {
112
201
  const tasks = v.value;
@@ -116,19 +205,21 @@ function Pipe(v) {
116
205
  });
117
206
  };
118
207
  }
208
+ __name(Pipe, "Pipe");
119
209
  function Tag(tag) {
120
210
  return (target) => {
121
211
  init(target.prototype);
122
212
  target.prototype._namespace.__TAG__ = tag;
123
213
  };
124
214
  }
215
+ __name(Tag, "Tag");
125
216
  function Storage(target) {
126
217
  init(target.prototype);
127
218
  const tag = target.prototype._namespace.__TAG__;
128
219
  if (tag === "")
129
220
  throw new Error("miss tag");
130
221
  const uniTag = Symbol(tag);
131
- setModalState(target.prototype, uniTag);
222
+ setModalVar(target.prototype, uniTag);
132
223
  regisHandler(target.prototype, uniTag, {
133
224
  init: (instance) => {
134
225
  const { state } = instance;
@@ -144,53 +235,52 @@ function Storage(target) {
144
235
  }
145
236
  });
146
237
  }
147
-
148
- // src/utils.ts
149
- async function validate(p, v) {
150
- if (typeof p === "string" || typeof p === "number") {
151
- if (v === p)
152
- return true;
153
- }
154
- if (typeof p === "function")
155
- return p(v);
156
- if (p instanceof RegExp)
157
- return p.test(v);
158
- return false;
159
- }
160
- function getTag(Model) {
161
- return Model.prototype?._namespace?.__TAG__;
238
+ __name(Storage, "Storage");
239
+ function Window(target) {
240
+ if (!window.__PHECDA__)
241
+ window.__PHECDA__ = {};
242
+ const tag = target.prototype._namespace.__TAG__;
243
+ if (tag)
244
+ window.__PHECDA__[tag] = target;
162
245
  }
246
+ __name(Window, "Window");
163
247
 
164
248
  // src/helper.ts
165
249
  async function plainToClass(Model, input, options = {}) {
166
250
  const data = new Model();
167
- const resolvedOptions = {
168
- collectError: true,
169
- transform: false,
170
- ...options
171
- };
172
251
  const err = [];
173
252
  const stateVars = getModelState(data);
174
253
  for (const item of stateVars) {
175
254
  data[item] = input[item];
176
255
  const handlers = getHandler(data, item);
177
256
  if (handlers) {
178
- for (const handler of handlers) {
179
- const rule = handler.rule;
180
- if (rule && !await validate(rule, data[item])) {
181
- err.push(handler.info || "");
182
- if (!resolvedOptions.collectError)
183
- break;
257
+ if (options.collectError !== false) {
258
+ for (const handler of handlers) {
259
+ const rule = handler.rule;
260
+ if (rule && !await validate(rule, data[item])) {
261
+ err.push(handler.info || "");
262
+ if (!options.collectError)
263
+ break;
264
+ }
184
265
  }
185
266
  }
186
- if (err.length > 0 && !resolvedOptions.transform)
187
- return { err, data };
188
- for (const handler of handlers)
189
- await handler.pipe?.(data);
267
+ if (err.length > 0 && !options.transform)
268
+ return {
269
+ err,
270
+ data
271
+ };
272
+ if (options.transform !== false) {
273
+ for (const handler of handlers)
274
+ await handler.pipe?.(data);
275
+ }
190
276
  }
191
277
  }
192
- return { data, err };
278
+ return {
279
+ data,
280
+ err
281
+ };
193
282
  }
283
+ __name(plainToClass, "plainToClass");
194
284
  function classToValue(instance) {
195
285
  const data = {};
196
286
  const exposeVar = getExposeKey(instance);
@@ -202,11 +292,16 @@ function classToValue(instance) {
202
292
  }
203
293
  return data;
204
294
  }
295
+ __name(classToValue, "classToValue");
205
296
  function to(task, oldTasks) {
206
297
  const tasks = oldTasks || [];
207
298
  tasks.push(task);
208
- return { to: (task2) => to(task2, tasks), value: tasks };
299
+ return {
300
+ to: (task2) => to(task2, tasks),
301
+ value: tasks
302
+ };
209
303
  }
304
+ __name(to, "to");
210
305
  function snapShot(data) {
211
306
  const snap = {};
212
307
  for (const i in data)
@@ -223,96 +318,88 @@ function snapShot(data) {
223
318
  }
224
319
  };
225
320
  }
321
+ __name(snapShot, "snapShot");
226
322
  function addDecoToClass(c, key, handler, type = "normal") {
227
323
  handler(type === "normal" ? c.prototype : c, key);
228
324
  }
325
+ __name(addDecoToClass, "addDecoToClass");
229
326
 
230
327
  // src/preset/rule.ts
231
328
  function isArray(info) {
232
329
  return Rule((param) => Array.isArray(param), info || "it should be an array");
233
330
  }
331
+ __name(isArray, "isArray");
234
332
  function isBoolean(info) {
235
- return Rule((param) => [true, false].includes(param), info || "it should be true or false");
333
+ return Rule((param) => [
334
+ true,
335
+ false
336
+ ].includes(param), info || "it should be true or false");
236
337
  }
338
+ __name(isBoolean, "isBoolean");
237
339
  function isNumber(info) {
238
340
  return Rule((param) => typeof param === "number", info || "it should be true or false");
239
341
  }
342
+ __name(isNumber, "isNumber");
240
343
  function isString(info) {
241
344
  return Rule((param) => typeof param === "string", info || "it should be a string");
242
345
  }
243
- function isObject(info) {
346
+ __name(isString, "isString");
347
+ function isObject2(info) {
244
348
  return Rule((param) => {
245
349
  return Object.prototype.toString.call(param) === "[object Object]";
246
350
  }, info || "it should be an object");
247
351
  }
352
+ __name(isObject2, "isObject");
248
353
  function isMobile(info) {
249
- return Rule(
250
- /^((\+|00)86)?1((3[\d])|(4[5,6,7,9])|(5[0-3,5-9])|(6[5-7])|(7[0-8])|(8[\d])|(9[1,8,9]))\d{8}$/,
251
- info || "it should be a mobile phone number"
252
- );
354
+ return Rule(/^((\+|00)86)?1((3[\d])|(4[5,6,7,9])|(5[0-3,5-9])|(6[5-7])|(7[0-8])|(8[\d])|(9[1,8,9]))\d{8}$/, info || "it should be a mobile phone number");
253
355
  }
356
+ __name(isMobile, "isMobile");
254
357
  function isLandline(info) {
255
- return Rule(
256
- /\d{3}-\d{8}|\d{4}-\d{7}/,
257
- info || "it should be a mobile phone number"
258
- );
358
+ return Rule(/\d{3}-\d{8}|\d{4}-\d{7}/, info || "it should be a mobile phone number");
259
359
  }
360
+ __name(isLandline, "isLandline");
260
361
  function isMailBox(info) {
261
- return Rule(
262
- /^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,
263
- info || "it should be a mailbox number"
264
- );
362
+ return Rule(/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/, info || "it should be a mailbox number");
265
363
  }
364
+ __name(isMailBox, "isMailBox");
266
365
  function isIdCard(info) {
267
- return Rule(
268
- /(^\d{8}(0\d|10|11|12)([0-2]\d|30|31)\d{3}$)|(^\d{6}(18|19|20)\d{2}(0\d|10|11|12)([0-2]\d|30|31)\d{3}(\d|X|x)$)/,
269
- info || "it should be an identity card number"
270
- );
366
+ return Rule(/(^\d{8}(0\d|10|11|12)([0-2]\d|30|31)\d{3}$)|(^\d{6}(18|19|20)\d{2}(0\d|10|11|12)([0-2]\d|30|31)\d{3}(\d|X|x)$)/, info || "it should be an identity card number");
271
367
  }
368
+ __name(isIdCard, "isIdCard");
272
369
  function isCnName(info) {
273
- return Rule(
274
- /^([\u4E00-\u9FA5·]{2,16})$/,
275
- info || "\u9700\u8981\u662F\u4E00\u4E2A\u5408\u7406\u7684\u4E2D\u6587\u540D\u5B57"
276
- );
370
+ return Rule(/^([\u4E00-\u9FA5·]{2,16})$/, info || "\u9700\u8981\u662F\u4E00\u4E2A\u5408\u7406\u7684\u4E2D\u6587\u540D\u5B57");
277
371
  }
372
+ __name(isCnName, "isCnName");
278
373
  function isEnName(info) {
279
- return Rule(
280
- /(^[a-zA-Z]{1}[a-zA-Z\s]{0,20}[a-zA-Z]{1}$)/,
281
- info || "it should be a valid en-name"
282
- );
374
+ return Rule(/(^[a-zA-Z]{1}[a-zA-Z\s]{0,20}[a-zA-Z]{1}$)/, info || "it should be a valid en-name");
283
375
  }
376
+ __name(isEnName, "isEnName");
284
377
  function isDate(info) {
285
- return Rule(
286
- /^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)$/,
287
- info || "it should be a valid date"
288
- );
378
+ return Rule(/^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)$/, info || "it should be a valid date");
289
379
  }
380
+ __name(isDate, "isDate");
290
381
  function isWechat(info) {
291
- return Rule(
292
- /^[a-zA-Z]([-_a-zA-Z0-9]{5,19})+$/,
293
- info || "it should be a valid date"
294
- );
382
+ return Rule(/^[a-zA-Z]([-_a-zA-Z0-9]{5,19})+$/, info || "it should be a valid date");
295
383
  }
384
+ __name(isWechat, "isWechat");
296
385
  function isHexColor(info) {
297
- return Rule(
298
- /^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/,
299
- info || "it should be a valid hex-color"
300
- );
386
+ return Rule(/^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/, info || "it should be a valid hex-color");
301
387
  }
388
+ __name(isHexColor, "isHexColor");
302
389
  function isPostalCode(info) {
303
- return Rule(
304
- /^(0[1-7]|1[0-356]|2[0-7]|3[0-6]|4[0-7]|5[1-7]|6[1-7]|7[0-5]|8[013-6])\d{4}$/,
305
- info || "it should be a valid postal code"
306
- );
390
+ return Rule(/^(0[1-7]|1[0-356]|2[0-7]|3[0-6]|4[0-7]|5[1-7]|6[1-7]|7[0-5]|8[013-6])\d{4}$/, info || "it should be a valid postal code");
307
391
  }
392
+ __name(isPostalCode, "isPostalCode");
308
393
 
309
394
  // src/preset/pipe.ts
310
395
  function toNumber() {
311
396
  return Pipe(to((param) => Number(param)));
312
397
  }
398
+ __name(toNumber, "toNumber");
313
399
  function toString() {
314
400
  return Pipe(to((param) => String(param)));
315
401
  }
402
+ __name(toString, "toString");
316
403
 
317
404
  // src/namespace.ts
318
405
  var activeInstance = {};
@@ -320,21 +407,28 @@ function injectProperty(key, value) {
320
407
  activeInstance[key] = value;
321
408
  return activeInstance;
322
409
  }
410
+ __name(injectProperty, "injectProperty");
323
411
  function getProperty(key) {
324
412
  return activeInstance[key];
325
413
  }
414
+ __name(getProperty, "getProperty");
326
415
 
327
416
  // src/custom/decorator.ts
328
417
  function Watcher(eventName) {
329
418
  return (obj, key) => {
330
- setModalState(obj, key);
419
+ setModalVar(obj, key);
331
420
  regisHandler(obj, key, {
332
421
  init(instance) {
333
- getProperty("watcher")?.({ eventName, instance, key });
422
+ getProperty("watcher")?.({
423
+ eventName,
424
+ instance,
425
+ key
426
+ });
334
427
  }
335
428
  });
336
429
  };
337
430
  }
431
+ __name(Watcher, "Watcher");
338
432
  export {
339
433
  Clear,
340
434
  Err,
@@ -346,6 +440,7 @@ export {
346
440
  Storage,
347
441
  Tag,
348
442
  Watcher,
443
+ Window,
349
444
  activeInstance,
350
445
  addDecoToClass,
351
446
  classToValue,
@@ -355,6 +450,7 @@ export {
355
450
  getInitEvent,
356
451
  getModelState,
357
452
  getProperty,
453
+ getState,
358
454
  getTag,
359
455
  init,
360
456
  injectProperty,
@@ -369,17 +465,20 @@ export {
369
465
  isMailBox,
370
466
  isMobile,
371
467
  isNumber,
372
- isObject,
468
+ isObject2 as isObject,
469
+ isPhecda,
373
470
  isPostalCode,
374
471
  isString,
375
472
  isWechat,
473
+ mergeOptions,
474
+ mergeState,
376
475
  plainToClass,
377
476
  regisHandler,
378
477
  regisInitEvent,
379
478
  register,
380
479
  setExposeKey,
381
480
  setIgnoreKey,
382
- setModalState,
481
+ setModalVar,
383
482
  snapShot,
384
483
  to,
385
484
  toNumber,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "phecda-core",
3
- "version": "1.0.4",
3
+ "version": "1.0.6",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",