@squiz/optimization-utils 4.2.0 → 4.4.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/change-tracker/ChangeTracker.d.ts +12 -0
- package/dist/change-tracker/ChangeTracker.js +39 -0
- package/dist/change-tracker/ChangeTracker.js.map +1 -0
- package/dist/data-structures/Result.d.ts +7 -9
- package/dist/data-structures/Result.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export type ChangeValue<TValue> = {
|
|
2
|
+
oldValue: TValue;
|
|
3
|
+
newValue: TValue;
|
|
4
|
+
};
|
|
5
|
+
export declare class ChangeTracker<T extends object> {
|
|
6
|
+
private modified;
|
|
7
|
+
private readonly proxy;
|
|
8
|
+
static extractChangeTracker<T extends object>(entity: T): ChangeTracker<T> | undefined;
|
|
9
|
+
constructor(target: T);
|
|
10
|
+
getTrackedObject(): T;
|
|
11
|
+
getChanges<TKey extends keyof T>(key: TKey): ChangeValue<T[TKey]> | undefined;
|
|
12
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ChangeTracker = void 0;
|
|
4
|
+
const CHANGE_TRACKER = Symbol('PROXY_SYMBOL');
|
|
5
|
+
class ChangeTracker {
|
|
6
|
+
modified = new Map();
|
|
7
|
+
proxy;
|
|
8
|
+
static extractChangeTracker(entity) {
|
|
9
|
+
return Reflect.get(entity, CHANGE_TRACKER);
|
|
10
|
+
}
|
|
11
|
+
constructor(target) {
|
|
12
|
+
this.proxy = new Proxy(target, {
|
|
13
|
+
set: (obj, prop, value) => {
|
|
14
|
+
if (Reflect.get(obj, prop) !== value) {
|
|
15
|
+
if (!this.modified.has(prop)) {
|
|
16
|
+
this.modified.set(prop, {
|
|
17
|
+
oldValue: Reflect.get(obj, prop),
|
|
18
|
+
newValue: value,
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
this.modified.get(prop).newValue = value;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
obj[prop] = value;
|
|
26
|
+
return true;
|
|
27
|
+
},
|
|
28
|
+
});
|
|
29
|
+
Reflect.set(this.proxy, CHANGE_TRACKER, this);
|
|
30
|
+
}
|
|
31
|
+
getTrackedObject() {
|
|
32
|
+
return this.proxy;
|
|
33
|
+
}
|
|
34
|
+
getChanges(key) {
|
|
35
|
+
return this.modified.get(key);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
exports.ChangeTracker = ChangeTracker;
|
|
39
|
+
//# sourceMappingURL=ChangeTracker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChangeTracker.js","sourceRoot":"","sources":["../../src/change-tracker/ChangeTracker.ts"],"names":[],"mappings":";;;AAAA,MAAM,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AAI9C,MAAa,aAAa;IAChB,QAAQ,GAA0C,IAAI,GAAG,EAAE,CAAC;IACnD,KAAK,CAAI;IAE1B,MAAM,CAAC,oBAAoB,CACzB,MAAS;QAET,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,cAAc,CAAqB,CAAC;IACjE,CAAC;IAED,YAAY,MAAS;QACnB,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,EAAE;YAC7B,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAW,EAAE;gBACjC,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC;oBACrC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAe,CAAC,EAAE,CAAC;wBACxC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAe,EAAE;4BACjC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC;4BAChC,QAAQ,EAAE,KAAK;yBAChB,CAAC,CAAC;oBACL,CAAC;yBAAM,CAAC;wBACN,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAe,CAAE,CAAC,QAAQ,GAAG,KAAK,CAAC;oBACvD,CAAC;gBACH,CAAC;gBAED,GAAG,CAAC,IAAe,CAAC,GAAG,KAAK,CAAC;gBAE7B,OAAO,IAAI,CAAC;YACd,CAAC;SACF,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;IAChD,CAAC;IAED,gBAAgB;QACd,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,UAAU,CACR,GAAS;QAET,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAyB,CAAC;IACxD,CAAC;CACF;AA1CD,sCA0CC"}
|
|
@@ -1,21 +1,19 @@
|
|
|
1
|
+
export type ResultType = 'success' | 'failure';
|
|
1
2
|
export declare class Result<TData, TError = Error> {
|
|
2
|
-
readonly type:
|
|
3
|
+
readonly type: ResultType;
|
|
3
4
|
readonly data?: TData;
|
|
4
5
|
readonly error?: TError;
|
|
5
6
|
private constructor();
|
|
6
7
|
static success<U>(data?: U): Result<U, never>;
|
|
7
8
|
static failure<TError>(error: TError): Result<never, TError>;
|
|
8
|
-
isSuccess(): this is Omit<Result<TData
|
|
9
|
-
type: 'success';
|
|
9
|
+
isSuccess<ThisType extends Result<unknown, unknown>>(this: ThisType): this is Omit<Result<TData>, 'data'> & {
|
|
10
10
|
data: TData;
|
|
11
|
+
type: 'success';
|
|
11
12
|
};
|
|
12
|
-
isFailure(): this is
|
|
13
|
-
type: 'failure';
|
|
13
|
+
isFailure<ThisType extends Result<unknown, unknown>>(this: ThisType): this is Omit<Result<TData>, 'error'> & {
|
|
14
14
|
error: TError;
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
data: TData;
|
|
18
|
-
});
|
|
15
|
+
type: 'failure';
|
|
16
|
+
};
|
|
19
17
|
isErrorInstanceOf(...errorTypes: Array<new (...args: Array<any>) => any>): boolean;
|
|
20
18
|
throw(): never | void;
|
|
21
19
|
unwrap(): TData;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Result.js","sourceRoot":"","sources":["../../src/data-structures/Result.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"Result.js","sourceRoot":"","sources":["../../src/data-structures/Result.ts"],"names":[],"mappings":";;;AAEA,MAAa,MAAM;IACD,IAAI,CAAa;IACjB,IAAI,CAAS;IACb,KAAK,CAAU;IAE/B,YAAoB,IAAgB,EAAE,IAAY,EAAE,KAAc;QAChE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,MAAM,CAAC,OAAO,CAAI,IAAQ;QACxB,OAAO,IAAI,MAAM,CAAW,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,CAAC,OAAO,CAAS,KAAa;QAClC,OAAO,IAAI,MAAM,CAAgB,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IAChE,CAAC;IAED,SAAS;QAGP,OAAO,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC;IACjC,CAAC;IAED,SAAS;QAMP,OAAO,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC;IACjC,CAAC;IAED,iBAAiB;IACf,8DAA8D;IAC9D,GAAG,UAAmD;QAEtD,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,YAAY,SAAS,CAAC,CAAC;IACzE,CAAC;IAED,KAAK;QACH,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,CAAC,KAAK,CAAC;QACnB,CAAC;IACH,CAAC;IAED,MAAM;QACJ,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;YACrB,MAAM,IAAI,CAAC,KAAK,CAAC;QACnB,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,CAAC,IAAK,CAAC;QACpB,CAAC;IACH,CAAC;IAED,KAAK,CAAwB,QAG5B;QACC,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;YACrB,OAAO,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAK,EAAE,IAAI,CAAC,CAAC;QAC5C,CAAC;aAAM,CAAC;YACN,OAAO,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAM,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;CACF;AAjED,wBAiEC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,5 +2,6 @@ export * from './types/class-utilities-types';
|
|
|
2
2
|
export * from './object/getProperty';
|
|
3
3
|
export * from './measurement/performance';
|
|
4
4
|
export * from './data-structures/Result';
|
|
5
|
+
export * from './change-tracker/ChangeTracker';
|
|
5
6
|
export * from './array/chunkify';
|
|
6
7
|
export * from './array/unique';
|
package/dist/index.js
CHANGED
|
@@ -18,6 +18,7 @@ __exportStar(require("./types/class-utilities-types"), exports);
|
|
|
18
18
|
__exportStar(require("./object/getProperty"), exports);
|
|
19
19
|
__exportStar(require("./measurement/performance"), exports);
|
|
20
20
|
__exportStar(require("./data-structures/Result"), exports);
|
|
21
|
+
__exportStar(require("./change-tracker/ChangeTracker"), exports);
|
|
21
22
|
__exportStar(require("./array/chunkify"), exports);
|
|
22
23
|
__exportStar(require("./array/unique"), exports);
|
|
23
24
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gEAA8C;AAC9C,uDAAqC;AACrC,4DAA0C;AAC1C,2DAAyC;AACzC,mDAAiC;AACjC,iDAA+B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gEAA8C;AAC9C,uDAAqC;AACrC,4DAA0C;AAC1C,2DAAyC;AACzC,iEAA+C;AAC/C,mDAAiC;AACjC,iDAA+B"}
|