phecda-core 1.5.0 → 1.7.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.
package/dist/index.d.ts CHANGED
@@ -5,6 +5,9 @@ interface UsePipeOptions {
5
5
  transform?: boolean;
6
6
  collectError?: boolean;
7
7
  }
8
+ interface PhecdaInjectData {
9
+ [key: string]: any;
10
+ }
8
11
  interface PhecdaHandler {
9
12
  [key: string]: any;
10
13
  }
@@ -82,6 +85,10 @@ declare function Pipe(v: ReturnType<typeof to>): (obj: any, key: PropertyKey) =>
82
85
  declare function Tag(tag: string): (target: any) => void;
83
86
  declare function Assign(cb: (instance?: any) => any): (target: any) => void;
84
87
  declare function Global(target: any): void;
88
+ declare function Empty(_target: any): void;
89
+ declare const DataMap: PhecdaInjectData;
90
+ declare function Provide<K extends keyof PhecdaInjectData>(key: K, value: PhecdaInjectData[K]): void;
91
+ declare function Inject<K extends keyof PhecdaInjectData>(key: K): PhecdaInjectData[K];
85
92
 
86
93
  declare function validate(p: RegExp | string | Function | Object | Number, v: any): Promise<any>;
87
94
  declare function getTag<M extends new (...args: any) => any>(Model: M): any;
@@ -111,6 +118,7 @@ declare function getProperty(key: string): any;
111
118
  declare function Watcher(eventName: keyof Events, options?: {
112
119
  once: boolean;
113
120
  }): (obj: any, key: string) => void;
121
+ declare function Effect(eventName: string, options?: any): (obj: any, key: string) => void;
114
122
  declare function Storage(storeKey?: string): (target: any, key?: PropertyKey) => void;
115
123
 
