@decaf-ts/core 0.7.1 → 0.7.3
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/identity/decorators.d.ts +3 -4
- package/lib/esm/identity/decorators.js +4 -10
- package/lib/esm/identity/decorators.js.map +1 -1
- package/lib/esm/identity/index.d.ts +0 -1
- package/lib/esm/identity/index.js +0 -1
- package/lib/esm/identity/index.js.map +1 -1
- package/lib/esm/index.d.ts +1 -1
- package/lib/esm/index.js +1 -1
- package/lib/esm/interfaces/ContextuallyLogged.d.ts +8 -0
- package/lib/esm/interfaces/ContextuallyLogged.js +2 -0
- package/lib/esm/interfaces/ContextuallyLogged.js.map +1 -0
- package/lib/esm/interfaces/ErrorParser.d.ts +2 -2
- package/lib/esm/interfaces/Executor.d.ts +1 -1
- package/lib/esm/interfaces/Observable.d.ts +8 -8
- package/lib/esm/interfaces/Observer.d.ts +2 -2
- package/lib/esm/interfaces/RawExecutor.d.ts +1 -1
- package/lib/esm/model/BaseModel.d.ts +2 -2
- package/lib/esm/model/BaseModel.js +2 -2
- package/lib/esm/model/construction.d.ts +9 -8
- package/lib/esm/model/construction.js +2 -2
- package/lib/esm/model/construction.js.map +1 -1
- package/lib/esm/model/decorators.d.ts +4 -3
- package/lib/esm/model/decorators.js +2 -2
- package/lib/esm/model/decorators.js.map +1 -1
- package/lib/esm/overrides/Metadata.d.ts +1 -8
- package/lib/esm/overrides/Model.d.ts +75 -0
- package/lib/esm/overrides/Model.js +2 -0
- package/lib/esm/overrides/Model.js.map +1 -0
- package/lib/esm/overrides/index.d.ts +2 -0
- package/lib/esm/overrides/index.js +2 -0
- package/lib/esm/overrides/index.js.map +1 -1
- package/lib/esm/overrides/injectables.d.ts +10 -0
- package/lib/esm/overrides/injectables.js +2 -0
- package/lib/esm/overrides/injectables.js.map +1 -0
- package/lib/esm/overrides/overrides.js +45 -3
- package/lib/esm/overrides/overrides.js.map +1 -1
- package/lib/esm/persistence/Adapter.d.ts +54 -51
- package/lib/esm/persistence/Adapter.js +78 -57
- package/lib/esm/persistence/Adapter.js.map +1 -1
- package/lib/esm/persistence/Dispatch.d.ts +7 -6
- package/lib/esm/persistence/Dispatch.js +25 -18
- package/lib/esm/persistence/Dispatch.js.map +1 -1
- package/lib/esm/persistence/ObserverHandler.d.ts +7 -6
- package/lib/esm/persistence/ObserverHandler.js +5 -4
- package/lib/esm/persistence/ObserverHandler.js.map +1 -1
- package/lib/esm/persistence/Sequence.d.ts +10 -17
- package/lib/esm/persistence/Sequence.js +10 -15
- package/lib/esm/persistence/Sequence.js.map +1 -1
- package/lib/esm/persistence/constants.d.ts +1 -0
- package/lib/esm/persistence/constants.js +1 -0
- package/lib/esm/persistence/constants.js.map +1 -1
- package/lib/esm/persistence/migrations.d.ts +8 -8
- package/lib/esm/persistence/migrations.js +8 -9
- package/lib/esm/persistence/migrations.js.map +1 -1
- package/lib/esm/persistence/types.d.ts +38 -20
- package/lib/esm/query/Paginator.d.ts +6 -5
- package/lib/esm/query/Paginator.js +4 -4
- package/lib/esm/query/Paginator.js.map +1 -1
- package/lib/esm/query/Statement.d.ts +9 -8
- package/lib/esm/query/Statement.js +23 -10
- package/lib/esm/query/Statement.js.map +1 -1
- package/lib/esm/ram/RamAdapter.d.ts +21 -21
- package/lib/esm/ram/RamAdapter.js +36 -23
- package/lib/esm/ram/RamAdapter.js.map +1 -1
- package/lib/esm/ram/RamPaginator.d.ts +2 -1
- package/lib/esm/ram/RamPaginator.js +5 -3
- package/lib/esm/ram/RamPaginator.js.map +1 -1
- package/lib/esm/ram/RamSequence.d.ts +4 -11
- package/lib/esm/ram/RamSequence.js +20 -24
- package/lib/esm/ram/RamSequence.js.map +1 -1
- package/lib/esm/ram/RamStatement.d.ts +7 -7
- package/lib/esm/ram/RamStatement.js.map +1 -1
- package/lib/esm/ram/handlers.d.ts +3 -4
- package/lib/esm/ram/handlers.js.map +1 -1
- package/lib/esm/ram/index.d.ts +0 -1
- package/lib/esm/ram/index.js +0 -1
- package/lib/esm/ram/index.js.map +1 -1
- package/lib/esm/ram/types.d.ts +4 -12
- package/lib/esm/repository/Repository.d.ts +31 -95
- package/lib/esm/repository/Repository.js +106 -201
- package/lib/esm/repository/Repository.js.map +1 -1
- package/lib/esm/repository/decorators.js +3 -2
- package/lib/esm/repository/decorators.js.map +1 -1
- package/lib/esm/repository/utils.d.ts +1 -1
- package/lib/esm/repository/utils.js +2 -3
- package/lib/esm/repository/utils.js.map +1 -1
- package/lib/esm/utils/ContextualLoggedClass.d.ts +16 -0
- package/lib/esm/utils/ContextualLoggedClass.js +29 -0
- package/lib/esm/utils/ContextualLoggedClass.js.map +1 -0
- package/lib/esm/utils/Services.d.ts +28 -0
- package/lib/esm/utils/Services.js +88 -0
- package/lib/esm/utils/Services.js.map +1 -0
- package/lib/esm/utils/decorators.d.ts +1 -9
- package/lib/esm/utils/decorators.js +26 -15
- package/lib/esm/utils/decorators.js.map +1 -1
- package/lib/esm/utils/index.d.ts +2 -1
- package/lib/esm/utils/index.js +2 -1
- package/lib/esm/utils/index.js.map +1 -1
- package/lib/identity/decorators.cjs +3 -9
- package/lib/identity/decorators.d.ts +3 -4
- package/lib/identity/decorators.js.map +1 -1
- package/lib/identity/index.cjs +0 -1
- package/lib/identity/index.d.ts +0 -1
- package/lib/identity/index.js.map +1 -1
- package/lib/index.cjs +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/interfaces/ContextuallyLogged.cjs +3 -0
- package/lib/interfaces/ContextuallyLogged.d.ts +8 -0
- package/lib/interfaces/ContextuallyLogged.js.map +1 -0
- package/lib/interfaces/ErrorParser.d.ts +2 -2
- package/lib/interfaces/Executor.d.ts +1 -1
- package/lib/interfaces/Observable.d.ts +8 -8
- package/lib/interfaces/Observer.d.ts +2 -2
- package/lib/interfaces/RawExecutor.d.ts +1 -1
- package/lib/model/BaseModel.cjs +2 -2
- package/lib/model/BaseModel.d.ts +2 -2
- package/lib/model/construction.cjs +2 -2
- package/lib/model/construction.d.ts +9 -8
- package/lib/model/construction.js.map +1 -1
- package/lib/model/decorators.cjs +1 -1
- package/lib/model/decorators.d.ts +4 -3
- package/lib/model/decorators.js.map +1 -1
- package/lib/overrides/Metadata.d.ts +1 -8
- package/lib/overrides/Model.cjs +4 -0
- package/lib/overrides/Model.d.ts +75 -0
- package/lib/overrides/Model.js.map +1 -0
- package/lib/overrides/index.cjs +2 -0
- package/lib/overrides/index.d.ts +2 -0
- package/lib/overrides/index.js.map +1 -1
- package/lib/overrides/injectables.cjs +4 -0
- package/lib/overrides/injectables.d.ts +10 -0
- package/lib/overrides/injectables.js.map +1 -0
- package/lib/overrides/overrides.cjs +43 -1
- package/lib/overrides/overrides.js.map +1 -1
- package/lib/persistence/Adapter.cjs +83 -62
- package/lib/persistence/Adapter.d.ts +54 -51
- package/lib/persistence/Adapter.js.map +1 -1
- package/lib/persistence/Dispatch.cjs +25 -18
- package/lib/persistence/Dispatch.d.ts +7 -6
- package/lib/persistence/Dispatch.js.map +1 -1
- package/lib/persistence/ObserverHandler.cjs +5 -4
- package/lib/persistence/ObserverHandler.d.ts +7 -6
- package/lib/persistence/ObserverHandler.js.map +1 -1
- package/lib/persistence/Sequence.cjs +10 -15
- package/lib/persistence/Sequence.d.ts +10 -17
- package/lib/persistence/Sequence.js.map +1 -1
- package/lib/persistence/constants.cjs +1 -0
- package/lib/persistence/constants.d.ts +1 -0
- package/lib/persistence/constants.js.map +1 -1
- package/lib/persistence/migrations.cjs +7 -8
- package/lib/persistence/migrations.d.ts +8 -8
- package/lib/persistence/migrations.js.map +1 -1
- package/lib/persistence/types.d.ts +38 -20
- package/lib/query/Paginator.cjs +4 -4
- package/lib/query/Paginator.d.ts +6 -5
- package/lib/query/Paginator.js.map +1 -1
- package/lib/query/Statement.cjs +34 -21
- package/lib/query/Statement.d.ts +9 -8
- package/lib/query/Statement.js.map +1 -1
- package/lib/ram/RamAdapter.cjs +35 -22
- package/lib/ram/RamAdapter.d.ts +21 -21
- package/lib/ram/RamAdapter.js.map +1 -1
- package/lib/ram/RamPaginator.cjs +5 -3
- package/lib/ram/RamPaginator.d.ts +2 -1
- package/lib/ram/RamPaginator.js.map +1 -1
- package/lib/ram/RamSequence.cjs +19 -23
- package/lib/ram/RamSequence.d.ts +4 -11
- package/lib/ram/RamSequence.js.map +1 -1
- package/lib/ram/RamStatement.d.ts +7 -7
- package/lib/ram/RamStatement.js.map +1 -1
- package/lib/ram/handlers.d.ts +3 -4
- package/lib/ram/handlers.js.map +1 -1
- package/lib/ram/index.cjs +0 -1
- package/lib/ram/index.d.ts +0 -1
- package/lib/ram/index.js.map +1 -1
- package/lib/ram/types.d.ts +4 -12
- package/lib/repository/Repository.cjs +107 -202
- package/lib/repository/Repository.d.ts +31 -95
- package/lib/repository/Repository.js.map +1 -1
- package/lib/repository/decorators.cjs +1 -0
- package/lib/repository/decorators.js.map +1 -1
- package/lib/repository/utils.cjs +2 -3
- package/lib/repository/utils.d.ts +1 -1
- package/lib/repository/utils.js.map +1 -1
- package/lib/utils/ContextualLoggedClass.cjs +33 -0
- package/lib/utils/ContextualLoggedClass.d.ts +16 -0
- package/lib/utils/ContextualLoggedClass.js.map +1 -0
- package/lib/utils/Services.cjs +93 -0
- package/lib/utils/Services.d.ts +28 -0
- package/lib/utils/Services.js.map +1 -0
- package/lib/utils/decorators.cjs +27 -16
- package/lib/utils/decorators.d.ts +1 -9
- package/lib/utils/decorators.js.map +1 -1
- package/lib/utils/index.cjs +2 -1
- package/lib/utils/index.d.ts +2 -1
- package/lib/utils/index.js.map +1 -1
- package/package.json +1 -1
- package/lib/esm/identity/utils.d.ts +0 -24
- package/lib/esm/identity/utils.js +0 -44
- package/lib/esm/identity/utils.js.map +0 -1
- package/lib/esm/ram/RamContext.d.ts +0 -28
- package/lib/esm/ram/RamContext.js +0 -30
- package/lib/esm/ram/RamContext.js.map +0 -1
- package/lib/identity/utils.cjs +0 -49
- package/lib/identity/utils.d.ts +0 -24
- package/lib/identity/utils.js.map +0 -1
- package/lib/ram/RamContext.cjs +0 -34
- package/lib/ram/RamContext.d.ts +0 -28
- package/lib/ram/RamContext.js.map +0 -1
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Paginator } from "./../query/index.js";
|
|
2
|
+
import { Context, OperationKeys } from "@decaf-ts/db-decorators";
|
|
2
3
|
/**
|
|
3
4
|
* @description RAM-specific paginator implementation
|
|
4
5
|
* @summary Extends the base Paginator class to provide pagination functionality for RAM adapter queries.
|
|
@@ -51,11 +52,12 @@ export class RamPaginator extends Paginator {
|
|
|
51
52
|
* @param {number} [page=1] - The page number to retrieve (1-based)
|
|
52
53
|
* @return {Promise<R[]>} A promise that resolves to an array of results for the requested page
|
|
53
54
|
*/
|
|
54
|
-
async page(page = 1) {
|
|
55
|
+
async page(page = 1, ...args) {
|
|
56
|
+
const contextArgs = await Context.args(OperationKeys.READ, this.clazz, args, this.adapter);
|
|
55
57
|
const statement = this.prepare(this.statement);
|
|
56
58
|
if (!this._recordCount || !this._totalPages) {
|
|
57
59
|
this._totalPages = this._recordCount = 0;
|
|
58
|
-
const results = (await this.adapter.raw({ ...statement, limit: undefined })) || [];
|
|
60
|
+
const results = (await this.adapter.raw({ ...statement, limit: undefined }, contextArgs.context)) || [];
|
|
59
61
|
this._recordCount = results.length;
|
|
60
62
|
if (this._recordCount > 0) {
|
|
61
63
|
const size = statement?.limit || this.size;
|
|
@@ -64,7 +66,7 @@ export class RamPaginator extends Paginator {
|
|
|
64
66
|
}
|
|
65
67
|
page = this.validatePage(page);
|
|
66
68
|
statement.skip = (page - 1) * this.size;
|
|
67
|
-
const results = await this.adapter.raw(statement);
|
|
69
|
+
const results = await this.adapter.raw(statement, await this.adapter.context(OperationKeys.READ, {}, this.clazz));
|
|
68
70
|
this._currentPage = page;
|
|
69
71
|
return results;
|
|
70
72
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RamPaginator.js","sourceRoot":"","sources":["../../../src/ram/RamPaginator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,4BAAiB;
|
|
1
|
+
{"version":3,"file":"RamPaginator.js","sourceRoot":"","sources":["../../../src/ram/RamPaginator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,4BAAiB;AAIrC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAGjE;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,OAAO,YAAiC,SAAQ,SAIrD;IACC,YACE,OAA+C,EAC/C,KAAqB,EACrB,IAAY,EACZ,KAAqB;QAErB,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IACrC,CAAC;IAED;;;;;;OAMG;IACO,OAAO,CAAC,YAA4B;QAC5C,MAAM,KAAK,GAAqB,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;QAChE,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC;QACxB,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,IAAI,CAAC,OAAe,CAAC,EAAE,GAAG,IAA6B;QAC3D,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,IAAI,CACpC,aAAa,CAAC,IAAI,EAClB,IAAI,CAAC,KAAK,EACV,IAAI,EACJ,IAAI,CAAC,OAAO,CACb,CAAC;QACF,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/C,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YAC5C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;YACzC,MAAM,OAAO,GACX,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CACrB,EAAE,GAAG,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,EAClC,WAAW,CAAC,OAAO,CACpB,CAAC,IAAI,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;YACnC,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,EAAE,CAAC;gBAC1B,MAAM,IAAI,GAAG,SAAS,EAAE,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC;gBAC3C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;YACzD,CAAC;QACH,CAAC;QAED,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC/B,SAAS,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;QACxC,MAAM,OAAO,GAAU,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAC3C,SAAS,EACT,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAC/D,CAAC;QACF,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,OAAO,OAAO,CAAC;IACjB,CAAC;CACF"}
|
|
@@ -3,6 +3,7 @@ import { Sequence } from "../persistence";
|
|
|
3
3
|
import { SequenceOptions } from "../interfaces";
|
|
4
4
|
import { RamAdapter } from "./RamAdapter";
|
|
5
5
|
import { Repo } from "../repository";
|
|
6
|
+
import { MaybeContextualArg } from "../utils/index";
|
|
6
7
|
/**
|
|
7
8
|
* @description RAM-specific sequence implementation
|
|
8
9
|
* @summary Extends the base Sequence class to provide auto-incrementing sequence functionality
|
|
@@ -38,15 +39,7 @@ export declare class RamSequence extends Sequence {
|
|
|
38
39
|
* doesn't exist yet, it returns the configured starting value.
|
|
39
40
|
* @return A promise that resolves to the current sequence value
|
|
40
41
|
*/
|
|
41
|
-
current(): Promise<string | number | bigint>;
|
|
42
|
-
/**
|
|
43
|
-
* @description Parses a value according to the sequence type
|
|
44
|
-
* @summary Converts a value to the appropriate type for the sequence (string, number, or bigint)
|
|
45
|
-
* using the base Sequence class's parseValue method.
|
|
46
|
-
* @param {string | number | bigint} value - The value to parse
|
|
47
|
-
* @return {string | number | bigint} The parsed value in the correct type
|
|
48
|
-
*/
|
|
49
|
-
private parse;
|
|
42
|
+
current(...args: MaybeContextualArg<any>): Promise<string | number | bigint>;
|
|
50
43
|
/**
|
|
51
44
|
* @description Increments the sequence value
|
|
52
45
|
* @summary Increases the current sequence value by the specified amount and persists
|
|
@@ -62,7 +55,7 @@ export declare class RamSequence extends Sequence {
|
|
|
62
55
|
* configured increment amount. This is the main method used to get a new sequential value.
|
|
63
56
|
* @return A promise that resolves to the next value in the sequence
|
|
64
57
|
*/
|
|
65
|
-
next(): Promise<number | string | bigint>;
|
|
58
|
+
next(...argz: MaybeContextualArg<any>): Promise<number | string | bigint>;
|
|
66
59
|
/**
|
|
67
60
|
* @description Generates a range of sequential values
|
|
68
61
|
* @summary Retrieves a specified number of sequential values from the sequence.
|
|
@@ -71,5 +64,5 @@ export declare class RamSequence extends Sequence {
|
|
|
71
64
|
* @param {number} count - The number of sequential values to generate
|
|
72
65
|
* @return A promise that resolves to an array of sequential values
|
|
73
66
|
*/
|
|
74
|
-
range(count: number): Promise<(number | string | bigint)[]>;
|
|
67
|
+
range(count: number, ...argz: MaybeContextualArg<any>): Promise<(number | string | bigint)[]>;
|
|
75
68
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { RamSequenceModel } from "./model/RamSequenceModel.js";
|
|
2
|
-
import { InternalError, NotFoundError } from "@decaf-ts/db-decorators";
|
|
2
|
+
import { Context, InternalError, NotFoundError, OperationKeys, } from "@decaf-ts/db-decorators";
|
|
3
3
|
import { Sequence } from "./../persistence/index.js";
|
|
4
4
|
import { Repository } from "./../repository/index.js";
|
|
5
5
|
/**
|
|
@@ -30,7 +30,7 @@ import { Repository } from "./../repository/index.js";
|
|
|
30
30
|
*/
|
|
31
31
|
export class RamSequence extends Sequence {
|
|
32
32
|
constructor(options, adapter) {
|
|
33
|
-
super(options);
|
|
33
|
+
super(options, adapter);
|
|
34
34
|
this.repo = Repository.forModel(RamSequenceModel, adapter.alias);
|
|
35
35
|
}
|
|
36
36
|
/**
|
|
@@ -39,10 +39,12 @@ export class RamSequence extends Sequence {
|
|
|
39
39
|
* doesn't exist yet, it returns the configured starting value.
|
|
40
40
|
* @return A promise that resolves to the current sequence value
|
|
41
41
|
*/
|
|
42
|
-
async current() {
|
|
42
|
+
async current(...args) {
|
|
43
|
+
const contextArgs = await Context.args(OperationKeys.READ, RamSequenceModel, args, this.adapter);
|
|
44
|
+
const ctx = contextArgs.context;
|
|
43
45
|
const { name, startWith } = this.options;
|
|
44
46
|
try {
|
|
45
|
-
const sequence = await this.repo.read(name);
|
|
47
|
+
const sequence = await this.repo.read(name, ctx);
|
|
46
48
|
return this.parse(sequence.current);
|
|
47
49
|
}
|
|
48
50
|
catch (e) {
|
|
@@ -59,16 +61,6 @@ export class RamSequence extends Sequence {
|
|
|
59
61
|
throw new InternalError(`Failed to retrieve current value for sequence ${name}: ${e}`);
|
|
60
62
|
}
|
|
61
63
|
}
|
|
62
|
-
/**
|
|
63
|
-
* @description Parses a value according to the sequence type
|
|
64
|
-
* @summary Converts a value to the appropriate type for the sequence (string, number, or bigint)
|
|
65
|
-
* using the base Sequence class's parseValue method.
|
|
66
|
-
* @param {string | number | bigint} value - The value to parse
|
|
67
|
-
* @return {string | number | bigint} The parsed value in the correct type
|
|
68
|
-
*/
|
|
69
|
-
parse(value) {
|
|
70
|
-
return Sequence.parseValue(this.options.type, value);
|
|
71
|
-
}
|
|
72
64
|
/**
|
|
73
65
|
* @description Increments the sequence value
|
|
74
66
|
* @summary Increases the current sequence value by the specified amount and persists
|
|
@@ -77,7 +69,7 @@ export class RamSequence extends Sequence {
|
|
|
77
69
|
* @param {number} [count] - Optional amount to increment by, defaults to the sequence's incrementBy value
|
|
78
70
|
* @return A promise that resolves to the new sequence value after incrementing
|
|
79
71
|
*/
|
|
80
|
-
async increment(current, count) {
|
|
72
|
+
async increment(current, count, ctx) {
|
|
81
73
|
const { type, incrementBy, name } = this.options;
|
|
82
74
|
let next;
|
|
83
75
|
const toIncrementBy = count || incrementBy;
|
|
@@ -98,16 +90,16 @@ export class RamSequence extends Sequence {
|
|
|
98
90
|
}
|
|
99
91
|
let seq;
|
|
100
92
|
const repo = this.repo.override({
|
|
101
|
-
ignoredValidationProperties: ["
|
|
93
|
+
ignoredValidationProperties: ["updatedAt"],
|
|
102
94
|
});
|
|
103
95
|
try {
|
|
104
|
-
seq = await repo.update(new RamSequenceModel({ id: name, current: next }));
|
|
96
|
+
seq = await repo.update(new RamSequenceModel({ id: name, current: next }), ctx);
|
|
105
97
|
}
|
|
106
98
|
catch (e) {
|
|
107
99
|
if (!(e instanceof NotFoundError)) {
|
|
108
100
|
throw e;
|
|
109
101
|
}
|
|
110
|
-
seq = await repo.create(new RamSequenceModel({ id: name, current: next }));
|
|
102
|
+
seq = await repo.create(new RamSequenceModel({ id: name, current: next }), ctx);
|
|
111
103
|
}
|
|
112
104
|
return seq.current;
|
|
113
105
|
}
|
|
@@ -117,9 +109,11 @@ export class RamSequence extends Sequence {
|
|
|
117
109
|
* configured increment amount. This is the main method used to get a new sequential value.
|
|
118
110
|
* @return A promise that resolves to the next value in the sequence
|
|
119
111
|
*/
|
|
120
|
-
async next() {
|
|
121
|
-
const
|
|
122
|
-
|
|
112
|
+
async next(...argz) {
|
|
113
|
+
const contextArgs = await Context.args(OperationKeys.UPDATE, RamSequenceModel, argz, this.adapter);
|
|
114
|
+
const { context, args } = contextArgs;
|
|
115
|
+
const current = await this.current(...args);
|
|
116
|
+
return this.increment(current, undefined, context);
|
|
123
117
|
}
|
|
124
118
|
/**
|
|
125
119
|
* @description Generates a range of sequential values
|
|
@@ -129,10 +123,12 @@ export class RamSequence extends Sequence {
|
|
|
129
123
|
* @param {number} count - The number of sequential values to generate
|
|
130
124
|
* @return A promise that resolves to an array of sequential values
|
|
131
125
|
*/
|
|
132
|
-
async range(count) {
|
|
133
|
-
const
|
|
126
|
+
async range(count, ...argz) {
|
|
127
|
+
const contextArgs = await Context.args(OperationKeys.UPDATE, RamSequenceModel, argz, this.adapter);
|
|
128
|
+
const { context, args } = contextArgs;
|
|
129
|
+
const current = (await this.current(...args));
|
|
134
130
|
const incrementBy = this.parse(this.options.incrementBy);
|
|
135
|
-
const next = await this.increment(current, this.parse(count) * incrementBy);
|
|
131
|
+
const next = await this.increment(current, this.parse(count) * incrementBy, context);
|
|
136
132
|
const range = [];
|
|
137
133
|
for (let i = 1; i <= count; i++) {
|
|
138
134
|
range.push(current + incrementBy * this.parse(i));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RamSequence.js","sourceRoot":"","sources":["../../../src/ram/RamSequence.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,oCAAiC;AAC5D,OAAO,
|
|
1
|
+
{"version":3,"file":"RamSequence.js","sourceRoot":"","sources":["../../../src/ram/RamSequence.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Condition, Paginator } from "../query";
|
|
2
|
-
import { RawRamQuery } from "./types";
|
|
2
|
+
import { RamContext, RawRamQuery } from "./types";
|
|
3
3
|
import { Model } from "@decaf-ts/decorator-validation";
|
|
4
4
|
import { Statement } from "../query/Statement";
|
|
5
|
-
import {
|
|
5
|
+
import { Adapter } from "../persistence/index";
|
|
6
6
|
/**
|
|
7
7
|
* @description RAM-specific query statement builder
|
|
8
8
|
* @summary Extends the base Statement class to provide query building functionality for the RAM adapter.
|
|
@@ -30,8 +30,8 @@ import { RamAdapter } from "./RamAdapter";
|
|
|
30
30
|
* .execute();
|
|
31
31
|
* ```
|
|
32
32
|
*/
|
|
33
|
-
export declare class RamStatement<M extends Model, R
|
|
34
|
-
constructor(adapter:
|
|
33
|
+
export declare class RamStatement<M extends Model, R, A extends Adapter<M, any, RawRamQuery<any>, RamContext>> extends Statement<M, A, R, RawRamQuery<any>> {
|
|
34
|
+
constructor(adapter: A);
|
|
35
35
|
/**
|
|
36
36
|
* @description Creates a sort comparator function
|
|
37
37
|
* @summary Generates a function that compares two model instances based on the orderBy criteria.
|
|
@@ -46,7 +46,7 @@ export declare class RamStatement<M extends Model, R> extends Statement<RawRamQu
|
|
|
46
46
|
* (select, from, where, limit, offset, sort) into the final query structure.
|
|
47
47
|
* @return {RawRamQuery<M>} The constructed RAM query object
|
|
48
48
|
*/
|
|
49
|
-
protected build(): RawRamQuery<
|
|
49
|
+
protected build(): RawRamQuery<any>;
|
|
50
50
|
/**
|
|
51
51
|
* @description Creates a paginator for the query
|
|
52
52
|
* @summary Builds the query and wraps it in a RamPaginator to enable pagination of results.
|
|
@@ -54,7 +54,7 @@ export declare class RamStatement<M extends Model, R> extends Statement<RawRamQu
|
|
|
54
54
|
* @param {number} size - The page size (number of results per page)
|
|
55
55
|
* @return {Promise<Paginator<M, R, RawRamQuery<M>>>} A promise that resolves to a paginator for the query
|
|
56
56
|
*/
|
|
57
|
-
paginate(size: number): Promise<Paginator<M, R, RawRamQuery<
|
|
57
|
+
paginate(size: number): Promise<Paginator<M, R, RawRamQuery<any>>>;
|
|
58
58
|
/**
|
|
59
59
|
* @description Parses a condition into a RAM query predicate
|
|
60
60
|
* @summary Converts a Condition object into a predicate function that can be used
|
|
@@ -82,5 +82,5 @@ export declare class RamStatement<M extends Model, R> extends Statement<RawRamQu
|
|
|
82
82
|
* end
|
|
83
83
|
* RamStatement-->>Caller: Return query with where predicate
|
|
84
84
|
*/
|
|
85
|
-
parseCondition
|
|
85
|
+
protected parseCondition(condition: Condition<M>): RawRamQuery<any>;
|
|
86
86
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RamStatement.js","sourceRoot":"","sources":["../../../src/ram/RamStatement.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,aAAa,EACb,QAAQ,EAER,UAAU,GACX,4BAAiB;AAGlB,OAAO,EAAE,YAAY,EAAE,0BAAuB;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,gCAA2B;
|
|
1
|
+
{"version":3,"file":"RamStatement.js","sourceRoot":"","sources":["../../../src/ram/RamStatement.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { Model } from "@decaf-ts/decorator-validation";
|
|
2
|
-
import { Repo } from "../repository";
|
|
3
2
|
import { RelationsMetadata } from "../model";
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
3
|
+
import { RamRepository } from "./types";
|
|
4
|
+
import { RamContext } from "./types";
|
|
6
5
|
/**
|
|
7
6
|
* @description Sets the created by field on a model during RAM create/update operations
|
|
8
7
|
* @summary Automatically populates a model field with the UUID from the context during create or update operations.
|
|
@@ -22,4 +21,4 @@ import { Context } from "@decaf-ts/db-decorators";
|
|
|
22
21
|
* @memberOf module:core
|
|
23
22
|
* @category Ram
|
|
24
23
|
*/
|
|
25
|
-
export declare function createdByOnRamCreateUpdate<M extends Model, R extends
|
|
24
|
+
export declare function createdByOnRamCreateUpdate<M extends Model, R extends RamRepository<M>>(this: R, context: RamContext, data: RelationsMetadata, key: keyof M, model: M): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../../src/ram/handlers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../../src/ram/handlers.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,kCAAuB;AAGlD;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAK9C,OAAmB,EACnB,IAAuB,EACvB,GAAY,EACZ,KAAQ;IAER,MAAM,IAAI,GAAW,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACzC,IAAI,CAAC,IAAI;QACP,MAAM,IAAI,gBAAgB,CACxB,mDAAmD,CACpD,CAAC;IACJ,KAAK,CAAC,GAAG,CAAC,GAAG,IAAkB,CAAC;AAClC,CAAC"}
|
package/lib/esm/ram/index.d.ts
CHANGED
package/lib/esm/ram/index.js
CHANGED
|
@@ -4,7 +4,6 @@ RamAdapter.decoration();
|
|
|
4
4
|
export * from "./model/index.js";
|
|
5
5
|
export * from "./constants.js";
|
|
6
6
|
export * from "./handlers.js";
|
|
7
|
-
export * from "./RamContext.js";
|
|
8
7
|
export * from "./RamPaginator.js";
|
|
9
8
|
export * from "./RamStatement.js";
|
|
10
9
|
export * from "./RamSequence.js";
|
package/lib/esm/ram/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ram/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,wBAAqB;AAE1C,8CAA8C;AAC9C,UAAU,CAAC,UAAU,EAAE,CAAC;AAExB,iCAAwB;AACxB,+BAA4B;AAC5B,8BAA2B;AAC3B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ram/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,wBAAqB;AAE1C,8CAA8C;AAC9C,UAAU,CAAC,UAAU,EAAE,CAAC;AAExB,iCAAwB;AACxB,+BAA4B;AAC5B,8BAA2B;AAC3B,kCAA+B;AAC/B,kCAA+B;AAC/B,iCAA8B;AAC9B,2BAAwB;AACxB,0BAA0B;AAC1B,gCAA6B"}
|
package/lib/esm/ram/types.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Model } from "@decaf-ts/decorator-validation";
|
|
2
2
|
import { Repository } from "../repository";
|
|
3
3
|
import { Context, RepositoryFlags } from "@decaf-ts/db-decorators";
|
|
4
|
-
import { RamAdapter } from "./RamAdapter";
|
|
5
4
|
import { Constructor } from "@decaf-ts/decoration";
|
|
5
|
+
import { Adapter } from "../persistence";
|
|
6
6
|
/**
|
|
7
7
|
* @description In-memory storage structure for the RAM adapter
|
|
8
8
|
* @summary A nested Map structure that stores all entities by their table name and primary key.
|
|
@@ -28,7 +28,7 @@ export type RamStorage = Map<string, Map<string | number, any>>;
|
|
|
28
28
|
* @memberOf module:core
|
|
29
29
|
* @category Ram
|
|
30
30
|
*/
|
|
31
|
-
export type RawRamQuery<M extends Model> = {
|
|
31
|
+
export type RawRamQuery<M extends Model = any> = {
|
|
32
32
|
select: undefined | (keyof M)[];
|
|
33
33
|
from: Constructor<M>;
|
|
34
34
|
where: (el: M) => boolean;
|
|
@@ -48,16 +48,8 @@ export type RawRamQuery<M extends Model> = {
|
|
|
48
48
|
export interface RamFlags extends RepositoryFlags {
|
|
49
49
|
UUID: string;
|
|
50
50
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
* @summary A specialized repository type for working with models in the RAM adapter.
|
|
54
|
-
* It combines the model type with RAM-specific query, adapter, flags, and context types.
|
|
55
|
-
* @template M - The model type managed by the repository
|
|
56
|
-
* @typedef {Repository<M, RawRamQuery<any>, RamAdapter, RamFlags, Context<RamFlags>>} RamRepository
|
|
57
|
-
* @memberOf module:core
|
|
58
|
-
* @category Ram
|
|
59
|
-
*/
|
|
60
|
-
export type RamRepository<M extends Model<true | false>> = Repository<M, RawRamQuery<any>, RamAdapter, RamFlags, Context<RamFlags>>;
|
|
51
|
+
export type RamRepository<M extends Model<boolean>> = Repository<M, Adapter<RamConfig, RamStorage, RawRamQuery<any>, RamContext>>;
|
|
52
|
+
export type RamContext = Context<RamFlags>;
|
|
61
53
|
export type RamConfig = {
|
|
62
54
|
user: string;
|
|
63
55
|
};
|