@entity-access/server-pages 1.0.7 → 1.0.10

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.
Files changed (62) hide show
  1. package/dist/ServerPages.d.ts +1 -0
  2. package/dist/ServerPages.d.ts.map +1 -1
  3. package/dist/ServerPages.js +5 -0
  4. package/dist/ServerPages.js.map +1 -1
  5. package/dist/routes/api/entity/get.d.ts +7 -0
  6. package/dist/routes/api/entity/get.d.ts.map +1 -0
  7. package/dist/routes/api/entity/get.js +33 -0
  8. package/dist/routes/api/entity/get.js.map +1 -0
  9. package/dist/routes/api/entity/index.d.ts +11 -0
  10. package/dist/routes/api/entity/index.d.ts.map +1 -0
  11. package/dist/routes/api/entity/index.js +167 -0
  12. package/dist/routes/api/entity/index.js.map +1 -0
  13. package/dist/routes/api/entity/model/get.d.ts +7 -0
  14. package/dist/routes/api/entity/model/get.d.ts.map +1 -0
  15. package/dist/routes/api/entity/model/get.js +23 -0
  16. package/dist/routes/api/entity/model/get.js.map +1 -0
  17. package/dist/routes/api/entity/model.ts/get.d.ts +7 -0
  18. package/dist/routes/api/entity/model.ts/get.d.ts.map +1 -0
  19. package/dist/routes/api/entity/model.ts/get.js +23 -0
  20. package/dist/routes/api/entity/model.ts/get.js.map +1 -0
  21. package/dist/routes/api/entity/query/get.d.ts +6 -0
  22. package/dist/routes/api/entity/query/get.d.ts.map +1 -0
  23. package/dist/routes/api/entity/query/get.js +27 -0
  24. package/dist/routes/api/entity/query/get.js.map +1 -0
  25. package/dist/services/EntityAccessServer.d.ts +19 -0
  26. package/dist/services/EntityAccessServer.d.ts.map +1 -0
  27. package/dist/services/EntityAccessServer.js +77 -0
  28. package/dist/services/EntityAccessServer.js.map +1 -0
  29. package/dist/services/GraphService.d.ts +7 -0
  30. package/dist/services/GraphService.d.ts.map +1 -0
  31. package/dist/services/GraphService.js +72 -0
  32. package/dist/services/GraphService.js.map +1 -0
  33. package/dist/services/IndentedStringWriter.d.ts +12 -0
  34. package/dist/services/IndentedStringWriter.d.ts.map +1 -0
  35. package/dist/services/IndentedStringWriter.js +28 -0
  36. package/dist/services/IndentedStringWriter.js.map +1 -0
  37. package/dist/services/ModelService.d.ts +36 -0
  38. package/dist/services/ModelService.d.ts.map +1 -0
  39. package/dist/services/ModelService.js +188 -0
  40. package/dist/services/ModelService.js.map +1 -0
  41. package/dist/services/StringHelper.d.ts +6 -0
  42. package/dist/services/StringHelper.d.ts.map +1 -0
  43. package/dist/services/StringHelper.js +30 -0
  44. package/dist/services/StringHelper.js.map +1 -0
  45. package/dist/sleep.d.ts +3 -0
  46. package/dist/sleep.d.ts.map +1 -0
  47. package/dist/sleep.js +13 -0
  48. package/dist/sleep.js.map +1 -0
  49. package/dist/tsconfig.tsbuildinfo +1 -1
  50. package/package.json +1 -1
  51. package/src/ServerPages.ts +6 -0
  52. package/src/routes/api/entity/get.tsx +32 -0
  53. package/src/routes/api/entity/index.tsx +178 -0
  54. package/src/routes/api/entity/model/get.tsx +16 -0
  55. package/src/routes/api/entity/model.ts/get.tsx +16 -0
  56. package/src/routes/api/entity/query/get.ts +19 -0
  57. package/src/services/EntityAccessServer.ts +121 -0
  58. package/src/services/GraphService.ts +86 -0
  59. package/src/services/IndentedStringWriter.ts +33 -0
  60. package/src/services/ModelService.ts +257 -0
  61. package/src/services/StringHelper.ts +31 -0
  62. package/src/sleep.ts +12 -0