116
- export { Assign, Bind, ClassValue, Clear, Err, Events, Expose, Global, Ignore, Init, NameSpace, Phecda, PhecdaHandler, Pipe, Rule, Storage, Tag, UsePipeOptions, Watcher, activeInstance, addDecoToClass, classToValue, getBind, getExposeKey, getHandler, getIgnoreKey, getInitEvent, getModelState, getProperty, getState, getTag, init, injectProperty, isPhecda, mergeOptions, mergeState, plainToClass, regisHandler, regisInitEvent, register, registerAsync, setExposeKey, setIgnoreKey, setModalVar, snapShot, to, validate };
124
+ export { Assign, Bind, ClassValue, Clear, DataMap, Effect, Empty, Err, Events, Expose, Global, Ignore, Init, Inject, NameSpace, Phecda, PhecdaHandler, PhecdaInjectData, Pipe, Provide, Rule, Storage, Tag, UsePipeOptions, Watcher, activeInstance, addDecoToClass, classToValue, getBind, getExposeKey, getHandler, getIgnoreKey, getInitEvent, getModelState, getProperty, getState, getTag, init, injectProperty, isPhecda, mergeOptions, mergeState, plainToClass, regisHandler, regisInitEvent, register, registerAsync, setExposeKey, setIgnoreKey, setModalVar, snapShot, to, validate };
@@ -25,12 +25,17 @@ var Phecda = (() => {
25
25
  Assign: () => Assign,
26
26
  Bind: () => Bind,
27
27
  Clear: () => Clear,
28
+ DataMap: () => DataMap,
29
+ Effect: () => Effect,
30
+ Empty: () => Empty,
28
31
  Err: () => Err,
29
32
  Expose: () => Expose,
30
33
  Global: () => Global,
31
34
  Ignore: () => Ignore,
32
35
  Init: () => Init,
36
+ Inject: () => Inject,
33
37
  Pipe: () => Pipe,
38
+ Provide: () => Provide,
34
39
  Rule: () => Rule,
35
40
  Storage: () => Storage,
36
41
  Tag: () => Tag,
@@ -318,6 +323,18 @@ var Phecda = (() => {
318
323
  globalThis.__PHECDA__[tag] = target;
319
324
  }
320
325
  __name(Global, "Global");
326
+ function Empty(_target) {
327
+ }
328
+ __name(Empty, "Empty");
329
+ var DataMap = {};
330
+ function Provide(key, value) {
331
+ DataMap[key] = value;
332
+ }
333
+ __name(Provide, "Provide");
334
+ function Inject(key) {
335
+ return DataMap[key] || (() => Empty);
336
+ }
337
+ __name(Inject, "Inject");
321
338
 
322
339
  // src/helper.ts
323
340
  function getBind(Model) {
@@ -435,6 +452,32 @@ var Phecda = (() => {
435
452
  };
436
453
  }
437
454
  __name(Watcher, "Watcher");
455
+ function Effect(eventName, options) {
456
+ return (obj, key) => {
457
+ setModalVar(obj, key);
458
+ regisHandler(obj, key, {
459
+ init(instance) {
460
+ instance[`$_${key}`] = instance[key];
461
+ Object.defineProperty(instance, key, {
462
+ get() {
463
+ return instance[`$_${key}`];
464
+ },
465
+ set(v) {
466
+ instance[`$_${key}`] = v;
467
+ getProperty(`effect-${eventName}`)?.({
468
+ instance,
469
+ key,
470
+ value: v,
471
+ options
472
+ });
473
+ return true;
474
+ }
475
+ });
476
+ }
477
+ });
478
+ };
479
+ }
480
+ __name(Effect, "Effect");
438
481
  function Storage(storeKey) {
439
482
  return (target, key) => {
440
483
  let tag;
package/dist/index.js CHANGED
@@ -24,12 +24,17 @@ __export(src_exports, {
24
24
  Assign: () => Assign,
25
25
  Bind: () => Bind,
26
26
  Clear: () => Clear,
27
+ DataMap: () => DataMap,
28
+ Effect: () => Effect,
29
+ Empty: () => Empty,
27
30
  Err: () => Err,
28
31
  Expose: () => Expose,
29
32
  Global: () => Global,
30
33
  Ignore: () => Ignore,
31
34
  Init: () => Init,
35
+ Inject: () => Inject,
32
36
  Pipe: () => Pipe,
37
+ Provide: () => Provide,
33
38
  Rule: () => Rule,
34
39
  Storage: () => Storage,
35
40
  Tag: () => Tag,
@@ -318,6 +323,18 @@ function Global(target) {
318
323
  globalThis.__PHECDA__[tag] = target;
319
324
  }
320
325
  __name(Global, "Global");
326
+ function Empty(_target) {
327
+ }
328
+ __name(Empty, "Empty");
329
+ var DataMap = {};
330
+ function Provide(key, value) {
331
+ DataMap[key] = value;
332
+ }
333
+ __name(Provide, "Provide");
334
+ function Inject(key) {
335
+ return DataMap[key] || (() => Empty);
336
+ }
337
+ __name(Inject, "Inject");
321
338
 
322
339
  // src/helper.ts
323
340
  function getBind(Model) {
@@ -435,6 +452,32 @@ function Watcher(eventName, options) {
435
452
  };
436
453
  }
437
454
  __name(Watcher, "Watcher");
455
+ function Effect(eventName, options) {
456
+ return (obj, key) => {
457
+ setModalVar(obj, key);
458
+ regisHandler(obj, key, {
459
+ init(instance) {
460
+ instance[`$_${key}`] = instance[key];
461
+ Object.defineProperty(instance, key, {
462
+ get() {
463
+ return instance[`$_${key}`];
464
+ },
465
+ set(v) {
466
+ instance[`$_${key}`] = v;
467
+ getProperty(`effect-${eventName}`)?.({
468
+ instance,
469
+ key,
470
+ value: v,
471
+ options
472
+ });
473
+ return true;
474
+ }
475
+ });
476
+ }
477
+ });
478
+ };
479
+ }
480
+ __name(Effect, "Effect");
438
481
  function Storage(storeKey) {
439
482
  return (target, key) => {
440
483
  let tag;
@@ -475,12 +518,17 @@ __name(Storage, "Storage");
475
518
  Assign,
476
519
  Bind,
477
520
  Clear,
521
+ DataMap,
522
+ Effect,
523
+ Empty,
478
524
  Err,
479
525
  Expose,
480
526
  Global,
481
527
  Ignore,
482
528
  Init,
529
+ Inject,
483
530
  Pipe,
531
+ Provide,
484
532
  Rule,
485
533
  Storage,
486
534
  Tag,
package/dist/index.mjs CHANGED
@@ -254,6 +254,18 @@ function Global(target) {
254
254
  globalThis.__PHECDA__[tag] = target;
255
255
  }
256
256
  __name(Global, "Global");
257
+ function Empty(_target) {
258
+ }
259
+ __name(Empty, "Empty");
260
+ var DataMap = {};
261
+ function Provide(key, value) {
262
+ DataMap[key] = value;
263
+ }
264
+ __name(Provide, "Provide");
265
+ function Inject(key) {
266
+ return DataMap[key] || (() => Empty);
267
+ }
268
+ __name(Inject, "Inject");
257
269
 
258
270
  // src/helper.ts
259
271
  function getBind(Model) {
@@ -371,6 +383,32 @@ function Watcher(eventName, options) {
371
383
  };
372
384
  }
373
385
  __name(Watcher, "Watcher");
386
+ function Effect(eventName, options) {
387
+ return (obj, key) => {
388
+ setModalVar(obj, key);
389
+ regisHandler(obj, key, {
390
+ init(instance) {
391
+ instance[`$_${key}`] = instance[key];
392
+ Object.defineProperty(instance, key, {
393
+ get() {
394
+ return instance[`$_${key}`];
395
+ },
396
+ set(v) {
397
+ instance[`$_${key}`] = v;
398
+ getProperty(`effect-${eventName}`)?.({
399
+ instance,
400
+ key,
401
+ value: v,
402
+ options
403
+ });
404
+ return true;
405
+ }
406
+ });
407
+ }
408
+ });
409
+ };
410
+ }
411
+ __name(Effect, "Effect");
374
412
  function Storage(storeKey) {
375
413
  return (target, key) => {
376
414
  let tag;
@@ -410,12 +448,17 @@ export {
410
448
  Assign,
411
449
  Bind,
412
450
  Clear,
451
+ DataMap,
452
+ Effect,
453
+ Empty,
413
454
  Err,
414
455
  Expose,
415
456
  Global,
416
457
  Ignore,
417
458
  Init,
459
+ Inject,
418
460
  Pipe,
461
+ Provide,
419
462
  Rule,
420
463
  Storage,
421
464
  Tag,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "phecda-core",
3
- "version": "1.5.0",
3
+ "version": "1.7.0",
4
4
  "description": "provide base function and abstract limit to other phecda module ",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",