@zajno/common 3.0.1 → 3.0.3
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/models/wrappers.d.ts +6 -0
- package/models/wrappers.d.ts.map +1 -1
- package/models/wrappers.js +34 -0
- package/models/wrappers.js.map +1 -1
- package/package.json +1 -1
package/models/wrappers.d.ts
CHANGED
|
@@ -2,6 +2,12 @@ import { Getter } from '../types/getter';
|
|
|
2
2
|
import type { ILabel, IValueModel } from './types';
|
|
3
3
|
export declare function withLabel<T, TModel extends IValueModel<T>, TLabel = string>(model: TModel, label: Getter<TLabel>): TModel & ILabel<TLabel>;
|
|
4
4
|
export declare function inject<T, TModel extends IValueModel<T>>(model: TModel, source: IValueModel<T>): TModel;
|
|
5
|
+
/**
|
|
6
|
+
* Adds callbacks to setter and getter of the 'value' property of a model. DOES NOT override previous spies (all spies are in charge).
|
|
7
|
+
*
|
|
8
|
+
* Useful mostly for debugging.
|
|
9
|
+
* */
|
|
10
|
+
export declare function spyModel<T, TModel extends (IValueModel<T> & Object)>(model: TModel, spySetter: (v: T) => void, spyGetter?: (v: T) => void): void;
|
|
5
11
|
export declare function wrap<T, TModel extends IValueModel<T>, TRes>(model: TModel, getter: (m: TModel) => TRes, setter: (v: TRes, model: TModel) => void): IValueModel<TRes>;
|
|
6
12
|
type LabeledModel<T, TModel extends IValueModel<T>, TLabel = string> = TModel & ILabel<TLabel>;
|
|
7
13
|
interface LabeledModelCtor<T, TModel extends IValueModel<T>, TLabel = string> {
|
package/models/wrappers.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wrappers.d.ts","sourceRoot":"","sources":["../../src/models/wrappers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEnD,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,SAAS,WAAW,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,2BAShH;AAED,wBAAgB,MAAM,CAAC,CAAC,EAAE,MAAM,SAAS,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,UAS7F;AAED,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,SAAS,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAKpK;AAED,KAAK,YAAY,CAAC,CAAC,EAAE,MAAM,SAAS,WAAW,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;AAE/F,UAAU,gBAAgB,CAAC,CAAC,EAAE,MAAM,SAAS,WAAW,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;IACxE,KAAK,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9E;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,SAAS,WAAW,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,UAAU,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC,KAAK,MAAM,GAAG,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAU1J"}
|
|
1
|
+
{"version":3,"file":"wrappers.d.ts","sourceRoot":"","sources":["../../src/models/wrappers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEnD,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,SAAS,WAAW,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,2BAShH;AAED,wBAAgB,MAAM,CAAC,CAAC,EAAE,MAAM,SAAS,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,UAS7F;AAED;;;;KAIK;AACL,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,QA6BzI;AAED,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,SAAS,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAKpK;AAED,KAAK,YAAY,CAAC,CAAC,EAAE,MAAM,SAAS,WAAW,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;AAE/F,UAAU,gBAAgB,CAAC,CAAC,EAAE,MAAM,SAAS,WAAW,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;IACxE,KAAK,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9E;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,SAAS,WAAW,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,UAAU,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC,KAAK,MAAM,GAAG,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAU1J"}
|
package/models/wrappers.js
CHANGED
|
@@ -17,6 +17,40 @@ export function inject(model, source) {
|
|
|
17
17
|
});
|
|
18
18
|
return model;
|
|
19
19
|
}
|
|
20
|
+
/**
|
|
21
|
+
* Adds callbacks to setter and getter of the 'value' property of a model. DOES NOT override previous spies (all spies are in charge).
|
|
22
|
+
*
|
|
23
|
+
* Useful mostly for debugging.
|
|
24
|
+
* */
|
|
25
|
+
export function spyModel(model, spySetter, spyGetter) {
|
|
26
|
+
const descriptor = Object.getOwnPropertyDescriptor(model, 'value');
|
|
27
|
+
const valueSetter = descriptor?.set;
|
|
28
|
+
const valueGetter = descriptor?.get;
|
|
29
|
+
let _overrideValue = descriptor ? descriptor.value : model.value;
|
|
30
|
+
Object.defineProperty(model, 'value', {
|
|
31
|
+
configurable: true,
|
|
32
|
+
set(v) {
|
|
33
|
+
spySetter(v);
|
|
34
|
+
if (valueSetter) {
|
|
35
|
+
valueSetter.call(model, v);
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
_overrideValue = v;
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
get() {
|
|
42
|
+
let res = null;
|
|
43
|
+
if (valueGetter) {
|
|
44
|
+
res = valueGetter.call(model);
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
res = _overrideValue;
|
|
48
|
+
}
|
|
49
|
+
spyGetter?.(res);
|
|
50
|
+
return res;
|
|
51
|
+
},
|
|
52
|
+
});
|
|
53
|
+
}
|
|
20
54
|
export function wrap(model, getter, setter) {
|
|
21
55
|
return {
|
|
22
56
|
get value() { return getter(model); },
|
package/models/wrappers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wrappers.js","sourceRoot":"","sources":["../../src/models/wrappers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAGzC,MAAM,UAAU,SAAS,CAAoD,KAAa,EAAE,KAAqB;IAC7G,MAAM,MAAM,GAAG,KAAK,CAAC;IACrB,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE;QAClC,YAAY,EAAE,IAAI;QAClB,UAAU,EAAE,KAAK;QACjB,GAAG,KAAK,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;KAC5C,CAAC,CAAC;IAEH,OAAO,KAAgC,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,MAAM,CAAmC,KAAa,EAAE,MAAsB;IAC1F,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE;QAClC,YAAY,EAAE,IAAI;QAClB,UAAU,EAAE,KAAK;QACjB,GAAG,KAAK,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9B,GAAG,CAAC,CAAI,IAAI,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;KAClC,CAAC,CAAC;IAEH,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,IAAI,CAAyC,KAAa,EAAE,MAA2B,EAAE,MAAwC;IAC7I,OAAO;QACH,IAAI,KAAK,KAAK,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACrC,IAAI,KAAK,CAAC,CAAO,IAAI,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;KAC3C,CAAC;AACN,CAAC;AAQD,MAAM,UAAU,UAAU,CAAoD,UAAuC;IACjH,aAAa;IACb,MAAM,GAAI,SAAQ,UAAU;QACxB,YAAY,KAAqB,EAAE,OAAW;YAC1C,KAAK,CAAC,OAAO,CAAC,CAAC;YACf,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC3B,CAAC;KACJ;IAED,OAAO,GAAU,CAAC;AACtB,CAAC"}
|
|
1
|
+
{"version":3,"file":"wrappers.js","sourceRoot":"","sources":["../../src/models/wrappers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAGzC,MAAM,UAAU,SAAS,CAAoD,KAAa,EAAE,KAAqB;IAC7G,MAAM,MAAM,GAAG,KAAK,CAAC;IACrB,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE;QAClC,YAAY,EAAE,IAAI;QAClB,UAAU,EAAE,KAAK;QACjB,GAAG,KAAK,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;KAC5C,CAAC,CAAC;IAEH,OAAO,KAAgC,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,MAAM,CAAmC,KAAa,EAAE,MAAsB;IAC1F,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE;QAClC,YAAY,EAAE,IAAI;QAClB,UAAU,EAAE,KAAK;QACjB,GAAG,KAAK,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9B,GAAG,CAAC,CAAI,IAAI,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;KAClC,CAAC,CAAC;IAEH,OAAO,KAAK,CAAC;AACjB,CAAC;AAED;;;;KAIK;AACL,MAAM,UAAU,QAAQ,CAA8C,KAAa,EAAE,SAAyB,EAAE,SAA0B;IACtI,MAAM,UAAU,GAAG,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAEnE,MAAM,WAAW,GAAG,UAAU,EAAE,GAAG,CAAC;IACpC,MAAM,WAAW,GAAG,UAAU,EAAE,GAAG,CAAC;IAEpC,IAAI,cAAc,GAAM,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;IAEpE,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE;QAClC,YAAY,EAAE,IAAI;QAClB,GAAG,CAAC,CAAC;YACD,SAAS,CAAC,CAAC,CAAC,CAAC;YACb,IAAI,WAAW,EAAE;gBACb,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;aAC9B;iBAAM;gBACH,cAAc,GAAG,CAAC,CAAC;aACtB;QACL,CAAC;QACD,GAAG;YACC,IAAI,GAAG,GAAM,IAAI,CAAC;YAClB,IAAI,WAAW,EAAE;gBACb,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aACjC;iBAAM;gBACH,GAAG,GAAG,cAAc,CAAC;aACxB;YACD,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC;YACjB,OAAO,GAAG,CAAC;QACf,CAAC;KACJ,CAAC,CAAC;AACP,CAAC;AAED,MAAM,UAAU,IAAI,CAAyC,KAAa,EAAE,MAA2B,EAAE,MAAwC;IAC7I,OAAO;QACH,IAAI,KAAK,KAAK,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACrC,IAAI,KAAK,CAAC,CAAO,IAAI,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;KAC3C,CAAC;AACN,CAAC;AAQD,MAAM,UAAU,UAAU,CAAoD,UAAuC;IACjH,aAAa;IACb,MAAM,GAAI,SAAQ,UAAU;QACxB,YAAY,KAAqB,EAAE,OAAW;YAC1C,KAAK,CAAC,OAAO,CAAC,CAAC;YACf,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC3B,CAAC;KACJ;IAED,OAAO,GAAU,CAAC;AACtB,CAAC"}
|