@data-weave/datamanager 0.4.26 → 0.5.1
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/{lib → dist}/Cache.d.ts +1 -0
- package/{lib → dist}/Cache.js +3 -1
- package/{lib → dist}/DataManager.d.ts +10 -0
- package/{lib → dist}/DataManager.js +1 -0
- package/{lib → dist}/List.d.ts +1 -0
- package/dist/List.js +17 -0
- package/{lib → dist}/LiveList.d.ts +10 -1
- package/{lib → dist}/LiveList.js +16 -8
- package/dist/LiveReference.d.ts +30 -0
- package/{lib → dist}/LiveReference.js +20 -9
- package/{lib → dist}/Reference.d.ts +2 -0
- package/dist/Reference.js +18 -0
- package/{lib → dist}/index.d.ts +1 -0
- package/{lib → dist}/index.js +1 -0
- package/package.json +11 -8
- package/lib/List.js +0 -24
- package/lib/LiveReference.d.ts +0 -21
- package/lib/Reference.js +0 -25
- package/lib/version.d.ts +0 -2
- package/lib/version.js +0 -3
package/{lib → dist}/Cache.d.ts
RENAMED
package/{lib → dist}/Cache.js
RENAMED
|
@@ -2,8 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.MapCache = void 0;
|
|
4
4
|
class MapCache {
|
|
5
|
+
cache = new Map();
|
|
6
|
+
maxSize;
|
|
5
7
|
constructor(maxSize) {
|
|
6
|
-
this.cache = new Map();
|
|
7
8
|
this.maxSize = maxSize;
|
|
8
9
|
}
|
|
9
10
|
get(key) {
|
|
@@ -30,3 +31,4 @@ class MapCache {
|
|
|
30
31
|
}
|
|
31
32
|
}
|
|
32
33
|
exports.MapCache = MapCache;
|
|
34
|
+
//# sourceMappingURL=Cache.js.map
|
|
@@ -24,6 +24,9 @@ export interface Metadata {
|
|
|
24
24
|
readonly deleted: boolean;
|
|
25
25
|
}
|
|
26
26
|
export type WithMetadata<T> = T & Metadata;
|
|
27
|
+
export type NumericKeys<T> = {
|
|
28
|
+
[K in keyof T]: T[K] extends number ? K : never;
|
|
29
|
+
}[keyof T] & string;
|
|
27
30
|
/**
|
|
28
31
|
* DataManager is the base class for all data managers.
|
|
29
32
|
* It is responsible for reading, creating, deleting, and updating data.
|
|
@@ -37,6 +40,13 @@ export declare abstract class DataManager<T> {
|
|
|
37
40
|
abstract delete(id: string): Promise<void>;
|
|
38
41
|
abstract update(id: string, data: Partial<WithoutId<T>>): Promise<void>;
|
|
39
42
|
abstract upsert(id: string, data: WithoutId<T>): Promise<void>;
|
|
43
|
+
abstract count(params?: GetListOptions): Promise<number>;
|
|
44
|
+
abstract sum(field: NumericKeys<T>, params?: GetListOptions): Promise<number>;
|
|
45
|
+
abstract average(field: NumericKeys<T>, params?: GetListOptions): Promise<number | null>;
|
|
46
|
+
abstract min<K extends string & keyof T>(field: K, params?: GetListOptions): Promise<T[K] | null>;
|
|
47
|
+
abstract max<K extends string & keyof T>(field: K, params?: GetListOptions): Promise<T[K] | null>;
|
|
48
|
+
abstract exists(id: string): Promise<boolean>;
|
|
40
49
|
abstract getRef(id: string): IdentifiableReference<WithMetadata<T>>;
|
|
41
50
|
abstract getList(params?: GetListOptions): List<WithMetadata<T>>;
|
|
42
51
|
}
|
|
52
|
+
//# sourceMappingURL=DataManager.d.ts.map
|
package/{lib → dist}/List.d.ts
RENAMED
package/dist/List.js
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createInitializedList = createInitializedList;
|
|
4
|
+
exports.createEmptyList = createEmptyList;
|
|
5
|
+
function createInitializedList(values) {
|
|
6
|
+
return {
|
|
7
|
+
values,
|
|
8
|
+
resolved: true,
|
|
9
|
+
hasError: false,
|
|
10
|
+
error: undefined,
|
|
11
|
+
resolve: async () => values,
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
function createEmptyList() {
|
|
15
|
+
return createInitializedList([]);
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=List.js.map
|
|
@@ -2,11 +2,17 @@ import { List } from './List';
|
|
|
2
2
|
export interface LiveListOptions<T> {
|
|
3
3
|
onUpdate?: (newValues: T[]) => void;
|
|
4
4
|
onError?: (error: unknown) => void;
|
|
5
|
+
/**
|
|
6
|
+
* If true, the values will be set to an empty array when an error occurs.
|
|
7
|
+
* Default is false.
|
|
8
|
+
*/
|
|
9
|
+
setEmptyOnError?: boolean;
|
|
5
10
|
}
|
|
6
11
|
export declare class LiveList<T> implements List<T> {
|
|
7
12
|
private _values;
|
|
8
13
|
private _resolved;
|
|
9
14
|
private _hasError;
|
|
15
|
+
private _error;
|
|
10
16
|
private _options;
|
|
11
17
|
constructor(options: LiveListOptions<T>);
|
|
12
18
|
resolve(): Promise<readonly T[]>;
|
|
@@ -14,7 +20,9 @@ export declare class LiveList<T> implements List<T> {
|
|
|
14
20
|
get hasError(): boolean;
|
|
15
21
|
get resolved(): boolean;
|
|
16
22
|
protected setStale(): void;
|
|
17
|
-
|
|
23
|
+
get error(): unknown;
|
|
24
|
+
onValuesChange(): void;
|
|
25
|
+
unsubscribe(): void;
|
|
18
26
|
protected onUpdate(): void;
|
|
19
27
|
protected onUpdateAll(values: T[]): void;
|
|
20
28
|
protected onUpdateAtIndex(index: number, value: T): void;
|
|
@@ -22,3 +30,4 @@ export declare class LiveList<T> implements List<T> {
|
|
|
22
30
|
protected onRemoveAtIndex(index: number): void;
|
|
23
31
|
protected onError(error: unknown): void;
|
|
24
32
|
}
|
|
33
|
+
//# sourceMappingURL=LiveList.d.ts.map
|
package/{lib → dist}/LiveList.js
RENAMED
|
@@ -2,10 +2,12 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.LiveList = void 0;
|
|
4
4
|
class LiveList {
|
|
5
|
+
_values = [];
|
|
6
|
+
_resolved = false;
|
|
7
|
+
_hasError = false;
|
|
8
|
+
_error;
|
|
9
|
+
_options;
|
|
5
10
|
constructor(options) {
|
|
6
|
-
this._values = [];
|
|
7
|
-
this._resolved = false;
|
|
8
|
-
this._hasError = false;
|
|
9
11
|
this._options = options;
|
|
10
12
|
}
|
|
11
13
|
resolve() {
|
|
@@ -23,12 +25,15 @@ class LiveList {
|
|
|
23
25
|
setStale() {
|
|
24
26
|
this._resolved = false;
|
|
25
27
|
}
|
|
28
|
+
get error() {
|
|
29
|
+
return this._error;
|
|
30
|
+
}
|
|
26
31
|
onValuesChange() { }
|
|
32
|
+
unsubscribe() { }
|
|
27
33
|
onUpdate() {
|
|
28
|
-
var _a, _b;
|
|
29
34
|
this._resolved = true;
|
|
30
35
|
this.onValuesChange();
|
|
31
|
-
|
|
36
|
+
this._options.onUpdate?.(this._values);
|
|
32
37
|
}
|
|
33
38
|
onUpdateAll(values) {
|
|
34
39
|
this._values = values;
|
|
@@ -44,12 +49,15 @@ class LiveList {
|
|
|
44
49
|
this._values.splice(index, 1);
|
|
45
50
|
}
|
|
46
51
|
onError(error) {
|
|
47
|
-
var _a, _b;
|
|
48
52
|
this._hasError = true;
|
|
49
|
-
this.
|
|
53
|
+
this._error = error;
|
|
50
54
|
this._resolved = true;
|
|
51
|
-
|
|
55
|
+
if (this._options.setEmptyOnError) {
|
|
56
|
+
this._values = [];
|
|
57
|
+
}
|
|
58
|
+
this._options.onError?.(error);
|
|
52
59
|
this.onValuesChange();
|
|
53
60
|
}
|
|
54
61
|
}
|
|
55
62
|
exports.LiveList = LiveList;
|
|
63
|
+
//# sourceMappingURL=LiveList.js.map
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { IdentifiableReference } from './Reference';
|
|
2
|
+
export interface LiveReferenceOptions<T> {
|
|
3
|
+
onUpdate?: (newValue: T | undefined) => void;
|
|
4
|
+
onError?: (error: unknown) => void;
|
|
5
|
+
/**
|
|
6
|
+
* If true, the value will be set to undefined when an error occurs.
|
|
7
|
+
* Default is false.
|
|
8
|
+
*/
|
|
9
|
+
setUndefinedOnError?: boolean;
|
|
10
|
+
}
|
|
11
|
+
export declare class LiveReference<T> implements IdentifiableReference<T> {
|
|
12
|
+
readonly id: string;
|
|
13
|
+
private _value;
|
|
14
|
+
private _resolved;
|
|
15
|
+
private _hasError;
|
|
16
|
+
private _error;
|
|
17
|
+
private _options;
|
|
18
|
+
resolve(): Promise<T | undefined>;
|
|
19
|
+
constructor(id: string, options: LiveReferenceOptions<T>);
|
|
20
|
+
get value(): T | undefined;
|
|
21
|
+
get resolved(): boolean;
|
|
22
|
+
get hasError(): boolean;
|
|
23
|
+
get error(): unknown;
|
|
24
|
+
protected setStale(): void;
|
|
25
|
+
protected onUpdate(data: T | undefined): void;
|
|
26
|
+
protected onError(error: unknown): void;
|
|
27
|
+
onValueChange(): void;
|
|
28
|
+
unsubscribe(): void;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=LiveReference.d.ts.map
|
|
@@ -2,13 +2,17 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.LiveReference = void 0;
|
|
4
4
|
class LiveReference {
|
|
5
|
+
id;
|
|
6
|
+
_value;
|
|
7
|
+
_resolved = false;
|
|
8
|
+
_hasError = false;
|
|
9
|
+
_error;
|
|
10
|
+
_options;
|
|
5
11
|
resolve() {
|
|
6
12
|
throw new Error('Method not implemented.');
|
|
7
13
|
}
|
|
8
|
-
constructor(options) {
|
|
9
|
-
this.
|
|
10
|
-
this._resolved = false;
|
|
11
|
-
this._hasError = false;
|
|
14
|
+
constructor(id, options) {
|
|
15
|
+
this.id = id;
|
|
12
16
|
this._value = undefined;
|
|
13
17
|
this._resolved = false;
|
|
14
18
|
this._hasError = false;
|
|
@@ -23,24 +27,31 @@ class LiveReference {
|
|
|
23
27
|
get hasError() {
|
|
24
28
|
return this._hasError;
|
|
25
29
|
}
|
|
30
|
+
get error() {
|
|
31
|
+
return this._error;
|
|
32
|
+
}
|
|
26
33
|
setStale() {
|
|
27
34
|
this._resolved = false;
|
|
28
35
|
}
|
|
29
36
|
onUpdate(data) {
|
|
30
|
-
var _a, _b;
|
|
31
37
|
this._value = data;
|
|
32
38
|
this._resolved = true;
|
|
39
|
+
this._hasError = false;
|
|
33
40
|
this.onValueChange();
|
|
34
|
-
|
|
41
|
+
this._options.onUpdate?.(this._value);
|
|
35
42
|
}
|
|
36
43
|
onError(error) {
|
|
37
|
-
var _a, _b;
|
|
38
44
|
this._hasError = true;
|
|
39
|
-
this.
|
|
45
|
+
if (this._options.setUndefinedOnError) {
|
|
46
|
+
this._value = undefined;
|
|
47
|
+
}
|
|
40
48
|
this._resolved = true;
|
|
49
|
+
this._error = error;
|
|
41
50
|
this.onValueChange();
|
|
42
|
-
|
|
51
|
+
this._options.onError?.(error);
|
|
43
52
|
}
|
|
44
53
|
onValueChange() { }
|
|
54
|
+
unsubscribe() { }
|
|
45
55
|
}
|
|
46
56
|
exports.LiveReference = LiveReference;
|
|
57
|
+
//# sourceMappingURL=LiveReference.js.map
|
|
@@ -6,6 +6,7 @@ export interface Resolvable<T> {
|
|
|
6
6
|
readonly resolved: boolean;
|
|
7
7
|
readonly hasError: boolean;
|
|
8
8
|
resolve(): Promise<T>;
|
|
9
|
+
error: unknown | undefined;
|
|
9
10
|
}
|
|
10
11
|
export interface Reference<T> extends Resolvable<T | undefined> {
|
|
11
12
|
readonly value: T | undefined;
|
|
@@ -13,3 +14,4 @@ export interface Reference<T> extends Resolvable<T | undefined> {
|
|
|
13
14
|
export type IdentifiableReference<T> = Reference<T> & Identifiable;
|
|
14
15
|
export declare function createInitializedIdentifiableReference<T>(value: T | undefined, id: string): Reference<T> & Identifiable;
|
|
15
16
|
export declare function createEmptyIdentifiableReference<T>(id: string): Reference<T>;
|
|
17
|
+
//# sourceMappingURL=Reference.d.ts.map
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createInitializedIdentifiableReference = createInitializedIdentifiableReference;
|
|
4
|
+
exports.createEmptyIdentifiableReference = createEmptyIdentifiableReference;
|
|
5
|
+
function createInitializedIdentifiableReference(value, id) {
|
|
6
|
+
return {
|
|
7
|
+
id,
|
|
8
|
+
value,
|
|
9
|
+
resolved: true,
|
|
10
|
+
hasError: false,
|
|
11
|
+
resolve: async () => value,
|
|
12
|
+
error: undefined,
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
function createEmptyIdentifiableReference(id) {
|
|
16
|
+
return createInitializedIdentifiableReference(undefined, id);
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=Reference.js.map
|
package/{lib → dist}/index.d.ts
RENAMED
package/{lib → dist}/index.js
RENAMED
package/package.json
CHANGED
|
@@ -1,16 +1,19 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@data-weave/datamanager",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.1",
|
|
4
4
|
"author": "",
|
|
5
|
-
"main": "
|
|
6
|
-
"types": "
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
7
|
"files": [
|
|
8
|
-
"
|
|
9
|
-
"
|
|
8
|
+
"dist/**/*.js",
|
|
9
|
+
"dist/**/*.d.ts"
|
|
10
10
|
],
|
|
11
|
+
"devDependencies": {
|
|
12
|
+
"typescript": "5.9.3"
|
|
13
|
+
},
|
|
11
14
|
"scripts": {
|
|
12
|
-
"clean": "rm -rf
|
|
13
|
-
"build": "
|
|
15
|
+
"clean": "rm -rf dist tsconfig.tsbuildinfo",
|
|
16
|
+
"build": "tsc",
|
|
14
17
|
"build:clean": "npm run clean && npm run build",
|
|
15
18
|
"prepare": "npm run build"
|
|
16
19
|
},
|
|
@@ -22,5 +25,5 @@
|
|
|
22
25
|
"access": "public",
|
|
23
26
|
"registry": "https://registry.npmjs.org/"
|
|
24
27
|
},
|
|
25
|
-
"gitHead": "
|
|
28
|
+
"gitHead": "df44d823b93b392d9e3b685fafb0d17399001291"
|
|
26
29
|
}
|
package/lib/List.js
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.createInitializedList = createInitializedList;
|
|
13
|
-
exports.createEmptyList = createEmptyList;
|
|
14
|
-
function createInitializedList(values) {
|
|
15
|
-
return {
|
|
16
|
-
values,
|
|
17
|
-
resolved: true,
|
|
18
|
-
hasError: false,
|
|
19
|
-
resolve: () => __awaiter(this, void 0, void 0, function* () { return values; }),
|
|
20
|
-
};
|
|
21
|
-
}
|
|
22
|
-
function createEmptyList() {
|
|
23
|
-
return createInitializedList([]);
|
|
24
|
-
}
|
package/lib/LiveReference.d.ts
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { Reference } from './Reference';
|
|
2
|
-
export interface LiveReferenceOptions<T> {
|
|
3
|
-
onUpdate?: (newValue: T | undefined) => void;
|
|
4
|
-
onError?: (error: unknown) => void;
|
|
5
|
-
}
|
|
6
|
-
export declare class LiveReference<T> implements Reference<T> {
|
|
7
|
-
readonly options: LiveReferenceOptions<T>;
|
|
8
|
-
private _value;
|
|
9
|
-
private _resolved;
|
|
10
|
-
private _hasError;
|
|
11
|
-
private _options;
|
|
12
|
-
resolve(): Promise<T | undefined>;
|
|
13
|
-
constructor(options: LiveReferenceOptions<T>);
|
|
14
|
-
get value(): T | undefined;
|
|
15
|
-
get resolved(): boolean;
|
|
16
|
-
get hasError(): boolean;
|
|
17
|
-
protected setStale(): void;
|
|
18
|
-
protected onUpdate(data: T | undefined): void;
|
|
19
|
-
protected onError(error: unknown): void;
|
|
20
|
-
protected onValueChange(): void;
|
|
21
|
-
}
|
package/lib/Reference.js
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.createInitializedIdentifiableReference = createInitializedIdentifiableReference;
|
|
13
|
-
exports.createEmptyIdentifiableReference = createEmptyIdentifiableReference;
|
|
14
|
-
function createInitializedIdentifiableReference(value, id) {
|
|
15
|
-
return {
|
|
16
|
-
id,
|
|
17
|
-
value,
|
|
18
|
-
resolved: true,
|
|
19
|
-
hasError: false,
|
|
20
|
-
resolve: () => __awaiter(this, void 0, void 0, function* () { return value; }),
|
|
21
|
-
};
|
|
22
|
-
}
|
|
23
|
-
function createEmptyIdentifiableReference(id) {
|
|
24
|
-
return createInitializedIdentifiableReference(undefined, id);
|
|
25
|
-
}
|
package/lib/version.d.ts
DELETED
package/lib/version.js
DELETED