@@ -0,0 +1,12 @@
1
+ export default class IndentedStringWriter {
2
+ private indentChar;
3
+ get indent(): number;
4
+ set indent(value: number);
5
+ private indention;
6
+ private prefix;
7
+ private content;
8
+ constructor(indentChar?: string);
9
+ writeLine(text?: string): void;
10
+ toString(): string;
11
+ }
12
+ //# sourceMappingURL=IndentedStringWriter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IndentedStringWriter.d.ts","sourceRoot":"","sources":["../../src/services/IndentedStringWriter.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,OAAO,oBAAoB;IAkBzB,OAAO,CAAC,UAAU;IAhB9B,IAAW,MAAM,IAAI,MAAM,CAE1B;IACD,IAAW,MAAM,CAAC,KAAK,EAAE,MAAM,EAO9B;IAED,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,OAAO,CAAM;gBAED,UAAU,SAAS;IAIhC,SAAS,CAAC,IAAI,GAAE,MAAW;IAM3B,QAAQ;CAIlB"}
@@ -0,0 +1,28 @@
1
+ export default class IndentedStringWriter {
2
+ get indent() {
3
+ return this.indention;
4
+ }
5
+ set indent(value) {
6
+ this.indention = value;
7
+ let p = "";
8
+ for (let index = 0; index < value; index++) {
9
+ p += this.indentChar;
10
+ }
11
+ this.prefix = p;
12
+ }
13
+ constructor(indentChar = " ") {
14
+ this.indentChar = indentChar;
15
+ this.indention = 0;
16
+ this.prefix = "";
17
+ this.content = "";
18
+ }
19
+ writeLine(text = "") {
20
+ for (const iterator of text.split("\n")) {
21
+ this.content = this.content.concat(this.prefix, iterator.trimStart(), "\n");
22
+ }
23
+ }
24
+ toString() {
25
+ return this.content;
26
+ }
27
+ }
28
+ //# sourceMappingURL=IndentedStringWriter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IndentedStringWriter.js","sourceRoot":"","sources":["../../src/services/IndentedStringWriter.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,OAAO,oBAAoB;IAErC,IAAW,MAAM;QACb,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IACD,IAAW,MAAM,CAAC,KAAa;QAC3B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,GAAG,EAAE,CAAC;QACX,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC;YACzC,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC;QACzB,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IACpB,CAAC;IAMD,YAAoB,aAAa,MAAM;QAAnB,eAAU,GAAV,UAAU,CAAS;QAJ/B,cAAS,GAAW,CAAC,CAAC;QACtB,WAAM,GAAG,EAAE,CAAC;QACZ,YAAO,GAAG,EAAE,CAAC;IAIrB,CAAC;IAEM,SAAS,CAAC,OAAe,EAAE;QAC9B,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACtC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,SAAS,EAAE,EAAE,IAAI,CAAC,CAAC;QAChF,CAAC;IACL,CAAC;IAEM,QAAQ;QACX,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;CAEJ"}
@@ -0,0 +1,36 @@
1
+ import EntityContext from "@entity-access/entity-access/dist/model/EntityContext.js";
2
+ import { IClassOf } from "@entity-access/entity-access/dist/decorators/IClassOf.js";
3
+ interface IModelProperty {
4
+ type?: string;
5
+ name?: string;
6
+ enum?: readonly string[];
7
+ help?: string;
8
+ ignore?: boolean;
9
+ readonly?: boolean;
10
+ }
11
+ export declare function JsonProperty(mp?: IModelProperty): (target: any, name: any) => void;
12
+ export declare const IgnoreJsonProperty: (target: any, name: any) => void;
13
+ export declare const ReadOnlyJsonProperty: (target: any, name: any) => void;
14
+ export interface IEntityKey {
15
+ name: string;
16
+ type: string;
17
+ }
18
+ export interface IEntityPropertyInfo extends IEntityKey {
19
+ isNullable?: boolean;
20
+ }
21
+ export interface IEntityNavigationProperty extends IEntityKey {
22
+ isCollection?: boolean;
23
+ }
24
+ export interface IEntityModel {
25
+ name?: string;
26
+ keys?: IEntityKey[];
27
+ properties?: IEntityPropertyInfo[];
28
+ navigationProperties?: IEntityNavigationProperty[];
29
+ }
30
+ export default class ModelService {
31
+ static ignore(t: IClassOf<any>, key: string): boolean;
32
+ static getModel(context: EntityContext): IEntityModel[];
33
+ static getModelDeclaration(context: EntityContext): string;
34
+ }
35
+ export {};
36
+ //# sourceMappingURL=ModelService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModelService.d.ts","sourceRoot":"","sources":["../../src/services/ModelService.ts"],"names":[],"mappings":"AAGA,OAAO,aAAa,MAAM,0DAA0D,CAAC;AAGrF,OAAO,EAAE,QAAQ,EAAE,MAAM,0DAA0D,CAAC;AAIpF,UAAU,cAAc;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AAMD,wBAAgB,YAAY,CAAC,EAAE,GAAE,cAAmB,oCAMnD;AAED,eAAO,MAAM,kBAAkB,kCAAiC,CAAC;AAEjE,eAAO,MAAM,oBAAoB,kCAAoC,CAAC;AAEtE,MAAM,WAAW,UAAU;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,mBAAoB,SAAQ,UAAU;IACnD,UAAU,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,yBAA0B,SAAQ,UAAU;IACzD,YAAY,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,YAAY;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,UAAU,EAAE,CAAC;IACpB,UAAU,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACnC,oBAAoB,CAAC,EAAE,yBAAyB,EAAE,CAAC;CACtD;AAuFD,MAAM,CAAC,OAAO,OAAO,YAAY;WAEf,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM;WAIpC,QAAQ,CAAC,OAAO,EAAE,aAAa;WAU/B,mBAAmB,CAAC,OAAO,EAAE,aAAa;CAoG3D"}
@@ -0,0 +1,188 @@
1
+ import IndentedStringWriter from "./IndentedStringWriter.js";
2
+ import DateTime from "@entity-access/entity-access/dist/types/DateTime.js";
3
+ const modelProperties = Symbol("modelProperty");
4
+ export function JsonProperty(mp = {}) {
5
+ return (target, name) => {
6
+ mp.type ??= Reflect.getMetadata("design:type", target, name);
7
+ mp.name ??= name;
8
+ (target[modelProperties] ??= {})[name] = mp;
9
+ ;
10
+ };
11
+ }
12
+ export const IgnoreJsonProperty = JsonProperty({ ignore: true });
13
+ export const ReadOnlyJsonProperty = JsonProperty({ readonly: true });
14
+ const columnFrom = (c) => {
15
+ return {
16
+ name: c.name,
17
+ type: c.type?.name ?? c.type.toString(),
18
+ isNullable: !!c.nullable
19
+ };
20
+ };
21
+ const relationFrom = (r) => {
22
+ return {
23
+ name: r.name,
24
+ isCollection: r.isCollection,
25
+ type: r.relatedEntity.entityName
26
+ };
27
+ };
28
+ const modelFrom = (type) => {
29
+ const model = {
30
+ name: type.entityName,
31
+ keys: type.keys.map(columnFrom),
32
+ properties: type.columns.map(columnFrom),
33
+ navigationProperties: type.relations.map(relationFrom)
34
+ };
35
+ return model;
36
+ };
37
+ const getJSType = (column) => {
38
+ const { type, enum: enumValues } = column;
39
+ if (enumValues) {
40
+ return enumValues.map((x) => JSON.stringify(x)).join(" | ");
41
+ }
42
+ switch (type) {
43
+ case Number:
44
+ return "number";
45
+ case BigInt:
46
+ return "bigint";
47
+ case String:
48
+ return "string";
49
+ case Boolean:
50
+ return "boolean";
51
+ case Date:
52
+ case DateTime:
53
+ return "DateTime";
54
+ }
55
+ if (typeof type == "function") {
56
+ const mps = type.prototype[modelProperties];
57
+ if (mps) {
58
+ return `{ ${Object.entries(mps).map(([key, p]) => `${key}?: ${getJSType(p)}`).join(";")} }`;
59
+ }
60
+ return type.name;
61
+ }
62
+ return "any";
63
+ };
64
+ const getDefaults = (column) => {
65
+ if (column.generated) {
66
+ return;
67
+ }
68
+ if (column.key) {
69
+ return;
70
+ }
71
+ if (column.fkRelation) {
72
+ return;
73
+ }
74
+ const { type, enum: enumValues } = column;
75
+ if (enumValues) {
76
+ return [column.name, JSON.stringify(enumValues[0])];
77
+ }
78
+ switch (type) {
79
+ case Number:
80
+ return [column.name, "0"];
81
+ case BigInt:
82
+ return [column.name, "0n"];
83
+ case String:
84
+ return [column.name, `""`];
85
+ case Boolean:
86
+ return [column.name, "false"];
87
+ case Date:
88
+ return [column.name, "new DefaultFactory(() => new Date())"];
89
+ case DateTime:
90
+ return [column.name, "new DefaultFactory(() => new DateTime())"];
91
+ }
92
+ return;
93
+ };
94
+ export default class ModelService {
95
+ static ignore(t, key) {
96
+ return t.prototype?.[modelProperties]?.[key]?.ignore;
97
+ }
98
+ static getModel(context) {
99
+ const model = [];
100
+ for (const [type] of context.model.sources) {
101
+ const entityType = context.model.getEntityType(type);
102
+ model.push(modelFrom(entityType));
103
+ }
104
+ return model;
105
+ }
106
+ static getModelDeclaration(context) {
107
+ const writer = new IndentedStringWriter("\t");
108
+ writer.writeLine(`import DateTime from "@web-atoms/date-time/dist/DateTime";
109
+ import type IClrEntity from "@web-atoms/entity/dist/models/IClrEntity";
110
+ import { ICollection, IGeometry, IModel, Model, DefaultFactory } from "@web-atoms/entity/dist/services/BaseEntityService";
111
+ `);
112
+ for (const [type] of context.model.sources) {
113
+ const entityType = context.model.getEntityType(type);
114
+ const entityName = entityType.entityName;
115
+ const name = entityType.typeClass.name;
116
+ const defaults = [];
117
+ writer.writeLine(`export interface I${name} extends IClrEntity {`);
118
+ writer.indent++;
119
+ const enums = [];
120
+ const set = new Set();
121
+ const keys = [];
122
+ const mps = type.prototype[modelProperties];
123
+ for (const column of entityType.columns) {
124
+ if (column.key) {
125
+ keys.push(column.name);
126
+ }
127
+ set.add(column.name);
128
+ const jsonProperties = mps?.[column.name];
129
+ if (jsonProperties?.ignore) {
130
+ continue;
131
+ }
132
+ const isReadonly = column.generated || jsonProperties?.readonly ? " readonly " : "";
133
+ if (jsonProperties?.help) {
134
+ writer.writeLine(`/** ${jsonProperties.help} */`);
135
+ }
136
+ if (column.enum) {
137
+ enums.push(`export const ${name}${column.name[0].toUpperCase()}${column.name.substring(1)}Array = ${JSON.stringify(column.enum.map((x) => ({ label: x, value: x })))};`);
138
+ }
139
+ const jsType = getJSType(column);
140
+ if (column.nullable) {
141
+ writer.writeLine(`${isReadonly}${column.name}?: ${jsType} | null;`);
142
+ }
143
+ else {
144
+ writer.writeLine(`${isReadonly}${column.name}?: ${jsType};`);
145
+ const defs = getDefaults(column);
146
+ if (defs) {
147
+ const [k, v] = defs;
148
+ defaults.push(`${k}: ${v}`);
149
+ }
150
+ }
151
+ }
152
+ // additional model properties...
153
+ if (mps) {
154
+ for (const [key, property] of Object.entries(mps)) {
155
+ if (set.has(key)) {
156
+ continue;
157
+ }
158
+ const jsType = getJSType(property);
159
+ if (property.help) {
160
+ writer.writeLine(`/** ${property.help} */`);
161
+ }
162
+ writer.writeLine(`${key}?: ${jsType};`);
163
+ }
164
+ }
165
+ for (const relation of entityType.relations) {
166
+ if (relation.isCollection) {
167
+ writer.writeLine(`${relation.name}?: ICollection<I${relation.relatedTypeClass.name}>;`);
168
+ }
169
+ else {
170
+ writer.writeLine(`${relation.name}?: I${relation.relatedTypeClass.name};`);
171
+ }
172
+ }
173
+ writer.indent--;
174
+ writer.writeLine(`}`);
175
+ writer.writeLine();
176
+ if (enums.length) {
177
+ for (const iterator of enums) {
178
+ writer.writeLine(iterator);
179
+ }
180
+ writer.writeLine();
181
+ }
182
+ writer.writeLine(`export const ${name}: IModel<I${name}> = new Model<I${name}>("${entityName}", ${JSON.stringify(keys)}, { ${defaults.join(",")} });`);
183
+ writer.writeLine();
184
+ }
185
+ return writer.toString();
186
+ }
187
+ }
188
+ //# sourceMappingURL=ModelService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModelService.js","sourceRoot":"","sources":["../../src/services/ModelService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export declare const StringHelper: {
2
+ replaceAll: (text: string, search: string, replace: string) => string;
3
+ remove00: (text: string) => string;
4
+ extractFloat: (text: string, def?: number) => number;
5
+ };
6
+ //# sourceMappingURL=StringHelper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StringHelper.d.ts","sourceRoot":"","sources":["../../src/services/StringHelper.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY;uBACF,MAAM,UAAU,MAAM,WAAW,MAAM;qBAezC,MAAM;yBAOF,MAAM,QAAO,MAAM;CAO3C,CAAC"}
@@ -0,0 +1,30 @@
1
+ export const StringHelper = {
2
+ replaceAll: (text, search, replace) => {
3
+ if (!text || !search) {
4
+ return text;
5
+ }
6
+ let index = 0;
7
+ do {
8
+ index = text.indexOf(search, index);
9
+ if (index === -1) {
10
+ break;
11
+ }
12
+ text = text.substring(0, index) + replace + text.substring(index + search.length);
13
+ } while (true);
14
+ return text;
15
+ },
16
+ remove00: (text) => {
17
+ if (!text) {
18
+ return text;
19
+ }
20
+ return text.replace(/\x00/g, "");
21
+ },
22
+ extractFloat: (text, def = 0) => {
23
+ const group = /(\d+)/.exec(text);
24
+ if (group?.length) {
25
+ return parseFloat(group[0]);
26
+ }
27
+ return def;
28
+ }
29
+ };
30
+ //# sourceMappingURL=StringHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StringHelper.js","sourceRoot":"","sources":["../../src/services/StringHelper.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,YAAY,GAAG;IACxB,UAAU,EAAE,CAAC,IAAY,EAAE,MAAc,EAAE,OAAe,EAAE,EAAE;QAC1D,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,GAAG,CAAC;YACA,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YACpC,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;gBACf,MAAM;YACV,CAAC;YACD,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QACtF,CAAC,QAAO,IAAI,EAAE;QACd,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,QAAQ,EAAE,CAAC,IAAY,EAAE,EAAE;QACvB,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACrC,CAAC;IAED,YAAY,EAAE,CAAC,IAAY,EAAE,MAAc,CAAC,EAAE,EAAE;QAC5C,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,KAAK,EAAE,MAAM,EAAE,CAAC;YAChB,OAAO,UAAU,CAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACjC,CAAC;QACD,OAAO,GAAG,CAAC;IACf,CAAC;CACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ /// <reference types="node" resolution-mode="require"/>
2
+ export default function sleep(ms: number, signal?: AbortSignal): 1 | Promise<void>;
3
+ //# sourceMappingURL=sleep.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sleep.d.ts","sourceRoot":"","sources":["../src/sleep.ts"],"names":[],"mappings":";AAAA,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,qBAW7D"}
package/dist/sleep.js ADDED
@@ -0,0 +1,13 @@
1
+ export default function sleep(ms, signal) {
2
+ if (signal?.aborted) {
3
+ return 1;
4
+ }
5
+ return new Promise((resolve, reject) => {
6
+ const id = setTimeout(resolve, ms);
7
+ signal?.addEventListener("abort", () => {
8
+ clearTimeout(id);
9
+ resolve();
10
+ });
11
+ });
12
+ }
13
+ //# sourceMappingURL=sleep.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sleep.js","sourceRoot":"","sources":["../src/sleep.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,EAAU,EAAE,MAAoB;IAC1D,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;QAClB,OAAO,CAAC,CAAC;IACb,CAAC;IACD,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACzC,MAAM,EAAE,GAAG,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACnC,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;YACnC,YAAY,CAAC,EAAE,CAAC,CAAC;YACjB,OAAO,EAAE,CAAC;QACd,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC"}