@furystack/utils 3.1.7 → 4.0.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/package.json +21 -8
- package/src/debounce.spec.ts +20 -17
- package/src/deep-merge.spec.ts +1 -0
- package/src/deep-merge.ts +0 -1
- package/src/disposable.spec.ts +23 -15
- package/src/disposable.ts +0 -2
- package/src/observable-value.spec.ts +47 -20
- package/src/observable-value.ts +4 -7
- package/src/path-helper.spec.ts +1 -0
- package/src/path-helper.ts +0 -5
- package/src/sleep-async.spec.ts +1 -0
- package/src/sleep-async.ts +0 -1
- package/src/sort-by.spec.ts +1 -0
- package/src/trace.spec.ts +48 -26
- package/src/trace.ts +0 -1
- package/src/tuple.spec.ts +1 -0
- package/src/tuple.ts +0 -1
- package/src/value-observer.ts +1 -2
- package/types/deep-merge.d.ts +0 -1
- package/types/deep-merge.d.ts.map +1 -1
- package/types/disposable.d.ts +0 -2
- package/types/disposable.d.ts.map +1 -1
- package/types/observable-value.d.ts +1 -7
- package/types/observable-value.d.ts.map +1 -1
- package/types/path-helper.d.ts +0 -5
- package/types/path-helper.d.ts.map +1 -1
- package/types/sleep-async.d.ts +0 -1
- package/types/sleep-async.d.ts.map +1 -1
- package/types/trace.d.ts +0 -1
- package/types/trace.d.ts.map +1 -1
- package/types/tuple.d.ts +0 -1
- package/types/tuple.d.ts.map +1 -1
- package/types/value-observer.d.ts +1 -2
- package/types/value-observer.d.ts.map +1 -1
- package/dist/debounce.js +0 -23
- package/dist/debounce.js.map +0 -1
- package/dist/debounce.spec.js +0 -40
- package/dist/debounce.spec.js.map +0 -1
- package/dist/deep-merge.js +0 -34
- package/dist/deep-merge.js.map +0 -1
- package/dist/deep-merge.spec.js +0 -31
- package/dist/deep-merge.spec.js.map +0 -1
- package/dist/disposable.js +0 -63
- package/dist/disposable.js.map +0 -1
- package/dist/disposable.spec.js +0 -112
- package/dist/disposable.spec.js.map +0 -1
- package/dist/index.js +0 -27
- package/dist/index.js.map +0 -1
- package/dist/observable-value.js +0 -117
- package/dist/observable-value.js.map +0 -1
- package/dist/observable-value.spec.js +0 -109
- package/dist/observable-value.spec.js.map +0 -1
- package/dist/path-helper.js +0 -75
- package/dist/path-helper.js.map +0 -1
- package/dist/path-helper.spec.js +0 -62
- package/dist/path-helper.spec.js.map +0 -1
- package/dist/sleep-async.js +0 -13
- package/dist/sleep-async.js.map +0 -1
- package/dist/sleep-async.spec.js +0 -16
- package/dist/sleep-async.spec.js.map +0 -1
- package/dist/sort-by.js +0 -19
- package/dist/sort-by.js.map +0 -1
- package/dist/sort-by.spec.js +0 -22
- package/dist/sort-by.spec.js.map +0 -1
- package/dist/trace.js +0 -131
- package/dist/trace.js.map +0 -1
- package/dist/trace.spec.js +0 -169
- package/dist/trace.spec.js.map +0 -1
- package/dist/tuple.js +0 -12
- package/dist/tuple.js.map +0 -1
- package/dist/tuple.spec.js +0 -9
- package/dist/tuple.spec.js.map +0 -1
- package/dist/value-observer.js +0 -45
- package/dist/value-observer.js.map +0 -1
- package/types/debounce.spec.d.ts +0 -5
- package/types/debounce.spec.d.ts.map +0 -1
- package/types/deep-merge.spec.d.ts +0 -2
- package/types/deep-merge.spec.d.ts.map +0 -1
- package/types/disposable.spec.d.ts +0 -22
- package/types/disposable.spec.d.ts.map +0 -1
- package/types/observable-value.spec.d.ts +0 -5
- package/types/observable-value.spec.d.ts.map +0 -1
- package/types/path-helper.spec.d.ts +0 -5
- package/types/path-helper.spec.d.ts.map +0 -1
- package/types/sleep-async.spec.d.ts +0 -5
- package/types/sleep-async.spec.d.ts.map +0 -1
- package/types/sort-by.spec.d.ts +0 -2
- package/types/sort-by.spec.d.ts.map +0 -1
- package/types/trace.spec.d.ts +0 -2
- package/types/trace.spec.d.ts.map +0 -1
- package/types/tuple.spec.d.ts +0 -2
- package/types/tuple.spec.d.ts.map +0 -1
package/src/tuple.spec.ts
CHANGED
package/src/tuple.ts
CHANGED
package/src/value-observer.ts
CHANGED
|
@@ -11,7 +11,7 @@ import type { ObservableValue, ValueChangeCallback } from './observable-value'
|
|
|
11
11
|
*
|
|
12
12
|
* const observableValue = new ObservableValue<number>(0);
|
|
13
13
|
* const observer = observableValue.subscribe((newValue) => {
|
|
14
|
-
*
|
|
14
|
+
* console.log("Value changed:", newValue);
|
|
15
15
|
* });
|
|
16
16
|
*
|
|
17
17
|
* // To update the value
|
|
@@ -21,7 +21,6 @@ import type { ObservableValue, ValueChangeCallback } from './observable-value'
|
|
|
21
21
|
* // if you want to dispose the whole observableValue with all of its observers:
|
|
22
22
|
* observableValue.dispose();
|
|
23
23
|
* ```
|
|
24
|
-
*
|
|
25
24
|
* @param T This type parameter is the value type to observe
|
|
26
25
|
*/
|
|
27
26
|
export class ValueObserver<T> implements Disposable {
|
package/types/deep-merge.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deep-merge.d.ts","sourceRoot":"","sources":["../src/deep-merge.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,CAAA;AAEnE
|
|
1
|
+
{"version":3,"file":"deep-merge.d.ts","sourceRoot":"","sources":["../src/deep-merge.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,CAAA;AAEnE;;;;;GAKG;AACH,eAAO,MAAM,SAAS,iEAmBrB,CAAA"}
|
package/types/disposable.d.ts
CHANGED
|
@@ -34,7 +34,6 @@ export interface Disposable {
|
|
|
34
34
|
}
|
|
35
35
|
/**
|
|
36
36
|
* Method that accepts an IDisposable resource that will be disposed after the callback
|
|
37
|
-
*
|
|
38
37
|
* @param resource The resource that is used in the callback and will be disposed afterwards
|
|
39
38
|
* @param callback The callback that will be executed synchrounously before the resource will be disposed
|
|
40
39
|
* @returns the value that will be returned by the callback method
|
|
@@ -42,7 +41,6 @@ export interface Disposable {
|
|
|
42
41
|
export declare const using: <T extends Disposable, TReturns>(resource: T, callback: (r: T) => TReturns) => TReturns;
|
|
43
42
|
/**
|
|
44
43
|
* Method that accepts an IDisposable resource that will be disposed after the callback
|
|
45
|
-
*
|
|
46
44
|
* @param resource The resource that is used in the callback and will be disposed afterwards
|
|
47
45
|
* @param callback The callback that will be executed asynchrounously before the resource will be disposed
|
|
48
46
|
* @returns A promise that will be resolved with a return value after the resource is disposed
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"disposable.d.ts","sourceRoot":"","sources":["../src/disposable.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM;AAEN;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,OAAO,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACpC;AAED
|
|
1
|
+
{"version":3,"file":"disposable.d.ts","sourceRoot":"","sources":["../src/disposable.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM;AAEN;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,OAAO,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACpC;AAED;;;;;GAKG;AACH,eAAO,MAAM,KAAK,yFAMjB,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,UAAU,2GAYtB,CAAA"}
|
|
@@ -19,7 +19,7 @@ export type ValueChangeCallback<T> = (next: T) => void;
|
|
|
19
19
|
* ```ts
|
|
20
20
|
* const observableValue = new ObservableValue<number>(0);
|
|
21
21
|
* const observer = observableValue.subscribe((newValue) => {
|
|
22
|
-
*
|
|
22
|
+
* console.log("Value changed:", newValue);
|
|
23
23
|
* });
|
|
24
24
|
* // To update the value
|
|
25
25
|
* observableValue.setValue(Math.random());
|
|
@@ -28,7 +28,6 @@ export type ValueChangeCallback<T> = (next: T) => void;
|
|
|
28
28
|
* // if you want to dispose the whole observableValue with all of its observers:
|
|
29
29
|
* observableValue.dispose();
|
|
30
30
|
* ```
|
|
31
|
-
*
|
|
32
31
|
* @param T Generic argument to indicate the value type
|
|
33
32
|
*/
|
|
34
33
|
export declare class ObservableValue<T> implements Disposable {
|
|
@@ -42,7 +41,6 @@ export declare class ObservableValue<T> implements Disposable {
|
|
|
42
41
|
private currentValue;
|
|
43
42
|
/**
|
|
44
43
|
* Subscribes to a value changes
|
|
45
|
-
*
|
|
46
44
|
* @param callback The callback method that will be called on each change
|
|
47
45
|
* @param getLast Will call the callback with the last known value right after subscription
|
|
48
46
|
* @returns The ValueObserver instance
|
|
@@ -50,26 +48,22 @@ export declare class ObservableValue<T> implements Disposable {
|
|
|
50
48
|
subscribe(callback: ValueChangeCallback<T>, getLast?: boolean): ValueObserver<T>;
|
|
51
49
|
/**
|
|
52
50
|
* The observer will unsubscribe from the Observable
|
|
53
|
-
*
|
|
54
51
|
* @param observer The ValueObserver instance
|
|
55
52
|
* @returns if unsubscribing was successfull
|
|
56
53
|
*/
|
|
57
54
|
unsubscribe(observer: ValueObserver<T>): boolean;
|
|
58
55
|
/**
|
|
59
56
|
* Gets the current Value
|
|
60
|
-
*
|
|
61
57
|
* @returns The current value
|
|
62
58
|
*/
|
|
63
59
|
getValue(): T;
|
|
64
60
|
/**
|
|
65
61
|
* Sets a new value and notifies the observers.
|
|
66
|
-
*
|
|
67
62
|
* @param newValue The new value to be set
|
|
68
63
|
*/
|
|
69
64
|
setValue(newValue: T): void;
|
|
70
65
|
/**
|
|
71
66
|
* Gets the observers
|
|
72
|
-
*
|
|
73
67
|
* @returns The subscribed observers
|
|
74
68
|
*/
|
|
75
69
|
getObservers(): readonly ValueObserver<T>[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"observable-value.d.ts","sourceRoot":"","sources":["../src/observable-value.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAEhD;;GAEG;AACH,qBAAa,8BAA+B,SAAQ,KAAK;;CAIxD;AAED;;GAEG;AACH,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAA;AAEtD
|
|
1
|
+
{"version":3,"file":"observable-value.d.ts","sourceRoot":"","sources":["../src/observable-value.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAEhD;;GAEG;AACH,qBAAa,8BAA+B,SAAQ,KAAK;;CAIxD;AAED;;GAEG;AACH,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAA;AAEtD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,eAAe,CAAC,CAAC,CAAE,YAAW,UAAU;IACnD,IAAW,UAAU,IAAI,OAAO,CAE/B;IAED,OAAO,CAAC,WAAW,CAAQ;IAE3B;;OAEG;IACI,OAAO;IAId,OAAO,CAAC,SAAS,CAAmC;IACpD,OAAO,CAAC,YAAY,CAAI;IAExB;;;;;OAKG;IACI,SAAS,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC,CAAC,EAAE,OAAO,UAAQ;IAYlE;;;;OAIG;IACI,WAAW,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC;IAI7C;;;OAGG;IACI,QAAQ,IAAI,CAAC;IAOpB;;;OAGG;IACI,QAAQ,CAAC,QAAQ,EAAE,CAAC;IAY3B;;;OAGG;IACI,YAAY;IAInB;;OAEG;gBACS,YAAY,CAAC,EAAE,CAAC;CAK7B"}
|
package/types/path-helper.d.ts
CHANGED
|
@@ -6,7 +6,6 @@
|
|
|
6
6
|
export declare class PathHelper {
|
|
7
7
|
/**
|
|
8
8
|
* Trims the slash characters from the beginning and from the end of the path to avoid duplicated slashes
|
|
9
|
-
*
|
|
10
9
|
* @param {string} path The source path that should be trimmed
|
|
11
10
|
* @returns the trimmed path
|
|
12
11
|
*/
|
|
@@ -14,21 +13,18 @@ export declare class PathHelper {
|
|
|
14
13
|
/**
|
|
15
14
|
* Splits a full path into path segments,
|
|
16
15
|
* e.g.: /Root/Example/stuff
|
|
17
|
-
*
|
|
18
16
|
* @param path The path to be splitted
|
|
19
17
|
* @returns {string[]} the segments for the path
|
|
20
18
|
*/
|
|
21
19
|
static getSegments(path: string): string[];
|
|
22
20
|
/**
|
|
23
21
|
* Method that allows to join paths without multiple or missing slashes
|
|
24
|
-
*
|
|
25
22
|
* @param args The list of the paths to join
|
|
26
23
|
* @returns the joined path string
|
|
27
24
|
*/
|
|
28
25
|
static joinPaths(...args: string[]): string;
|
|
29
26
|
/**
|
|
30
27
|
* Checks if the ancestorPath is really the ancestor of the descendantPath
|
|
31
|
-
*
|
|
32
28
|
* @param {string} ancestorPath the ancestor path
|
|
33
29
|
* @param {string} descendantPath the descendant path
|
|
34
30
|
* @returns {boolean} if the provided path is the ancestor of the descendant
|
|
@@ -39,7 +35,6 @@ export declare class PathHelper {
|
|
|
39
35
|
* e.g. "/Root/Example/Content" will return "/Root/Example"
|
|
40
36
|
*
|
|
41
37
|
* "Root" will always return "Root"
|
|
42
|
-
*
|
|
43
38
|
* @param path The content path
|
|
44
39
|
* @returns the parent path
|
|
45
40
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"path-helper.d.ts","sourceRoot":"","sources":["../src/path-helper.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,qBAAa,UAAU;IACrB
|
|
1
|
+
{"version":3,"file":"path-helper.d.ts","sourceRoot":"","sources":["../src/path-helper.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,qBAAa,UAAU;IACrB;;;;OAIG;WACW,WAAW,CAAC,IAAI,EAAE,MAAM;IAUtC;;;;;OAKG;WACW,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE;IAIjD;;;;OAIG;WACW,SAAS,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE;IAIzC;;;;;OAKG;WACW,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO;IAIjF;;;;;;;OAOG;WACW,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;WAQnC,SAAS,CAAC,IAAI,EAAE,MAAM;CAGrC"}
|
package/types/sleep-async.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sleep-async.d.ts","sourceRoot":"","sources":["../src/sleep-async.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"sleep-async.d.ts","sourceRoot":"","sources":["../src/sleep-async.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,UAAU,qCAKpB,CAAA"}
|
package/types/trace.d.ts
CHANGED
|
@@ -111,7 +111,6 @@ export declare class Trace {
|
|
|
111
111
|
private static callMethodAsync;
|
|
112
112
|
/**
|
|
113
113
|
* Creates an observer that will be observe method calls, finishes and errors
|
|
114
|
-
*
|
|
115
114
|
* @param options The options object for the trace
|
|
116
115
|
* @returns the trace object that can be disposed after usage
|
|
117
116
|
*/
|
package/types/trace.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trace.d.ts","sourceRoot":"","sources":["../src/trace.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAEpD;;GAEG;AACH,MAAM,WAAW,kBAAkB,CAAC,CAAC,EAAE,OAAO,SAAS,CAAC,GAAG,IAAI,EAAE,KAAK,KAAK,OAAO,EAAE,KAAK,SAAS,OAAO,EAAE;IACzG;;OAEG;IACH,MAAM,EAAE,CAAC,CAAA;IACT;;OAEG;IACH,MAAM,EAAE,OAAO,CAAA;IACf;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,eAAe,CAAC,KAAK,CAAC,KAAK,IAAI,CAAA;IACrD;;OAEG;IACH,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,mBAAmB,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,KAAK,IAAI,CAAA;IAChF;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,CAAC,KAAK,CAAC,KAAK,IAAI,CAAA;IAErD;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe,CAAC,KAAK,SAAS,GAAG,EAAE;IAClD;;OAEG;IACH,aAAa,EAAE,IAAI,CAAA;IAEnB;;OAEG;IACH,eAAe,EAAE,KAAK,CAAA;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB,CAAC,QAAQ,EAAE,KAAK,SAAS,GAAG,EAAE,CAAE,SAAQ,eAAe,CAAC,KAAK,CAAC;IAChG,QAAQ,EAAE,QAAQ,CAAA;IAClB,gBAAgB,EAAE,IAAI,CAAA;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB,CAAC,KAAK,SAAS,GAAG,EAAE,CAAE,SAAQ,eAAe,CAAC,KAAK,CAAC;IACnF,KAAK,EAAE,GAAG,CAAA;IACV,aAAa,EAAE,IAAI,CAAA;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa,CAAC,QAAQ,EAAE,KAAK,SAAS,GAAG,EAAE;IAC1D;;OAEG;IACH,cAAc,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,KAAK,QAAQ,CAAA;IAC5C;;OAEG;IACH,cAAc,EAAE,eAAe,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAA;IAEvD,kBAAkB,EAAE,eAAe,CAAC,mBAAmB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAA;IACpE,eAAe,EAAE,eAAe,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAA;CAC1D;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;CACvD;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,KAAK;IAChB,OAAO,CAAC,MAAM,CAAC,YAAY,CAAsC;IAEjE,OAAO,CAAC,MAAM,CAAC,cAAc;IAQ7B,OAAO,CAAC,MAAM,CAAC,UAAU;IAazB,OAAO,CAAC,MAAM,CAAC,aAAa;IAe5B,OAAO,CAAC,MAAM,CAAC,UAAU;IAgBzB,OAAO,CAAC,MAAM,CAAC,UAAU;mBAiBJ,eAAe;IAiBpC
|
|
1
|
+
{"version":3,"file":"trace.d.ts","sourceRoot":"","sources":["../src/trace.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAEpD;;GAEG;AACH,MAAM,WAAW,kBAAkB,CAAC,CAAC,EAAE,OAAO,SAAS,CAAC,GAAG,IAAI,EAAE,KAAK,KAAK,OAAO,EAAE,KAAK,SAAS,OAAO,EAAE;IACzG;;OAEG;IACH,MAAM,EAAE,CAAC,CAAA;IACT;;OAEG;IACH,MAAM,EAAE,OAAO,CAAA;IACf;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,eAAe,CAAC,KAAK,CAAC,KAAK,IAAI,CAAA;IACrD;;OAEG;IACH,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,mBAAmB,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,KAAK,IAAI,CAAA;IAChF;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,CAAC,KAAK,CAAC,KAAK,IAAI,CAAA;IAErD;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe,CAAC,KAAK,SAAS,GAAG,EAAE;IAClD;;OAEG;IACH,aAAa,EAAE,IAAI,CAAA;IAEnB;;OAEG;IACH,eAAe,EAAE,KAAK,CAAA;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB,CAAC,QAAQ,EAAE,KAAK,SAAS,GAAG,EAAE,CAAE,SAAQ,eAAe,CAAC,KAAK,CAAC;IAChG,QAAQ,EAAE,QAAQ,CAAA;IAClB,gBAAgB,EAAE,IAAI,CAAA;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB,CAAC,KAAK,SAAS,GAAG,EAAE,CAAE,SAAQ,eAAe,CAAC,KAAK,CAAC;IACnF,KAAK,EAAE,GAAG,CAAA;IACV,aAAa,EAAE,IAAI,CAAA;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa,CAAC,QAAQ,EAAE,KAAK,SAAS,GAAG,EAAE;IAC1D;;OAEG;IACH,cAAc,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,KAAK,QAAQ,CAAA;IAC5C;;OAEG;IACH,cAAc,EAAE,eAAe,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAA;IAEvD,kBAAkB,EAAE,eAAe,CAAC,mBAAmB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAA;IACpE,eAAe,EAAE,eAAe,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAA;CAC1D;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;CACvD;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,KAAK;IAChB,OAAO,CAAC,MAAM,CAAC,YAAY,CAAsC;IAEjE,OAAO,CAAC,MAAM,CAAC,cAAc;IAQ7B,OAAO,CAAC,MAAM,CAAC,UAAU;IAazB,OAAO,CAAC,MAAM,CAAC,aAAa;IAe5B,OAAO,CAAC,MAAM,CAAC,UAAU;IAgBzB,OAAO,CAAC,MAAM,CAAC,UAAU;mBAiBJ,eAAe;IAiBpC;;;;OAIG;WACW,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,OAAO,SAAS,CAAC,GAAG,IAAI,EAAE,KAAK,KAAK,GAAG,EAAE,KAAK,SAAS,GAAG,EAAE,EACjG,OAAO,EAAE,kBAAkB,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,GAC7C,UAAU;CA0Cd"}
|
package/types/tuple.d.ts
CHANGED
package/types/tuple.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tuple.d.ts","sourceRoot":"","sources":["../src/tuple.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"tuple.d.ts","sourceRoot":"","sources":["../src/tuple.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,KAAK,uCAA2C,CAAA"}
|
|
@@ -10,7 +10,7 @@ import type { ObservableValue, ValueChangeCallback } from './observable-value';
|
|
|
10
10
|
*
|
|
11
11
|
* const observableValue = new ObservableValue<number>(0);
|
|
12
12
|
* const observer = observableValue.subscribe((newValue) => {
|
|
13
|
-
*
|
|
13
|
+
* console.log("Value changed:", newValue);
|
|
14
14
|
* });
|
|
15
15
|
*
|
|
16
16
|
* // To update the value
|
|
@@ -20,7 +20,6 @@ import type { ObservableValue, ValueChangeCallback } from './observable-value';
|
|
|
20
20
|
* // if you want to dispose the whole observableValue with all of its observers:
|
|
21
21
|
* observableValue.dispose();
|
|
22
22
|
* ```
|
|
23
|
-
*
|
|
24
23
|
* @param T This type parameter is the value type to observe
|
|
25
24
|
*/
|
|
26
25
|
export declare class ValueObserver<T> implements Disposable {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"value-observer.d.ts","sourceRoot":"","sources":["../src/value-observer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAE9E
|
|
1
|
+
{"version":3,"file":"value-observer.d.ts","sourceRoot":"","sources":["../src/value-observer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAE9E;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,aAAa,CAAC,CAAC,CAAE,YAAW,UAAU;aAarB,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC;IAAS,QAAQ,EAAE,mBAAmB,CAAC,CAAC,CAAC;IAZnG;;OAEG;IACI,OAAO;IAId;;;;OAIG;gBACyB,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC,EAAS,QAAQ,EAAE,mBAAmB,CAAC,CAAC,CAAC;CACpG"}
|
package/dist/debounce.js
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.debounce = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* @param method The method that should be debounced
|
|
6
|
-
* @param debounceMs The timeout in millisecs
|
|
7
|
-
* @returns a method that wraps the original one with an async debounce
|
|
8
|
-
*/
|
|
9
|
-
const debounce = (method, debounceMs = 250) => {
|
|
10
|
-
let timeout;
|
|
11
|
-
return ((...args) => {
|
|
12
|
-
if (timeout) {
|
|
13
|
-
clearTimeout(timeout);
|
|
14
|
-
}
|
|
15
|
-
timeout = setTimeout(() => {
|
|
16
|
-
method(...args);
|
|
17
|
-
timeout ?? clearTimeout(timeout);
|
|
18
|
-
timeout = undefined;
|
|
19
|
-
}, debounceMs);
|
|
20
|
-
});
|
|
21
|
-
};
|
|
22
|
-
exports.debounce = debounce;
|
|
23
|
-
//# sourceMappingURL=debounce.js.map
|
package/dist/debounce.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"debounce.js","sourceRoot":"","sources":["../src/debounce.ts"],"names":[],"mappings":";;;AAAA;;;;GAIG;AACI,MAAM,QAAQ,GAAG,CAAoC,MAAoC,EAAE,UAAU,GAAG,GAAG,EAAE,EAAE;IACpH,IAAI,OAAkD,CAAA;IACtD,OAAO,CAAC,CAAC,GAAG,IAAW,EAAE,EAAE;QACzB,IAAI,OAAO,EAAE;YACX,YAAY,CAAC,OAAO,CAAC,CAAA;SACtB;QACD,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;YACxB,MAAM,CAAC,GAAG,IAAI,CAAC,CAAA;YACf,OAAO,IAAI,YAAY,CAAC,OAAO,CAAC,CAAA;YAChC,OAAO,GAAG,SAAS,CAAA;QACrB,CAAC,EAAE,UAAU,CAAC,CAAA;IAChB,CAAC,CAAiC,CAAA;AACpC,CAAC,CAAA;AAZY,QAAA,QAAQ,YAYpB"}
|
package/dist/debounce.spec.js
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.debounceTests = void 0;
|
|
4
|
-
const debounce_1 = require("./debounce");
|
|
5
|
-
const sleep_async_1 = require("./sleep-async");
|
|
6
|
-
/**
|
|
7
|
-
* Tests for debounce
|
|
8
|
-
*/
|
|
9
|
-
exports.debounceTests = describe('debounce', () => {
|
|
10
|
-
it('Simple method execution', (done) => {
|
|
11
|
-
const method = (0, debounce_1.debounce)(() => {
|
|
12
|
-
done();
|
|
13
|
-
});
|
|
14
|
-
method();
|
|
15
|
-
});
|
|
16
|
-
it('Should be executed once when triggered multiple time in a given range', async () => {
|
|
17
|
-
let counter = 0;
|
|
18
|
-
const method = (0, debounce_1.debounce)(() => {
|
|
19
|
-
counter++;
|
|
20
|
-
}, 10);
|
|
21
|
-
for (let index = 0; index < 10; index++) {
|
|
22
|
-
method();
|
|
23
|
-
}
|
|
24
|
-
await (0, sleep_async_1.sleepAsync)(300);
|
|
25
|
-
expect(counter).toBe(1);
|
|
26
|
-
});
|
|
27
|
-
it('Should be executed multiple times when triggered multiple times out of a a given range', async () => {
|
|
28
|
-
let counter = 0;
|
|
29
|
-
const method = (0, debounce_1.debounce)(() => {
|
|
30
|
-
counter++;
|
|
31
|
-
}, 10);
|
|
32
|
-
for (let index = 0; index < 10; index++) {
|
|
33
|
-
method();
|
|
34
|
-
await (0, sleep_async_1.sleepAsync)(15);
|
|
35
|
-
}
|
|
36
|
-
await (0, sleep_async_1.sleepAsync)(300);
|
|
37
|
-
expect(counter).toBe(10);
|
|
38
|
-
});
|
|
39
|
-
});
|
|
40
|
-
//# sourceMappingURL=debounce.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"debounce.spec.js","sourceRoot":"","sources":["../src/debounce.spec.ts"],"names":[],"mappings":";;;AAAA,yCAAqC;AACrC,+CAA0C;AAE1C;;GAEG;AACU,QAAA,aAAa,GAAG,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;IACrD,EAAE,CAAC,yBAAyB,EAAE,CAAC,IAAI,EAAE,EAAE;QACrC,MAAM,MAAM,GAAG,IAAA,mBAAQ,EAAC,GAAG,EAAE;YAC3B,IAAI,EAAE,CAAA;QACR,CAAC,CAAC,CAAA;QACF,MAAM,EAAE,CAAA;IACV,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,uEAAuE,EAAE,KAAK,IAAI,EAAE;QACrF,IAAI,OAAO,GAAG,CAAC,CAAA;QACf,MAAM,MAAM,GAAG,IAAA,mBAAQ,EAAC,GAAG,EAAE;YAC3B,OAAO,EAAE,CAAA;QACX,CAAC,EAAE,EAAE,CAAC,CAAA;QACN,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE;YACvC,MAAM,EAAE,CAAA;SACT;QACD,MAAM,IAAA,wBAAU,EAAC,GAAG,CAAC,CAAA;QACrB,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACzB,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,yFAAyF,EAAE,KAAK,IAAI,EAAE;QACvG,IAAI,OAAO,GAAG,CAAC,CAAA;QACf,MAAM,MAAM,GAAG,IAAA,mBAAQ,EAAC,GAAG,EAAE;YAC3B,OAAO,EAAE,CAAA;QACX,CAAC,EAAE,EAAE,CAAC,CAAA;QACN,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE;YACvC,MAAM,EAAE,CAAA;YACR,MAAM,IAAA,wBAAU,EAAC,EAAE,CAAC,CAAA;SACrB;QACD,MAAM,IAAA,wBAAU,EAAC,GAAG,CAAC,CAAA;QACrB,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAC1B,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
package/dist/deep-merge.js
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.deepMerge = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* Deep merge two objects.
|
|
6
|
-
*
|
|
7
|
-
* @param target The source object to be merged
|
|
8
|
-
* @param sources The source objects
|
|
9
|
-
* @returns A new instance with the merged values
|
|
10
|
-
*/
|
|
11
|
-
const deepMerge = (target, ...sources) => {
|
|
12
|
-
if (!sources.length) {
|
|
13
|
-
return target;
|
|
14
|
-
}
|
|
15
|
-
const merged = { ...target };
|
|
16
|
-
for (const source of sources) {
|
|
17
|
-
if (!source) {
|
|
18
|
-
continue;
|
|
19
|
-
}
|
|
20
|
-
const keys = Object.keys(source);
|
|
21
|
-
for (const key of keys) {
|
|
22
|
-
if (!(source[key] instanceof Array) && typeof source[key] === 'object' && typeof target[key] === 'object') {
|
|
23
|
-
merged[key] = (0, exports.deepMerge)(target[key], source[key]);
|
|
24
|
-
}
|
|
25
|
-
else if (source[key] !== undefined) {
|
|
26
|
-
;
|
|
27
|
-
merged[key] = source[key];
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
return merged;
|
|
32
|
-
};
|
|
33
|
-
exports.deepMerge = deepMerge;
|
|
34
|
-
//# sourceMappingURL=deep-merge.js.map
|
package/dist/deep-merge.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"deep-merge.js","sourceRoot":"","sources":["../src/deep-merge.ts"],"names":[],"mappings":";;;AAKA;;;;;;GAMG;AACI,MAAM,SAAS,GAAG,CAAI,MAAS,EAAE,GAAG,OAA0C,EAAE,EAAE;IACvF,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;QACnB,OAAO,MAAM,CAAA;KACd;IACD,MAAM,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,CAAA;IAC5B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;QAC5B,IAAI,CAAC,MAAM,EAAE;YACX,SAAQ;SACT;QACD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAmB,CAAA;QAClD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;YACtB,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,KAAK,CAAC,IAAI,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,QAAQ,IAAI,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE;gBACzG,MAAM,CAAC,GAAG,CAAC,GAAG,IAAA,iBAAS,EAAC,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;aAClD;iBAAM,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE;gBACpC,CAAC;gBAAC,MAAM,CAAC,GAAG,CAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;aACpC;SACF;KACF;IACD,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAnBY,QAAA,SAAS,aAmBrB"}
|
package/dist/deep-merge.spec.js
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const deep_merge_1 = require("./deep-merge");
|
|
4
|
-
describe('DeepMerge tests', () => {
|
|
5
|
-
it('Should return the target object if no merge sources are defined', () => {
|
|
6
|
-
const obj = { a: 1 };
|
|
7
|
-
expect((0, deep_merge_1.deepMerge)(obj)).toBe(obj);
|
|
8
|
-
});
|
|
9
|
-
it('Should merge simple values in one level', () => {
|
|
10
|
-
expect((0, deep_merge_1.deepMerge)({ a: 1, b: 0, c: 0 }, { b: 2 }, { c: 3 })).toEqual({ a: 1, b: 2, c: 3 });
|
|
11
|
-
});
|
|
12
|
-
it('Should skip falsy sources', () => {
|
|
13
|
-
expect((0, deep_merge_1.deepMerge)({ a: 1, b: 0, c: 0 }, null, { b: 2 }, { c: 3 })).toEqual({ a: 1, b: 2, c: 3 });
|
|
14
|
-
});
|
|
15
|
-
it('Should override arrays', () => {
|
|
16
|
-
expect((0, deep_merge_1.deepMerge)({ a: [0, 1, 2] }, { a: [1, 2, 3] })).toEqual({ a: [1, 2, 3] });
|
|
17
|
-
});
|
|
18
|
-
it('Should merge nested objects', () => {
|
|
19
|
-
expect((0, deep_merge_1.deepMerge)({ a: 1, b: { a: 1, b: 2 } }, { b: { a: 3 } })).toEqual({ a: 1, b: { a: 3, b: 2 } });
|
|
20
|
-
});
|
|
21
|
-
it('Should respect falsy but defined values (false)', () => {
|
|
22
|
-
expect((0, deep_merge_1.deepMerge)({ a: true }, { a: false })).toEqual({ a: false });
|
|
23
|
-
});
|
|
24
|
-
it('Should respect falsy but defined values (empty string)', () => {
|
|
25
|
-
expect((0, deep_merge_1.deepMerge)({ a: 'asdasd' }, { a: '' })).toEqual({ a: '' });
|
|
26
|
-
});
|
|
27
|
-
it('Should respect falsy but defined values (zero)', () => {
|
|
28
|
-
expect((0, deep_merge_1.deepMerge)({ a: 654 }, { a: 0 })).toEqual({ a: 0 });
|
|
29
|
-
});
|
|
30
|
-
});
|
|
31
|
-
//# sourceMappingURL=deep-merge.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"deep-merge.spec.js","sourceRoot":"","sources":["../src/deep-merge.spec.ts"],"names":[],"mappings":"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"}
|
package/dist/disposable.js
DELETED
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
*
|
|
4
|
-
* You can implement *IDisposable* resources and use them with a *using()* or *usingAsync()* syntax.
|
|
5
|
-
*
|
|
6
|
-
* Usage example:
|
|
7
|
-
*
|
|
8
|
-
* ```ts
|
|
9
|
-
* class Resource implements IDisposable{
|
|
10
|
-
* dispose(){
|
|
11
|
-
* // cleanup logics
|
|
12
|
-
* }
|
|
13
|
-
* }
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
* using(new Resource(), (resource)=>{
|
|
17
|
-
* // do something with the resource
|
|
18
|
-
* })
|
|
19
|
-
*
|
|
20
|
-
* usingAsync(new Resource(), async (resource)=>{
|
|
21
|
-
* // do something with the resource, allows awaiting promises
|
|
22
|
-
* })
|
|
23
|
-
* ```
|
|
24
|
-
*/
|
|
25
|
-
/** */
|
|
26
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
27
|
-
exports.usingAsync = exports.using = void 0;
|
|
28
|
-
/**
|
|
29
|
-
* Method that accepts an IDisposable resource that will be disposed after the callback
|
|
30
|
-
*
|
|
31
|
-
* @param resource The resource that is used in the callback and will be disposed afterwards
|
|
32
|
-
* @param callback The callback that will be executed synchrounously before the resource will be disposed
|
|
33
|
-
* @returns the value that will be returned by the callback method
|
|
34
|
-
*/
|
|
35
|
-
const using = (resource, callback) => {
|
|
36
|
-
try {
|
|
37
|
-
return callback(resource);
|
|
38
|
-
}
|
|
39
|
-
finally {
|
|
40
|
-
resource.dispose();
|
|
41
|
-
}
|
|
42
|
-
};
|
|
43
|
-
exports.using = using;
|
|
44
|
-
/**
|
|
45
|
-
* Method that accepts an IDisposable resource that will be disposed after the callback
|
|
46
|
-
*
|
|
47
|
-
* @param resource The resource that is used in the callback and will be disposed afterwards
|
|
48
|
-
* @param callback The callback that will be executed asynchrounously before the resource will be disposed
|
|
49
|
-
* @returns A promise that will be resolved with a return value after the resource is disposed
|
|
50
|
-
*/
|
|
51
|
-
const usingAsync = async (resource, callback) => {
|
|
52
|
-
try {
|
|
53
|
-
return await callback(resource);
|
|
54
|
-
}
|
|
55
|
-
finally {
|
|
56
|
-
const disposeResult = resource.dispose();
|
|
57
|
-
if (disposeResult instanceof Promise) {
|
|
58
|
-
await disposeResult;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
};
|
|
62
|
-
exports.usingAsync = usingAsync;
|
|
63
|
-
//# sourceMappingURL=disposable.js.map
|
package/dist/disposable.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"disposable.js","sourceRoot":"","sources":["../src/disposable.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM;;;AAaN;;;;;;GAMG;AACI,MAAM,KAAK,GAAG,CAAiC,QAAW,EAAE,QAA4B,EAAE,EAAE;IACjG,IAAI;QACF,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAA;KAC1B;YAAS;QACR,QAAQ,CAAC,OAAO,EAAE,CAAA;KACnB;AACH,CAAC,CAAA;AANY,QAAA,KAAK,SAMjB;AAED;;;;;;GAMG;AACI,MAAM,UAAU,GAAG,KAAK,EAC7B,QAAW,EACX,QAAqC,EACrC,EAAE;IACF,IAAI;QACF,OAAO,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAA;KAChC;YAAS;QACR,MAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAA;QACxC,IAAI,aAAa,YAAY,OAAO,EAAE;YACpC,MAAM,aAAa,CAAA;SACpB;KACF;AACH,CAAC,CAAA;AAZY,QAAA,UAAU,cAYtB"}
|
package/dist/disposable.spec.js
DELETED
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.disposableTests = exports.MockDisposable = void 0;
|
|
4
|
-
const disposable_1 = require("./disposable");
|
|
5
|
-
class MockDisposable {
|
|
6
|
-
constructor() {
|
|
7
|
-
this.disposed = false;
|
|
8
|
-
this.isDisposed = () => this.disposed;
|
|
9
|
-
/**
|
|
10
|
-
* Disposes the MockDisposable instance, calls the dispose callback
|
|
11
|
-
*/
|
|
12
|
-
this.dispose = () => {
|
|
13
|
-
this.disposed = true;
|
|
14
|
-
this.disposeCallback && this.disposeCallback();
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Mock to throw an error
|
|
19
|
-
*/
|
|
20
|
-
whooops() {
|
|
21
|
-
throw Error('Whooops');
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
exports.MockDisposable = MockDisposable;
|
|
25
|
-
/**
|
|
26
|
-
* Unit tests for disposables
|
|
27
|
-
*/
|
|
28
|
-
exports.disposableTests = describe('Disposable', () => {
|
|
29
|
-
it('Can be constructed', () => {
|
|
30
|
-
(0, disposable_1.using)(new MockDisposable(), (d) => {
|
|
31
|
-
expect(d).toBeInstanceOf(MockDisposable);
|
|
32
|
-
});
|
|
33
|
-
});
|
|
34
|
-
it('Should return a value from a callback', () => {
|
|
35
|
-
const returned = (0, disposable_1.using)(new MockDisposable(), () => {
|
|
36
|
-
return 1;
|
|
37
|
-
});
|
|
38
|
-
expect(returned).toBe(1);
|
|
39
|
-
});
|
|
40
|
-
it('Should return a value from an async callback', async () => {
|
|
41
|
-
const returned = await (0, disposable_1.usingAsync)(new MockDisposable(), async () => {
|
|
42
|
-
return 2;
|
|
43
|
-
});
|
|
44
|
-
expect(returned).toBe(2);
|
|
45
|
-
});
|
|
46
|
-
describe('isDisposed', () => {
|
|
47
|
-
it('should return a correct value before and after disposition', () => {
|
|
48
|
-
const d = new MockDisposable();
|
|
49
|
-
expect(d.isDisposed()).toBe(false);
|
|
50
|
-
d.dispose();
|
|
51
|
-
expect(d.isDisposed()).toBe(true);
|
|
52
|
-
});
|
|
53
|
-
});
|
|
54
|
-
describe('dispose()', () => {
|
|
55
|
-
it('should be called on error', (done) => {
|
|
56
|
-
try {
|
|
57
|
-
(0, disposable_1.using)(new MockDisposable(), (d) => {
|
|
58
|
-
d.disposeCallback = () => {
|
|
59
|
-
done();
|
|
60
|
-
};
|
|
61
|
-
d.whooops();
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
catch {
|
|
65
|
-
/** ignore */
|
|
66
|
-
}
|
|
67
|
-
});
|
|
68
|
-
it('should be called with usingAsync()', (done) => {
|
|
69
|
-
(0, disposable_1.usingAsync)(new MockDisposable(), async (d) => {
|
|
70
|
-
d.disposeCallback = () => {
|
|
71
|
-
done();
|
|
72
|
-
};
|
|
73
|
-
return new Promise((resolve) => {
|
|
74
|
-
setTimeout(resolve, 1);
|
|
75
|
-
});
|
|
76
|
-
});
|
|
77
|
-
});
|
|
78
|
-
it('should be called when async fails', (done) => {
|
|
79
|
-
(0, disposable_1.usingAsync)(new MockDisposable(), async (d) => {
|
|
80
|
-
d.disposeCallback = () => {
|
|
81
|
-
done();
|
|
82
|
-
};
|
|
83
|
-
return new Promise((_resolve, reject) => {
|
|
84
|
-
setTimeout(reject, 1);
|
|
85
|
-
});
|
|
86
|
-
}).catch(() => {
|
|
87
|
-
/** ignore */
|
|
88
|
-
});
|
|
89
|
-
});
|
|
90
|
-
it('should await dispose for asyncs with usingAsync()', async () => {
|
|
91
|
-
class AsyncDispose {
|
|
92
|
-
constructor() {
|
|
93
|
-
/** flag */
|
|
94
|
-
this.isDisposed = false;
|
|
95
|
-
}
|
|
96
|
-
/** set isDisposed with a timeout */
|
|
97
|
-
async dispose() {
|
|
98
|
-
await new Promise((resolve) => setTimeout(() => {
|
|
99
|
-
this.isDisposed = true;
|
|
100
|
-
resolve();
|
|
101
|
-
}, 10));
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
const asyncDispose = new AsyncDispose();
|
|
105
|
-
await (0, disposable_1.usingAsync)(asyncDispose, async () => {
|
|
106
|
-
/** */
|
|
107
|
-
});
|
|
108
|
-
expect(asyncDispose.isDisposed).toBe(true);
|
|
109
|
-
});
|
|
110
|
-
});
|
|
111
|
-
});
|
|
112
|
-
//# sourceMappingURL=disposable.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"disposable.spec.js","sourceRoot":"","sources":["../src/disposable.spec.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./disposable"), exports);
|
|
18
|
-
__exportStar(require("./deep-merge"), exports);
|
|
19
|
-
__exportStar(require("./debounce"), exports);
|
|
20
|
-
__exportStar(require("./observable-value"), exports);
|
|
21
|
-
__exportStar(require("./value-observer"), exports);
|
|
22
|
-
__exportStar(require("./path-helper"), exports);
|
|
23
|
-
__exportStar(require("./sleep-async"), exports);
|
|
24
|
-
__exportStar(require("./sort-by"), exports);
|
|
25
|
-
__exportStar(require("./trace"), exports);
|
|
26
|
-
__exportStar(require("./tuple"), exports);
|
|
27
|
-
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA4B;AAC5B,+CAA4B;AAC5B,6CAA0B;AAC1B,qDAAkC;AAClC,mDAAgC;AAChC,gDAA6B;AAC7B,gDAA6B;AAC7B,4CAAyB;AACzB,0CAAuB;AACvB,0CAAuB"}
|