@decaf-ts/core 0.7.67 → 0.7.69
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/README.md +1 -1
- package/dist/core.cjs +1 -1
- package/dist/core.cjs.map +1 -1
- package/dist/core.js +1 -1
- package/dist/core.js.map +1 -1
- package/lib/esm/index.d.ts +1 -1
- package/lib/esm/index.js +1 -1
- package/lib/esm/interfaces/Observable.d.ts +1 -0
- package/lib/esm/interfaces/Observable.js +3 -1
- package/lib/esm/interfaces/Observable.js.map +1 -1
- package/lib/esm/persistence/Sequence.js +4 -4
- package/lib/esm/persistence/Sequence.js.map +1 -1
- package/lib/esm/persistence/decorators.d.ts +5 -1
- package/lib/esm/persistence/decorators.js +14 -5
- package/lib/esm/persistence/decorators.js.map +1 -1
- package/lib/esm/persistence/generators.d.ts +3 -3
- package/lib/esm/persistence/index.d.ts +1 -0
- package/lib/esm/persistence/index.js +1 -0
- package/lib/esm/persistence/index.js.map +1 -1
- package/lib/index.cjs +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/interfaces/Observable.cjs +4 -0
- package/lib/interfaces/Observable.d.ts +1 -0
- package/lib/interfaces/Observable.js.map +1 -1
- package/lib/persistence/Sequence.cjs +4 -4
- package/lib/persistence/Sequence.js.map +1 -1
- package/lib/persistence/decorators.cjs +14 -5
- package/lib/persistence/decorators.d.ts +5 -1
- package/lib/persistence/decorators.js.map +1 -1
- package/lib/persistence/generators.d.ts +3 -3
- package/lib/persistence/index.cjs +1 -0
- package/lib/persistence/index.d.ts +1 -0
- package/lib/persistence/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Model } from "@decaf-ts/decorator-validation";
|
|
2
2
|
import { ContextOf } from "./types";
|
|
3
3
|
import { Repo } from "../repository/Repository";
|
|
4
|
+
import { ContextualArgs } from "../utils/index";
|
|
4
5
|
/**
|
|
5
6
|
* @description Handler function that sets a timestamp property to the current timestamp.
|
|
6
7
|
* @summary Updates a model property with the current timestamp from the repository context.
|
|
@@ -19,6 +20,9 @@ import { Repo } from "../repository/Repository";
|
|
|
19
20
|
export declare function uuidCreateUpdateHandler<M extends Model<boolean>, R extends Repo<M>>(this: R, context: ContextOf<R>, data: UUIDMetadata, key: keyof M, model: M): Promise<void>;
|
|
20
21
|
export type UUIDMetadata = {
|
|
21
22
|
update: boolean;
|
|
23
|
+
seed?: string | (<M extends Model>(model: M, ...args: ContextualArgs<any>) => string);
|
|
22
24
|
args?: any[];
|
|
23
25
|
};
|
|
24
|
-
export declare function uuid(
|
|
26
|
+
export declare function uuid(...args: any[]): (target: any, propertyKey?: any) => void;
|
|
27
|
+
export declare function uuid(update: boolean, ...args: any[]): (target: any, propertyKey?: any) => void;
|
|
28
|
+
export declare function uuid(seed: string | (<M extends Model>(model: M, ...args: ContextualArgs<any>) => string), ...args: any[]): (target: any, propertyKey?: any) => void;
|
|
@@ -23,12 +23,21 @@ export async function uuidCreateUpdateHandler(context, data, key, model) {
|
|
|
23
23
|
typeof model[key] !== "undefined") {
|
|
24
24
|
return;
|
|
25
25
|
}
|
|
26
|
-
|
|
26
|
+
// eslint-disable-next-line prefer-const
|
|
27
|
+
let { seed, args } = data;
|
|
28
|
+
if (seed && typeof seed === "function") {
|
|
29
|
+
seed = seed(model, ...(args || []), context);
|
|
30
|
+
}
|
|
31
|
+
model[key] = UUID.instance.generate(seed);
|
|
27
32
|
}
|
|
28
|
-
export function uuid(update = false, ...args) {
|
|
33
|
+
export function uuid(update = false, seed, ...args) {
|
|
34
|
+
if (typeof update === "function") {
|
|
35
|
+
seed = update;
|
|
36
|
+
update = false;
|
|
37
|
+
}
|
|
29
38
|
const decorationKey = PersistenceKeys.UUID;
|
|
30
|
-
function uuid(update, ...args) {
|
|
31
|
-
const meta = { update: update, args: args };
|
|
39
|
+
function uuid(update, seed, ...args) {
|
|
40
|
+
const meta = { update: update, seed: seed, args: args };
|
|
32
41
|
const decorators = [
|
|
33
42
|
required(),
|
|
34
43
|
generated(PersistenceKeys.UUID),
|
|
@@ -43,7 +52,7 @@ export function uuid(update = false, ...args) {
|
|
|
43
52
|
return Decoration.for(decorationKey)
|
|
44
53
|
.define({
|
|
45
54
|
decorator: uuid,
|
|
46
|
-
args: [update, ...args],
|
|
55
|
+
args: [update, seed, ...args],
|
|
47
56
|
})
|
|
48
57
|
.apply();
|
|
49
58
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../src/persistence/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,uBAAoB;AAC9C,OAAO,EAAS,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EACL,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,QAAQ,GACT,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGzD,OAAO,EAAE,IAAI,EAAE,wBAAqB;
|
|
1
|
+
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../src/persistence/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,uBAAoB;AAC9C,OAAO,EAAS,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EACL,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,QAAQ,GACT,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGzD,OAAO,EAAE,IAAI,EAAE,wBAAqB;AAGpC;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAK3C,OAAqB,EACrB,IAAkB,EAClB,GAAY,EACZ,KAAQ;IAER,IACE,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC;QACtC,OAAO,KAAK,CAAC,GAAG,CAAC,KAAK,WAAW,EACjC,CAAC;QACD,OAAO;IACT,CAAC;IAED,wCAAwC;IACxC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;IAC1B,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE,CAAC;QACvC,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;IACA,KAAa,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACrD,CAAC;AAoBD,MAAM,UAAU,IAAI,CAClB,SAMmB,KAAK,EACxB,IAEyE,EACzE,GAAG,IAAW;IAEd,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;QACjC,IAAI,GAAG,MAAM,CAAC;QACd,MAAM,GAAG,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,aAAa,GAAG,eAAe,CAAC,IAAI,CAAC;IAE3C,SAAS,IAAI,CACX,MAAe,EACf,IAAyC,EACzC,GAAG,IAAW;QAEd,MAAM,IAAI,GAAiB,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACtE,MAAM,UAAU,GAAU;YACxB,QAAQ,EAAE;YACV,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC;YAC/B,QAAQ,CAAC,uBAAuB,EAAE,IAAI,CAAC;SACxC,CAAC;QACF,IAAI,MAAM;YAAE,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,uBAAuB,EAAE,IAAI,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC,MAAM;YAAE,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACzC,OAAO,KAAK,CAAC,GAAG,UAAU,CAAC,CAAC;IAC9B,CAAC;IAED,OAAO,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC;SACjC,MAAM,CAAC;QACN,SAAS,EAAE,IAAI;QACf,IAAI,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;KAC9B,CAAC;SACD,KAAK,EAAE,CAAC;AACb,CAAC"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
export interface Generator<OUT extends string | number = string> {
|
|
2
|
-
generate(prev?: OUT): OUT
|
|
2
|
+
generate(prev?: OUT): OUT | Promise<OUT>;
|
|
3
3
|
}
|
|
4
4
|
export declare class UUID implements Generator {
|
|
5
5
|
private static _instance;
|
|
6
|
-
generate(prev?: string): string
|
|
6
|
+
generate(prev?: string): string | Promise<string>;
|
|
7
7
|
static get instance(): UUID;
|
|
8
8
|
}
|
|
9
9
|
export declare class Serial implements Generator {
|
|
10
10
|
private static _instance;
|
|
11
11
|
private count;
|
|
12
|
-
generate(prev?: string): string
|
|
12
|
+
generate(prev?: string): string | Promise<string>;
|
|
13
13
|
static get instance(): Serial;
|
|
14
14
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/persistence/index.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,8BAA2B;AAC3B,+BAA4B;AAC5B,6BAA0B;AAC1B,4BAAyB;AACzB,gCAA6B;AAC7B,mCAAgC;AAChC,qCAAkC;AAClC,8BAA2B;AAC3B,2BAAwB;AACxB,6BAA0B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/persistence/index.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,8BAA2B;AAC3B,+BAA4B;AAC5B,6BAA0B;AAC1B,gCAA6B;AAC7B,4BAAyB;AACzB,gCAA6B;AAC7B,mCAAgC;AAChC,qCAAkC;AAClC,8BAA2B;AAC3B,2BAAwB;AACxB,6BAA0B"}
|
package/lib/index.cjs
CHANGED
|
@@ -47,7 +47,7 @@ __exportStar(require("./persistence/index.cjs"), exports);
|
|
|
47
47
|
* @const VERSION
|
|
48
48
|
* @memberOf module:core
|
|
49
49
|
*/
|
|
50
|
-
exports.VERSION = "0.7.
|
|
50
|
+
exports.VERSION = "0.7.68";
|
|
51
51
|
/**
|
|
52
52
|
* @description Stores the current package version
|
|
53
53
|
* @summary A constant representing the version of the core package
|
package/lib/index.d.ts
CHANGED
|
@@ -20,7 +20,7 @@ export * from "./persistence";
|
|
|
20
20
|
* @const VERSION
|
|
21
21
|
* @memberOf module:core
|
|
22
22
|
*/
|
|
23
|
-
export declare const VERSION = "0.7.
|
|
23
|
+
export declare const VERSION = "0.7.68";
|
|
24
24
|
/**
|
|
25
25
|
* @description Stores the current package version
|
|
26
26
|
* @summary A constant representing the version of the core package
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Observer } from "./Observer";
|
|
2
|
+
export declare function unRegistration(observable: Observable, observer: Observer): () => void;
|
|
2
3
|
/**
|
|
3
4
|
* @description Interface for objects that can be observed
|
|
4
5
|
* @summary Defines a contract for objects that implement the Observer pattern, allowing them to register observers,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Observable.js","sourceRoot":"","sources":["../../src/interfaces/Observable.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"Observable.js","sourceRoot":"","sources":["../../src/interfaces/Observable.ts"],"names":[],"mappings":";;AAEA,wCAEC;AAFD,SAAgB,cAAc,CAAC,UAAsB,EAAE,QAAkB;IACvE,OAAO,GAAG,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;AAC9C,CAAC"}
|
|
@@ -129,7 +129,7 @@ class Sequence extends ContextualLoggedClass_1.ContextualLoggedClass {
|
|
|
129
129
|
throw e;
|
|
130
130
|
}
|
|
131
131
|
};
|
|
132
|
-
const incrementSerial = (base) => {
|
|
132
|
+
const incrementSerial = async (base) => {
|
|
133
133
|
switch (typeName) {
|
|
134
134
|
case Number.name:
|
|
135
135
|
return this.parse(base) + toIncrementBy;
|
|
@@ -138,14 +138,14 @@ class Sequence extends ContextualLoggedClass_1.ContextualLoggedClass {
|
|
|
138
138
|
case String.name:
|
|
139
139
|
return this.parse(base);
|
|
140
140
|
case "serial":
|
|
141
|
-
return generators_1.Serial.instance.generate(base);
|
|
141
|
+
return await Promise.resolve(generators_1.Serial.instance.generate(base));
|
|
142
142
|
default:
|
|
143
143
|
throw new db_decorators_1.InternalError("Should never happen");
|
|
144
144
|
}
|
|
145
145
|
};
|
|
146
146
|
if (typeName === "uuid") {
|
|
147
147
|
while (true) {
|
|
148
|
-
const next = generators_1.UUID.instance.generate(currentValue);
|
|
148
|
+
const next = await Promise.resolve(generators_1.UUID.instance.generate(currentValue));
|
|
149
149
|
try {
|
|
150
150
|
const result = await performUpsert(next);
|
|
151
151
|
log.debug(`Sequence uuid increment ${name} current=${currentValue} next=${next}`);
|
|
@@ -158,7 +158,7 @@ class Sequence extends ContextualLoggedClass_1.ContextualLoggedClass {
|
|
|
158
158
|
}
|
|
159
159
|
}
|
|
160
160
|
}
|
|
161
|
-
const next = incrementSerial(currentValue);
|
|
161
|
+
const next = await incrementSerial(currentValue);
|
|
162
162
|
const seq = await performUpsert(next);
|
|
163
163
|
log.debug(`Sequence.increment ${name} current=${currentValue} next=${next}`);
|
|
164
164
|
return seq.current;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Sequence.js","sourceRoot":"","sources":["../../src/persistence/Sequence.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Sequence.js","sourceRoot":"","sources":["../../src/persistence/Sequence.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,12 +27,21 @@ async function uuidCreateUpdateHandler(context, data, key, model) {
|
|
|
27
27
|
typeof model[key] !== "undefined") {
|
|
28
28
|
return;
|
|
29
29
|
}
|
|
30
|
-
|
|
30
|
+
// eslint-disable-next-line prefer-const
|
|
31
|
+
let { seed, args } = data;
|
|
32
|
+
if (seed && typeof seed === "function") {
|
|
33
|
+
seed = seed(model, ...(args || []), context);
|
|
34
|
+
}
|
|
35
|
+
model[key] = generators_1.UUID.instance.generate(seed);
|
|
31
36
|
}
|
|
32
|
-
function uuid(update = false, ...args) {
|
|
37
|
+
function uuid(update = false, seed, ...args) {
|
|
38
|
+
if (typeof update === "function") {
|
|
39
|
+
seed = update;
|
|
40
|
+
update = false;
|
|
41
|
+
}
|
|
33
42
|
const decorationKey = constants_1.PersistenceKeys.UUID;
|
|
34
|
-
function uuid(update, ...args) {
|
|
35
|
-
const meta = { update: update, args: args };
|
|
43
|
+
function uuid(update, seed, ...args) {
|
|
44
|
+
const meta = { update: update, seed: seed, args: args };
|
|
36
45
|
const decorators = [
|
|
37
46
|
(0, decorator_validation_1.required)(),
|
|
38
47
|
(0, db_decorators_1.generated)(constants_1.PersistenceKeys.UUID),
|
|
@@ -47,7 +56,7 @@ function uuid(update = false, ...args) {
|
|
|
47
56
|
return decoration_1.Decoration.for(decorationKey)
|
|
48
57
|
.define({
|
|
49
58
|
decorator: uuid,
|
|
50
|
-
args: [update, ...args],
|
|
59
|
+
args: [update, seed, ...args],
|
|
51
60
|
})
|
|
52
61
|
.apply();
|
|
53
62
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Model } from "@decaf-ts/decorator-validation";
|
|
2
2
|
import { ContextOf } from "./types";
|
|
3
3
|
import { Repo } from "../repository/Repository";
|
|
4
|
+
import { ContextualArgs } from "../utils/index";
|
|
4
5
|
/**
|
|
5
6
|
* @description Handler function that sets a timestamp property to the current timestamp.
|
|
6
7
|
* @summary Updates a model property with the current timestamp from the repository context.
|
|
@@ -19,6 +20,9 @@ import { Repo } from "../repository/Repository";
|
|
|
19
20
|
export declare function uuidCreateUpdateHandler<M extends Model<boolean>, R extends Repo<M>>(this: R, context: ContextOf<R>, data: UUIDMetadata, key: keyof M, model: M): Promise<void>;
|
|
20
21
|
export type UUIDMetadata = {
|
|
21
22
|
update: boolean;
|
|
23
|
+
seed?: string | (<M extends Model>(model: M, ...args: ContextualArgs<any>) => string);
|
|
22
24
|
args?: any[];
|
|
23
25
|
};
|
|
24
|
-
export declare function uuid(
|
|
26
|
+
export declare function uuid(...args: any[]): (target: any, propertyKey?: any) => void;
|
|
27
|
+
export declare function uuid(update: boolean, ...args: any[]): (target: any, propertyKey?: any) => void;
|
|
28
|
+
export declare function uuid(seed: string | (<M extends Model>(model: M, ...args: ContextualArgs<any>) => string), ...args: any[]): (target: any, propertyKey?: any) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/persistence/decorators.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/persistence/decorators.ts"],"names":[],"mappings":";;AA6BA,0DAuBC;AAoBD,oBA0CC;AAlHD,+CAA8C;AAC9C,yEAAiE;AACjE,2DAKiC;AACjC,qDAAyD;AAGzD,iDAAoC;AAGpC;;;;;;;;;;;;;;GAcG;AACI,KAAK,UAAU,uBAAuB,CAK3C,OAAqB,EACrB,IAAkB,EAClB,GAAY,EACZ,KAAQ;IAER,IACE,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC;QACtC,OAAO,KAAK,CAAC,GAAG,CAAC,KAAK,WAAW,EACjC,CAAC;QACD,OAAO;IACT,CAAC;IAED,wCAAwC;IACxC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;IAC1B,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE,CAAC;QACvC,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;IACA,KAAa,CAAC,GAAG,CAAC,GAAG,iBAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACrD,CAAC;AAoBD,SAAgB,IAAI,CAClB,SAMmB,KAAK,EACxB,IAEyE,EACzE,GAAG,IAAW;IAEd,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;QACjC,IAAI,GAAG,MAAM,CAAC;QACd,MAAM,GAAG,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,aAAa,GAAG,2BAAe,CAAC,IAAI,CAAC;IAE3C,SAAS,IAAI,CACX,MAAe,EACf,IAAyC,EACzC,GAAG,IAAW;QAEd,MAAM,IAAI,GAAiB,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACtE,MAAM,UAAU,GAAU;YACxB,IAAA,+BAAQ,GAAE;YACV,IAAA,yBAAS,EAAC,2BAAe,CAAC,IAAI,CAAC;YAC/B,IAAA,wBAAQ,EAAC,uBAAuB,EAAE,IAAI,CAAC;SACxC,CAAC;QACF,IAAI,MAAM;YAAE,UAAU,CAAC,IAAI,CAAC,IAAA,wBAAQ,EAAC,uBAAuB,EAAE,IAAI,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC,MAAM;YAAE,UAAU,CAAC,IAAI,CAAC,IAAA,wBAAQ,GAAE,CAAC,CAAC;QACzC,OAAO,IAAA,kBAAK,EAAC,GAAG,UAAU,CAAC,CAAC;IAC9B,CAAC;IAED,OAAO,uBAAU,CAAC,GAAG,CAAC,aAAa,CAAC;SACjC,MAAM,CAAC;QACN,SAAS,EAAE,IAAI;QACf,IAAI,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;KAC9B,CAAC;SACD,KAAK,EAAE,CAAC;AACb,CAAC"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
export interface Generator<OUT extends string | number = string> {
|
|
2
|
-
generate(prev?: OUT): OUT
|
|
2
|
+
generate(prev?: OUT): OUT | Promise<OUT>;
|
|
3
3
|
}
|
|
4
4
|
export declare class UUID implements Generator {
|
|
5
5
|
private static _instance;
|
|
6
|
-
generate(prev?: string): string
|
|
6
|
+
generate(prev?: string): string | Promise<string>;
|
|
7
7
|
static get instance(): UUID;
|
|
8
8
|
}
|
|
9
9
|
export declare class Serial implements Generator {
|
|
10
10
|
private static _instance;
|
|
11
11
|
private count;
|
|
12
|
-
generate(prev?: string): string
|
|
12
|
+
generate(prev?: string): string | Promise<string>;
|
|
13
13
|
static get instance(): Serial;
|
|
14
14
|
}
|
|
@@ -18,6 +18,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
18
18
|
__exportStar(require("./Dispatch.cjs"), exports);
|
|
19
19
|
__exportStar(require("./constants.cjs"), exports);
|
|
20
20
|
__exportStar(require("./Context.cjs"), exports);
|
|
21
|
+
__exportStar(require("./decorators.cjs"), exports);
|
|
21
22
|
__exportStar(require("./errors.cjs"), exports);
|
|
22
23
|
__exportStar(require("./generators.cjs"), exports);
|
|
23
24
|
__exportStar(require("./event-filters.cjs"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/persistence/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2BAA2B;AAC3B,iDAA2B;AAC3B,kDAA4B;AAC5B,gDAA0B;AAC1B,+CAAyB;AACzB,mDAA6B;AAC7B,sDAAgC;AAChC,wDAAkC;AAClC,iDAA2B;AAC3B,8CAAwB;AACxB,gDAA0B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/persistence/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2BAA2B;AAC3B,iDAA2B;AAC3B,kDAA4B;AAC5B,gDAA0B;AAC1B,mDAA6B;AAC7B,+CAAyB;AACzB,mDAA6B;AAC7B,sDAAgC;AAChC,wDAAkC;AAClC,iDAA2B;AAC3B,8CAAwB;AACxB,gDAA0B"}
|