@instantdb/platform 0.22.96-experimental.drewh-ts-target.20761590091.1 → 0.22.96-experimental.surgical.20765817844.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/.turbo/turbo-build.log +9 -9
- package/dist/commonjs/ProgressPromise.js +58 -45
- package/dist/commonjs/ProgressPromise.js.map +1 -1
- package/dist/commonjs/api.js +412 -366
- package/dist/commonjs/api.js.map +1 -1
- package/dist/commonjs/index.d.ts +1 -0
- package/dist/commonjs/index.d.ts.map +1 -1
- package/dist/commonjs/index.js +9 -1
- package/dist/commonjs/index.js.map +1 -1
- package/dist/commonjs/migrationUtils.js +4 -16
- package/dist/commonjs/migrationUtils.js.map +1 -1
- package/dist/commonjs/migrations.js +21 -10
- package/dist/commonjs/migrations.js.map +1 -1
- package/dist/commonjs/oauth.js +55 -52
- package/dist/commonjs/oauth.js.map +1 -1
- package/dist/commonjs/oauthCommon.js +0 -2
- package/dist/commonjs/oauthCommon.js.map +1 -1
- package/dist/commonjs/perms.js +1 -1
- package/dist/commonjs/perms.js.map +1 -1
- package/dist/commonjs/schema.d.ts.map +1 -1
- package/dist/commonjs/schema.js +24 -20
- package/dist/commonjs/schema.js.map +1 -1
- package/dist/commonjs/schemaCodegen.d.ts +37 -0
- package/dist/commonjs/schemaCodegen.d.ts.map +1 -0
- package/dist/commonjs/schemaCodegen.js +112 -0
- package/dist/commonjs/schemaCodegen.js.map +1 -0
- package/dist/commonjs/serverOAuth.js +68 -55
- package/dist/commonjs/serverOAuth.js.map +1 -1
- package/dist/commonjs/typescript-schema.js +2 -1
- package/dist/commonjs/typescript-schema.js.map +1 -1
- package/dist/commonjs/util.js +1 -1
- package/dist/commonjs/util.js.map +1 -1
- package/dist/esm/ProgressPromise.js +58 -45
- package/dist/esm/ProgressPromise.js.map +1 -1
- package/dist/esm/api.js +412 -366
- package/dist/esm/api.js.map +1 -1
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/migrationUtils.js +4 -16
- package/dist/esm/migrationUtils.js.map +1 -1
- package/dist/esm/migrations.js +21 -10
- package/dist/esm/migrations.js.map +1 -1
- package/dist/esm/oauth.js +55 -52
- package/dist/esm/oauth.js.map +1 -1
- package/dist/esm/oauthCommon.js +0 -2
- package/dist/esm/oauthCommon.js.map +1 -1
- package/dist/esm/perms.js +1 -1
- package/dist/esm/perms.js.map +1 -1
- package/dist/esm/schema.d.ts.map +1 -1
- package/dist/esm/schema.js +25 -21
- package/dist/esm/schema.js.map +1 -1
- package/dist/esm/schemaCodegen.d.ts +37 -0
- package/dist/esm/schemaCodegen.d.ts.map +1 -0
- package/dist/esm/schemaCodegen.js +103 -0
- package/dist/esm/schemaCodegen.js.map +1 -0
- package/dist/esm/serverOAuth.js +68 -55
- package/dist/esm/serverOAuth.js.map +1 -1
- package/dist/esm/typescript-schema.js +2 -1
- package/dist/esm/typescript-schema.js.map +1 -1
- package/dist/esm/util.js +1 -1
- package/dist/esm/util.js.map +1 -1
- package/dist/standalone/index.js +1401 -1342
- package/dist/standalone/index.umd.cjs +32 -25
- package/package.json +3 -3
- package/src/index.ts +10 -0
- package/src/schema.ts +16 -24
- package/src/schemaCodegen.ts +183 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/util.ts"],"names":[],"mappings":";;;AAYA,sCAEC;AAED,sDAEC;AASD,kCASC;AAED,kDAUC;AAED,oCAaC;AAED,4CAkBC;AAED,8BASC;AAlFD,SAAgB,aAAa,CAAI,CAAoB;IACnD,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;AAClE,CAAC;AAED,SAAgB,qBAAqB,CAAC,MAAc;IAClD,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC1D,CAAC;AAEY,QAAA,IAAI,GAAsC;IACrD,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;IAC9B,UAAU,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;IAC1B,WAAW,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC;IAC5B,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF,SAAgB,WAAW,CAAC,CAAS,EAAE,CAAC,GAAG,CAAC;IAC1C,IAAI,CAAC,CAAC,EAAE,CAAC;QACP,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC5B,OAAO,CAAC;SACL,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC;SAC1B,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,SAAgB,mBAAmB,CACjC,GAAa,EACb,GAAW,EACX,cAAsB,GAAG;IAEzB,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACxB,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,WAAW,CAAC;IACzB,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAgB,YAAY,CAAC,IAAmB;IAC9C,IAAI,IAAI,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC5C,MAAM,UAAU,GAAG,YAAY,
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/util.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n AttrsDefs,\n CardinalityKind,\n EntityDef,\n InstantDBAttr,\n InstantDBCheckedDataType,\n InstantDBInferredType,\n InstantSchemaDef,\n LinksDef,\n RoomsDef,\n} from '@instantdb/core';\n\nexport function sortedEntries<T>(o: Record<string, T>): [string, T][] {\n return Object.entries(o).sort(([a], [b]) => a.localeCompare(b));\n}\n\nexport function capitalizeFirstLetter(string: string): string {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nexport const rels: Record<string, CardinalityKind[]> = {\n 'many-false': ['many', 'many'],\n 'one-true': ['one', 'one'],\n 'many-true': ['many', 'one'],\n 'one-false': ['one', 'many'],\n};\n\nexport function indentLines(s: string, n = 2) {\n if (!s) {\n return s;\n }\n const space = ' '.repeat(n);\n return s\n .split('\\n')\n .map((l) => `${space}${l}`)\n .join('\\n');\n}\n\nexport function joinWithTrailingSep(\n arr: string[],\n sep: string,\n trailingSep: string = sep,\n): string {\n const s = arr.join(sep);\n if (arr.length) {\n return s + trailingSep;\n }\n return s;\n}\n\nexport function inferredType(attr: InstantDBAttr) {\n if (attr.catalog === 'system') {\n return null;\n }\n\n const inferredList = attr['inferred-types'];\n const hasJustOne = inferredList?.length === 1;\n\n if (!hasJustOne) {\n return null;\n }\n\n return inferredList[0];\n}\n\nexport function deriveClientType(\n attr: InstantDBAttr,\n disableTypeInference?: boolean,\n): {\n type: InstantDBCheckedDataType | InstantDBInferredType | 'any';\n origin: 'checked' | 'inferred' | 'unknown';\n} {\n if (attr['checked-data-type']) {\n return { type: attr['checked-data-type'], origin: 'checked' };\n }\n\n const inferred = inferredType(attr);\n\n if (inferred && !disableTypeInference) {\n return { type: inferred, origin: 'inferred' };\n }\n\n return { type: 'any', origin: 'unknown' };\n}\n\nexport function formatKey(key: string) {\n return `\"${key}\"`;\n // It would be nice to generate unquoted keys, but we use JSON.stringify\n // for some things so we can't be consistent with it unless we write our own\n // stringify function. If we do, here's the code for formatting keys:\n // if (/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(key)) {\n // return key;\n // }\n // return `\"${key}\"`;\n}\n\nexport type GenericSchemaDef = InstantSchemaDef<\n Record<string, EntityDef<AttrsDefs, any, any>>,\n LinksDef<Record<string, EntityDef<AttrsDefs, any, any>>>,\n RoomsDef\n>;\n"]}
|
|
@@ -1,62 +1,74 @@
|
|
|
1
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
2
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
3
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
4
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
5
|
+
};
|
|
6
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
7
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
8
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
9
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
10
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
11
|
+
};
|
|
12
|
+
var _ProgressPromise_observers, _ProgressPromise_result, _ProgressPromise_onNext, _ProgressPromise_onError, _ProgressPromise_onComplete;
|
|
1
13
|
export class ProgressPromise {
|
|
2
|
-
#observers = [];
|
|
3
|
-
#result = null;
|
|
4
14
|
constructor(callbackFn) {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
}
|
|
11
|
-
for (const observer of this.#observers) {
|
|
12
|
-
try {
|
|
13
|
-
observer.next && observer.next(status);
|
|
15
|
+
_ProgressPromise_observers.set(this, []);
|
|
16
|
+
_ProgressPromise_result.set(this, null);
|
|
17
|
+
_ProgressPromise_onNext.set(this, (status) => {
|
|
18
|
+
if (__classPrivateFieldGet(this, _ProgressPromise_result, "f")) {
|
|
19
|
+
return;
|
|
14
20
|
}
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
return;
|
|
21
|
-
}
|
|
22
|
-
this.#result = { type: 'error', error };
|
|
23
|
-
for (const observer of this.#observers) {
|
|
24
|
-
try {
|
|
25
|
-
observer.error && observer.error(error);
|
|
21
|
+
for (const observer of __classPrivateFieldGet(this, _ProgressPromise_observers, "f")) {
|
|
22
|
+
try {
|
|
23
|
+
observer.next && observer.next(status);
|
|
24
|
+
}
|
|
25
|
+
catch (_e) { }
|
|
26
26
|
}
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
#onComplete = (result) => {
|
|
32
|
-
if (this.#result) {
|
|
33
|
-
return;
|
|
34
|
-
}
|
|
35
|
-
this.#result = { type: 'complete', result };
|
|
36
|
-
for (const observer of this.#observers) {
|
|
37
|
-
try {
|
|
38
|
-
observer.complete && observer.complete(result);
|
|
27
|
+
});
|
|
28
|
+
_ProgressPromise_onError.set(this, (error) => {
|
|
29
|
+
if (__classPrivateFieldGet(this, _ProgressPromise_result, "f")) {
|
|
30
|
+
return;
|
|
39
31
|
}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
32
|
+
__classPrivateFieldSet(this, _ProgressPromise_result, { type: 'error', error }, "f");
|
|
33
|
+
for (const observer of __classPrivateFieldGet(this, _ProgressPromise_observers, "f")) {
|
|
34
|
+
try {
|
|
35
|
+
observer.error && observer.error(error);
|
|
36
|
+
}
|
|
37
|
+
catch (_e) { }
|
|
38
|
+
}
|
|
39
|
+
__classPrivateFieldSet(this, _ProgressPromise_observers, [], "f");
|
|
40
|
+
});
|
|
41
|
+
_ProgressPromise_onComplete.set(this, (result) => {
|
|
42
|
+
if (__classPrivateFieldGet(this, _ProgressPromise_result, "f")) {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
__classPrivateFieldSet(this, _ProgressPromise_result, { type: 'complete', result }, "f");
|
|
46
|
+
for (const observer of __classPrivateFieldGet(this, _ProgressPromise_observers, "f")) {
|
|
47
|
+
try {
|
|
48
|
+
observer.complete && observer.complete(result);
|
|
49
|
+
}
|
|
50
|
+
catch (_e) { }
|
|
51
|
+
}
|
|
52
|
+
__classPrivateFieldSet(this, _ProgressPromise_observers, [], "f");
|
|
53
|
+
});
|
|
54
|
+
callbackFn(__classPrivateFieldGet(this, _ProgressPromise_onNext, "f"), __classPrivateFieldGet(this, _ProgressPromise_onComplete, "f"), __classPrivateFieldGet(this, _ProgressPromise_onError, "f"));
|
|
55
|
+
}
|
|
44
56
|
subscribe(observer) {
|
|
45
|
-
if (this
|
|
57
|
+
if (__classPrivateFieldGet(this, _ProgressPromise_result, "f")) {
|
|
46
58
|
const ret = { unsubscribe: () => null };
|
|
47
|
-
if (this
|
|
48
|
-
observer.error && observer.error(this
|
|
59
|
+
if (__classPrivateFieldGet(this, _ProgressPromise_result, "f").type === 'error') {
|
|
60
|
+
observer.error && observer.error(__classPrivateFieldGet(this, _ProgressPromise_result, "f").error);
|
|
49
61
|
return ret;
|
|
50
62
|
}
|
|
51
|
-
else if (this
|
|
52
|
-
observer.complete && observer.complete(this
|
|
63
|
+
else if (__classPrivateFieldGet(this, _ProgressPromise_result, "f").type === 'complete') {
|
|
64
|
+
observer.complete && observer.complete(__classPrivateFieldGet(this, _ProgressPromise_result, "f").result);
|
|
53
65
|
return ret;
|
|
54
66
|
}
|
|
55
67
|
}
|
|
56
|
-
this
|
|
68
|
+
__classPrivateFieldGet(this, _ProgressPromise_observers, "f").push(observer);
|
|
57
69
|
return {
|
|
58
70
|
unsubscribe: () => {
|
|
59
|
-
this
|
|
71
|
+
__classPrivateFieldSet(this, _ProgressPromise_observers, __classPrivateFieldGet(this, _ProgressPromise_observers, "f").filter((o) => o !== observer), "f");
|
|
60
72
|
},
|
|
61
73
|
};
|
|
62
74
|
}
|
|
@@ -70,4 +82,5 @@ export class ProgressPromise {
|
|
|
70
82
|
this.subscribe({ error: () => cb(), complete: () => cb() });
|
|
71
83
|
}
|
|
72
84
|
}
|
|
85
|
+
_ProgressPromise_observers = new WeakMap(), _ProgressPromise_result = new WeakMap(), _ProgressPromise_onNext = new WeakMap(), _ProgressPromise_onError = new WeakMap(), _ProgressPromise_onComplete = new WeakMap();
|
|
73
86
|
//# sourceMappingURL=ProgressPromise.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProgressPromise.js","sourceRoot":"","sources":["../../src/ProgressPromise.ts"],"names":[],"mappings":"AAgBA,MAAM,OAAO,eAAe;
|
|
1
|
+
{"version":3,"file":"ProgressPromise.js","sourceRoot":"","sources":["../../src/ProgressPromise.ts"],"names":[],"mappings":";;;;;;;;;;;;AAgBA,MAAM,OAAO,eAAe;IAO1B,YAAY,UAAwD;QANpE,qCAA0D,EAAE,EAAC;QAC7D,kCAG4C,IAAI,EAAC;QAMjD,kCAAU,CAAC,MAAe,EAAE,EAAE;YAC5B,IAAI,uBAAA,IAAI,+BAAQ,EAAE,CAAC;gBACjB,OAAO;YACT,CAAC;YACD,KAAK,MAAM,QAAQ,IAAI,uBAAA,IAAI,kCAAW,EAAE,CAAC;gBACvC,IAAI,CAAC;oBACH,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACzC,CAAC;gBAAC,OAAO,EAAE,EAAE,CAAC,CAAA,CAAC;YACjB,CAAC;QACH,CAAC,EAAC;QAEF,mCAAW,CAAC,KAAY,EAAE,EAAE;YAC1B,IAAI,uBAAA,IAAI,+BAAQ,EAAE,CAAC;gBACjB,OAAO;YACT,CAAC;YACD,uBAAA,IAAI,2BAAW,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAA,CAAC;YACxC,KAAK,MAAM,QAAQ,IAAI,uBAAA,IAAI,kCAAW,EAAE,CAAC;gBACvC,IAAI,CAAC;oBACH,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAC1C,CAAC;gBAAC,OAAO,EAAE,EAAE,CAAC,CAAA,CAAC;YACjB,CAAC;YACD,uBAAA,IAAI,8BAAc,EAAE,MAAA,CAAC;QACvB,CAAC,EAAC;QAEF,sCAAc,CAAC,MAAe,EAAE,EAAE;YAChC,IAAI,uBAAA,IAAI,+BAAQ,EAAE,CAAC;gBACjB,OAAO;YACT,CAAC;YACD,uBAAA,IAAI,2BAAW,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAA,CAAC;YAC5C,KAAK,MAAM,QAAQ,IAAI,uBAAA,IAAI,kCAAW,EAAE,CAAC;gBACvC,IAAI,CAAC;oBACH,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACjD,CAAC;gBAAC,OAAO,EAAE,EAAE,CAAC,CAAA,CAAC;YACjB,CAAC;YACD,uBAAA,IAAI,8BAAc,EAAE,MAAA,CAAC;QACvB,CAAC,EAAC;QAtCA,UAAU,CAAC,uBAAA,IAAI,+BAAQ,EAAE,uBAAA,IAAI,mCAAY,EAAE,uBAAA,IAAI,gCAAS,CAAC,CAAC;IAC5D,CAAC;IAuCD,SAAS,CACP,QAAmD;QAEnD,IAAI,uBAAA,IAAI,+BAAQ,EAAE,CAAC;YACjB,MAAM,GAAG,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;YACxC,IAAI,uBAAA,IAAI,+BAAQ,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAClC,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC,uBAAA,IAAI,+BAAQ,CAAC,KAAK,CAAC,CAAC;gBACrD,OAAO,GAAG,CAAC;YACb,CAAC;iBAAM,IAAI,uBAAA,IAAI,+BAAQ,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBAC5C,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,uBAAA,IAAI,+BAAQ,CAAC,MAAM,CAAC,CAAC;gBAC5D,OAAO,GAAG,CAAC;YACb,CAAC;QACH,CAAC;QACD,uBAAA,IAAI,kCAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/B,OAAO;YACL,WAAW,EAAE,GAAG,EAAE;gBAChB,uBAAA,IAAI,8BAAc,uBAAA,IAAI,kCAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,MAAA,CAAC;YAClE,CAAC;SACF,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,OAAkC,EAAE,MAA8B;QACrE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,EAA0B;QAC9B,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;IAChC,CAAC;IAED,OAAO,CAAC,EAAc;QACpB,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAC9D,CAAC;CACF","sourcesContent":["export type ProgressPromiseSubscription = {\n unsubscribe: () => void;\n};\n\nexport type ProgressPromiseObserver<StatusT, ResultT> = {\n next?: (t: StatusT) => void;\n error?: (error: Error) => void;\n complete?: (t: ResultT) => void;\n};\n\nexport type ProgressPromiseConstructor<StatusT, ResultT> = (\n progress: (status: StatusT) => void,\n resolve: (result: ResultT) => void,\n reject: (error: Error) => void,\n) => void;\n\nexport class ProgressPromise<StatusT, ResultT> {\n #observers: ProgressPromiseObserver<StatusT, ResultT>[] = [];\n #result:\n | null\n | { type: 'error'; error: Error }\n | { type: 'complete'; result: ResultT } = null;\n\n constructor(callbackFn: ProgressPromiseConstructor<StatusT, ResultT>) {\n callbackFn(this.#onNext, this.#onComplete, this.#onError);\n }\n\n #onNext = (status: StatusT) => {\n if (this.#result) {\n return;\n }\n for (const observer of this.#observers) {\n try {\n observer.next && observer.next(status);\n } catch (_e) {}\n }\n };\n\n #onError = (error: Error) => {\n if (this.#result) {\n return;\n }\n this.#result = { type: 'error', error };\n for (const observer of this.#observers) {\n try {\n observer.error && observer.error(error);\n } catch (_e) {}\n }\n this.#observers = [];\n };\n\n #onComplete = (result: ResultT) => {\n if (this.#result) {\n return;\n }\n this.#result = { type: 'complete', result };\n for (const observer of this.#observers) {\n try {\n observer.complete && observer.complete(result);\n } catch (_e) {}\n }\n this.#observers = [];\n };\n\n subscribe(\n observer: ProgressPromiseObserver<StatusT, ResultT>,\n ): ProgressPromiseSubscription {\n if (this.#result) {\n const ret = { unsubscribe: () => null };\n if (this.#result.type === 'error') {\n observer.error && observer.error(this.#result.error);\n return ret;\n } else if (this.#result.type === 'complete') {\n observer.complete && observer.complete(this.#result.result);\n return ret;\n }\n }\n this.#observers.push(observer);\n return {\n unsubscribe: () => {\n this.#observers = this.#observers.filter((o) => o !== observer);\n },\n };\n }\n\n then(resolve: (result: ResultT) => void, reject: (error: Error) => void) {\n this.subscribe({ error: reject, complete: resolve });\n }\n\n catch(cb: (error: Error) => void) {\n this.subscribe({ error: cb });\n }\n\n finally(cb: () => void) {\n this.subscribe({ error: () => cb(), complete: () => cb() });\n }\n}\n"]}
|