@decaf-ts/core 0.1.2 → 0.2.0
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 +4 -4
- package/dist/core.bundle.min.js +1 -1
- package/dist/esm/core.bundle.min.esm.js +1 -1
- package/lib/esm/identity/decorators.d.ts +4 -10
- package/lib/esm/identity/decorators.js +57 -1
- package/lib/esm/identity/index.js +3 -1
- package/lib/esm/identity/utils.d.ts +2 -0
- package/lib/esm/identity/utils.js +6 -0
- package/lib/esm/index.d.ts +3 -1
- package/lib/esm/index.js +30 -1
- package/lib/esm/interfaces/Builder.js +3 -0
- package/lib/esm/interfaces/Executor.d.ts +3 -1
- package/lib/esm/interfaces/Executor.js +3 -0
- package/lib/esm/interfaces/Observable.js +3 -0
- package/lib/esm/interfaces/Observer.js +3 -0
- package/lib/esm/interfaces/Queriable.d.ts +6 -0
- package/lib/esm/interfaces/Queriable.js +3 -0
- package/lib/esm/interfaces/RawExecutor.d.ts +4 -3
- package/lib/esm/interfaces/RawExecutor.js +3 -0
- package/lib/esm/interfaces/Sequence.d.ts +3 -2
- package/lib/esm/interfaces/Sequence.js +10 -0
- package/lib/esm/interfaces/SequenceOptions.d.ts +9 -1
- package/lib/esm/interfaces/SequenceOptions.js +20 -0
- package/lib/esm/interfaces/index.d.ts +1 -0
- package/lib/esm/interfaces/index.js +10 -1
- package/lib/esm/model/BaseModel.d.ts +2 -3
- package/lib/esm/model/BaseModel.js +28 -1
- package/lib/esm/model/decorators.d.ts +6 -5
- package/lib/esm/model/decorators.js +55 -1
- package/lib/esm/model/index.js +4 -1
- package/lib/esm/persistence/Adapter.d.ts +43 -14
- package/lib/esm/persistence/Adapter.js +153 -1
- package/lib/esm/persistence/constants.d.ts +11 -1
- package/lib/esm/persistence/constants.js +14 -1
- package/lib/esm/persistence/decorators.d.ts +1 -2
- package/lib/esm/persistence/decorators.js +10 -1
- package/lib/esm/persistence/errors.d.ts +4 -0
- package/lib/esm/persistence/errors.js +8 -0
- package/lib/esm/persistence/index.d.ts +1 -0
- package/lib/esm/persistence/index.js +7 -1
- package/lib/esm/persistence/utils.d.ts +2 -2
- package/lib/esm/persistence/utils.js +12 -1
- package/lib/esm/query/Clause.d.ts +43 -0
- package/lib/esm/query/Clause.js +76 -0
- package/lib/esm/query/ClauseFactory.d.ts +71 -0
- package/lib/esm/query/ClauseFactory.js +7 -0
- package/lib/esm/query/Condition.d.ts +75 -0
- package/lib/esm/query/Condition.js +248 -0
- package/lib/esm/query/Query.d.ts +43 -0
- package/lib/esm/query/Query.js +55 -0
- package/lib/esm/query/Statement.d.ts +49 -0
- package/lib/esm/query/Statement.js +163 -0
- package/lib/esm/query/clauses/FromClause.d.ts +45 -0
- package/lib/esm/query/clauses/FromClause.js +60 -0
- package/lib/esm/query/clauses/GroupByClause.d.ts +21 -0
- package/lib/esm/query/clauses/GroupByClause.js +20 -0
- package/lib/esm/query/clauses/InsertClause.d.ts +37 -0
- package/lib/esm/query/clauses/InsertClause.js +56 -0
- package/lib/esm/query/clauses/LimitClause.d.ts +29 -0
- package/lib/esm/query/clauses/LimitClause.js +28 -0
- package/lib/esm/query/clauses/OffsetClause.d.ts +21 -0
- package/lib/esm/query/clauses/OffsetClause.js +20 -0
- package/lib/esm/query/clauses/OrderByClause.d.ts +37 -0
- package/lib/esm/query/clauses/OrderByClause.js +40 -0
- package/lib/esm/query/clauses/SelectClause.d.ts +47 -0
- package/lib/esm/query/clauses/SelectClause.js +63 -0
- package/lib/esm/query/clauses/SelectorBasedClause.d.ts +25 -0
- package/lib/esm/query/clauses/SelectorBasedClause.js +45 -0
- package/lib/esm/query/clauses/ValuesClause.d.ts +21 -0
- package/lib/esm/query/clauses/ValuesClause.js +37 -0
- package/lib/esm/query/clauses/WhereClause.d.ts +46 -0
- package/lib/esm/query/clauses/WhereClause.js +72 -0
- package/lib/esm/query/clauses/index.d.ts +10 -0
- package/lib/esm/query/clauses/index.js +12 -0
- package/lib/esm/query/constants.d.ts +79 -0
- package/lib/esm/query/constants.js +88 -0
- package/lib/esm/query/errors.d.ts +4 -0
- package/lib/esm/query/errors.js +8 -0
- package/lib/esm/query/index.d.ts +11 -0
- package/lib/esm/query/index.js +13 -0
- package/lib/esm/query/options.d.ts +371 -0
- package/lib/esm/query/options.js +3 -0
- package/lib/esm/query/selectors.d.ts +38 -0
- package/lib/esm/query/selectors.js +3 -0
- package/lib/esm/query/types.d.ts +2 -0
- package/lib/esm/query/types.js +3 -0
- package/lib/esm/repository/Repository.d.ts +27 -11
- package/lib/esm/repository/Repository.js +246 -1
- package/lib/esm/repository/constants.js +31 -1
- package/lib/esm/repository/decorators.d.ts +2 -3
- package/lib/esm/repository/decorators.js +27 -1
- package/lib/esm/repository/errors.js +16 -1
- package/lib/esm/repository/index.d.ts +1 -0
- package/lib/esm/repository/index.js +9 -1
- package/lib/esm/repository/injectables.d.ts +5 -0
- package/lib/esm/repository/injectables.js +32 -0
- package/lib/esm/repository/types.js +3 -0
- package/lib/esm/repository/utils.d.ts +4 -3
- package/lib/esm/repository/utils.js +45 -1
- package/lib/esm/validators/ClauseSequenceValidator.d.ts +28 -0
- package/lib/esm/validators/ClauseSequenceValidator.js +95 -0
- package/lib/esm/validators/decorators.d.ts +10 -0
- package/lib/esm/validators/decorators.js +25 -0
- package/lib/esm/validators/index.d.ts +2 -0
- package/lib/esm/validators/index.js +4 -0
- package/lib/identity/decorators.cjs +61 -1
- package/lib/identity/decorators.d.ts +4 -10
- package/lib/identity/index.cjs +19 -1
- package/lib/identity/utils.cjs +9 -0
- package/lib/identity/utils.d.ts +2 -0
- package/lib/index.cjs +47 -1
- package/lib/index.d.ts +3 -1
- package/lib/interfaces/Builder.cjs +4 -1
- package/lib/interfaces/Executor.cjs +4 -1
- package/lib/interfaces/Executor.d.ts +3 -1
- package/lib/interfaces/Observable.cjs +4 -1
- package/lib/interfaces/Observer.cjs +4 -1
- package/lib/interfaces/Queriable.cjs +4 -0
- package/lib/interfaces/Queriable.d.ts +6 -0
- package/lib/interfaces/RawExecutor.cjs +4 -1
- package/lib/interfaces/RawExecutor.d.ts +4 -3
- package/lib/interfaces/Sequence.cjs +11 -1
- package/lib/interfaces/Sequence.d.ts +3 -2
- package/lib/interfaces/SequenceOptions.cjs +23 -1
- package/lib/interfaces/SequenceOptions.d.ts +9 -1
- package/lib/interfaces/index.cjs +26 -1
- package/lib/interfaces/index.d.ts +1 -0
- package/lib/model/BaseModel.cjs +32 -1
- package/lib/model/BaseModel.d.ts +2 -3
- package/lib/model/decorators.cjs +62 -1
- package/lib/model/decorators.d.ts +6 -5
- package/lib/model/index.cjs +20 -1
- package/lib/persistence/Adapter.cjs +157 -1
- package/lib/persistence/Adapter.d.ts +43 -14
- package/lib/persistence/constants.cjs +17 -1
- package/lib/persistence/constants.d.ts +11 -1
- package/lib/persistence/decorators.cjs +13 -1
- package/lib/persistence/decorators.d.ts +1 -2
- package/lib/persistence/errors.cjs +12 -0
- package/lib/persistence/errors.d.ts +4 -0
- package/lib/persistence/index.cjs +23 -1
- package/lib/persistence/index.d.ts +1 -0
- package/lib/persistence/utils.cjs +16 -1
- package/lib/persistence/utils.d.ts +2 -2
- package/lib/query/Clause.cjs +80 -0
- package/lib/query/Clause.d.ts +43 -0
- package/lib/query/ClauseFactory.cjs +11 -0
- package/lib/query/ClauseFactory.d.ts +71 -0
- package/lib/query/Condition.cjs +252 -0
- package/lib/query/Condition.d.ts +75 -0
- package/lib/query/Query.cjs +59 -0
- package/lib/query/Query.d.ts +43 -0
- package/lib/query/Statement.cjs +167 -0
- package/lib/query/Statement.d.ts +49 -0
- package/lib/query/clauses/FromClause.cjs +64 -0
- package/lib/query/clauses/FromClause.d.ts +45 -0
- package/lib/query/clauses/GroupByClause.cjs +24 -0
- package/lib/query/clauses/GroupByClause.d.ts +21 -0
- package/lib/query/clauses/InsertClause.cjs +60 -0
- package/lib/query/clauses/InsertClause.d.ts +37 -0
- package/lib/query/clauses/LimitClause.cjs +32 -0
- package/lib/query/clauses/LimitClause.d.ts +29 -0
- package/lib/query/clauses/OffsetClause.cjs +24 -0
- package/lib/query/clauses/OffsetClause.d.ts +21 -0
- package/lib/query/clauses/OrderByClause.cjs +44 -0
- package/lib/query/clauses/OrderByClause.d.ts +37 -0
- package/lib/query/clauses/SelectClause.cjs +67 -0
- package/lib/query/clauses/SelectClause.d.ts +47 -0
- package/lib/query/clauses/SelectorBasedClause.cjs +49 -0
- package/lib/query/clauses/SelectorBasedClause.d.ts +25 -0
- package/lib/query/clauses/ValuesClause.cjs +41 -0
- package/lib/query/clauses/ValuesClause.d.ts +21 -0
- package/lib/query/clauses/WhereClause.cjs +76 -0
- package/lib/query/clauses/WhereClause.d.ts +46 -0
- package/lib/query/clauses/index.cjs +28 -0
- package/lib/query/clauses/index.d.ts +10 -0
- package/lib/query/constants.cjs +91 -0
- package/lib/query/constants.d.ts +79 -0
- package/lib/query/errors.cjs +12 -0
- package/lib/query/errors.d.ts +4 -0
- package/lib/query/index.cjs +29 -0
- package/lib/query/index.d.ts +11 -0
- package/lib/query/options.cjs +4 -0
- package/lib/query/options.d.ts +371 -0
- package/lib/query/selectors.cjs +4 -0
- package/lib/query/selectors.d.ts +38 -0
- package/lib/query/types.cjs +4 -0
- package/lib/query/types.d.ts +2 -0
- package/lib/repository/Repository.cjs +250 -1
- package/lib/repository/Repository.d.ts +27 -11
- package/lib/repository/constants.cjs +34 -1
- package/lib/repository/decorators.cjs +30 -1
- package/lib/repository/decorators.d.ts +2 -3
- package/lib/repository/errors.cjs +20 -1
- package/lib/repository/index.cjs +25 -1
- package/lib/repository/index.d.ts +1 -0
- package/lib/repository/injectables.cjs +36 -0
- package/lib/repository/injectables.d.ts +5 -0
- package/lib/repository/types.cjs +4 -1
- package/lib/repository/utils.cjs +50 -1
- package/lib/repository/utils.d.ts +6 -0
- package/lib/validators/ClauseSequenceValidator.cjs +98 -0
- package/lib/validators/ClauseSequenceValidator.d.ts +28 -0
- package/lib/validators/decorators.cjs +28 -0
- package/lib/validators/decorators.d.ts +10 -0
- package/lib/validators/index.cjs +20 -0
- package/lib/validators/index.d.ts +2 -0
- package/package.json +14 -11
|
@@ -1,15 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Model } from "@decaf-ts/decorator-validation";
|
|
2
2
|
import { SequenceOptions } from "../interfaces/SequenceOptions";
|
|
3
|
-
import { Sequence } from "../interfaces/Sequence";
|
|
4
|
-
import { DBModel } from "@decaf-ts/db-decorators";
|
|
5
3
|
import { Repository } from "../repository/Repository";
|
|
6
|
-
export type IdOnCreateData = {
|
|
7
|
-
sequence?: Constructor<Sequence>;
|
|
8
|
-
options?: SequenceOptions;
|
|
9
|
-
};
|
|
10
4
|
/**
|
|
11
5
|
* @summary Primary Key Decorator
|
|
12
|
-
* @description Marks the property as the {@link
|
|
6
|
+
* @description Marks the property as the {@link Model}s primary key.
|
|
13
7
|
* Also marks the property as {@link unique} as {@required} and ensures the index is created properly according to the provided {@link Sequence}
|
|
14
8
|
*
|
|
15
9
|
*
|
|
@@ -25,5 +19,5 @@ export type IdOnCreateData = {
|
|
|
25
19
|
* @param key
|
|
26
20
|
* @param model
|
|
27
21
|
*/
|
|
28
|
-
export declare function pkOnCreate<
|
|
29
|
-
export declare function pk(
|
|
22
|
+
export declare function pkOnCreate<M extends Model, V extends Repository<M, any>>(this: V, data: SequenceOptions, key: string, model: M): Promise<void>;
|
|
23
|
+
export declare function pk(opts?: Omit<SequenceOptions, "cycle" | "startWith" | "incrementBy">): (target: object, propertyKey?: any, descriptor?: any) => void;
|
|
@@ -1 +1,57 @@
|
|
|
1
|
-
import{required}from"@decaf-ts/decorator-validation";
|
|
1
|
+
import { propMetadata, required } from "@decaf-ts/decorator-validation";
|
|
2
|
+
import { DefaultSequenceOptions, } from "../interfaces/SequenceOptions";
|
|
3
|
+
import { DBKeys, InternalError, onCreate, readonly, } from "@decaf-ts/db-decorators";
|
|
4
|
+
import { apply } from "@decaf-ts/reflection";
|
|
5
|
+
import { Repository } from "../repository/Repository";
|
|
6
|
+
import { index } from "../model/decorators";
|
|
7
|
+
import { sequenceNameForModel } from "./utils";
|
|
8
|
+
/**
|
|
9
|
+
* @summary Primary Key Decorator
|
|
10
|
+
* @description Marks the property as the {@link Model}s primary key.
|
|
11
|
+
* Also marks the property as {@link unique} as {@required} and ensures the index is created properly according to the provided {@link Sequence}
|
|
12
|
+
*
|
|
13
|
+
*
|
|
14
|
+
*
|
|
15
|
+
* @function pk
|
|
16
|
+
*
|
|
17
|
+
* @memberOf module:wallet-db.Decorators
|
|
18
|
+
*
|
|
19
|
+
* @see unique
|
|
20
|
+
* @see required
|
|
21
|
+
* @see on
|
|
22
|
+
* @param data
|
|
23
|
+
* @param key
|
|
24
|
+
* @param model
|
|
25
|
+
*/
|
|
26
|
+
export async function pkOnCreate(data, key, model) {
|
|
27
|
+
if (!data.type || model[key]) {
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
const setPrimaryKeyValue = function (target, propertyKey, value) {
|
|
31
|
+
Object.defineProperty(target, propertyKey, {
|
|
32
|
+
enumerable: true,
|
|
33
|
+
writable: false,
|
|
34
|
+
configurable: true,
|
|
35
|
+
value: value,
|
|
36
|
+
});
|
|
37
|
+
};
|
|
38
|
+
if (!data.name)
|
|
39
|
+
data.name = sequenceNameForModel(model, "pk");
|
|
40
|
+
let sequence;
|
|
41
|
+
try {
|
|
42
|
+
sequence = await this.adapter.Sequence(data);
|
|
43
|
+
}
|
|
44
|
+
catch (e) {
|
|
45
|
+
throw new InternalError(`Failed to instantiate Sequence ${data.name}: ${e}`);
|
|
46
|
+
}
|
|
47
|
+
const next = await sequence.next();
|
|
48
|
+
setPrimaryKeyValue(model, key, next);
|
|
49
|
+
}
|
|
50
|
+
export function pk(opts = DefaultSequenceOptions) {
|
|
51
|
+
opts = Object.assign({}, DefaultSequenceOptions, opts);
|
|
52
|
+
return apply(index(), required(), readonly(),
|
|
53
|
+
// type([String.name, Number.name, BigInt.name]),
|
|
54
|
+
propMetadata(Repository.key(DBKeys.ID), opts), onCreate(pkOnCreate, opts));
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9pZGVudGl0eS9kZWNvcmF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFTLE1BQU0sZ0NBQWdDLENBQUM7QUFDL0UsT0FBTyxFQUNMLHNCQUFzQixHQUV2QixNQUFNLCtCQUErQixDQUFDO0FBRXZDLE9BQU8sRUFDTCxNQUFNLEVBQ04sYUFBYSxFQUNiLFFBQVEsRUFDUixRQUFRLEdBQ1QsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM1QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFL0M7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUJHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxVQUFVLENBRTlCLElBQXFCLEVBQ3JCLEdBQVcsRUFDWCxLQUFRO0lBRVIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUssS0FBNkIsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3RELE9BQU87SUFDVCxDQUFDO0lBRUQsTUFBTSxrQkFBa0IsR0FBRyxVQUN6QixNQUFTLEVBQ1QsV0FBbUIsRUFDbkIsS0FBK0I7UUFFL0IsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFO1lBQ3pDLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLFFBQVEsRUFBRSxLQUFLO1lBQ2YsWUFBWSxFQUFFLElBQUk7WUFDbEIsS0FBSyxFQUFFLEtBQUs7U0FDYixDQUFDLENBQUM7SUFDTCxDQUFDLENBQUM7SUFDRixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUk7UUFBRSxJQUFJLENBQUMsSUFBSSxHQUFHLG9CQUFvQixDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM5RCxJQUFJLFFBQWtCLENBQUM7SUFDdkIsSUFBSSxDQUFDO1FBQ0gsUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUFDLE9BQU8sQ0FBTSxFQUFFLENBQUM7UUFDaEIsTUFBTSxJQUFJLGFBQWEsQ0FDckIsa0NBQWtDLElBQUksQ0FBQyxJQUFJLEtBQUssQ0FBQyxFQUFFLENBQ3BELENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxJQUFJLEdBQUcsTUFBTSxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDbkMsa0JBQWtCLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUN2QyxDQUFDO0FBRUQsTUFBTSxVQUFVLEVBQUUsQ0FDaEIsT0FHSSxzQkFBc0I7SUFFMUIsSUFBSSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLHNCQUFzQixFQUFFLElBQUksQ0FBb0IsQ0FBQztJQUMxRSxPQUFPLEtBQUssQ0FDVixLQUFLLEVBQUUsRUFDUCxRQUFRLEVBQUUsRUFDVixRQUFRLEVBQUU7SUFDVixpREFBaUQ7SUFDakQsWUFBWSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQXVCLENBQUMsRUFDaEUsUUFBUSxDQUFDLFVBQVUsRUFBRSxJQUF1QixDQUFDLENBQzlDLENBQUM7QUFDSixDQUFDIiwiZmlsZSI6ImlkZW50aXR5L2RlY29yYXRvcnMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwcm9wTWV0YWRhdGEsIHJlcXVpcmVkLCBNb2RlbCB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7XG4gIERlZmF1bHRTZXF1ZW5jZU9wdGlvbnMsXG4gIFNlcXVlbmNlT3B0aW9ucyxcbn0gZnJvbSBcIi4uL2ludGVyZmFjZXMvU2VxdWVuY2VPcHRpb25zXCI7XG5pbXBvcnQgeyBTZXF1ZW5jZSB9IGZyb20gXCIuLi9pbnRlcmZhY2VzL1NlcXVlbmNlXCI7XG5pbXBvcnQge1xuICBEQktleXMsXG4gIEludGVybmFsRXJyb3IsXG4gIG9uQ3JlYXRlLFxuICByZWFkb25seSxcbn0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBhcHBseSB9IGZyb20gXCJAZGVjYWYtdHMvcmVmbGVjdGlvblwiO1xuaW1wb3J0IHsgUmVwb3NpdG9yeSB9IGZyb20gXCIuLi9yZXBvc2l0b3J5L1JlcG9zaXRvcnlcIjtcbmltcG9ydCB7IGluZGV4IH0gZnJvbSBcIi4uL21vZGVsL2RlY29yYXRvcnNcIjtcbmltcG9ydCB7IHNlcXVlbmNlTmFtZUZvck1vZGVsIH0gZnJvbSBcIi4vdXRpbHNcIjtcblxuLyoqXG4gKiBAc3VtbWFyeSBQcmltYXJ5IEtleSBEZWNvcmF0b3JcbiAqIEBkZXNjcmlwdGlvbiBNYXJrcyB0aGUgcHJvcGVydHkgYXMgdGhlIHtAbGluayBNb2RlbH1zIHByaW1hcnkga2V5LlxuICogIEFsc28gbWFya3MgdGhlIHByb3BlcnR5IGFzIHtAbGluayB1bmlxdWV9IGFzIHtAcmVxdWlyZWR9IGFuZCBlbnN1cmVzIHRoZSBpbmRleCBpcyBjcmVhdGVkIHByb3Blcmx5IGFjY29yZGluZyB0byB0aGUgcHJvdmlkZWQge0BsaW5rIFNlcXVlbmNlfVxuICpcbiAqXG4gKlxuICogQGZ1bmN0aW9uIHBrXG4gKlxuICogQG1lbWJlck9mIG1vZHVsZTp3YWxsZXQtZGIuRGVjb3JhdG9yc1xuICpcbiAqIEBzZWUgdW5pcXVlXG4gKiBAc2VlIHJlcXVpcmVkXG4gKiBAc2VlIG9uXG4gKiBAcGFyYW0gZGF0YVxuICogQHBhcmFtIGtleVxuICogQHBhcmFtIG1vZGVsXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBwa09uQ3JlYXRlPE0gZXh0ZW5kcyBNb2RlbCwgViBleHRlbmRzIFJlcG9zaXRvcnk8TSwgYW55Pj4oXG4gIHRoaXM6IFYsXG4gIGRhdGE6IFNlcXVlbmNlT3B0aW9ucyxcbiAga2V5OiBzdHJpbmcsXG4gIG1vZGVsOiBNXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgaWYgKCFkYXRhLnR5cGUgfHwgKG1vZGVsIGFzIFJlY29yZDxzdHJpbmcsIGFueT4pW2tleV0pIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBzZXRQcmltYXJ5S2V5VmFsdWUgPSBmdW5jdGlvbiA8TSBleHRlbmRzIE1vZGVsPihcbiAgICB0YXJnZXQ6IE0sXG4gICAgcHJvcGVydHlLZXk6IHN0cmluZyxcbiAgICB2YWx1ZTogc3RyaW5nIHwgbnVtYmVyIHwgYmlnaW50XG4gICkge1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIHByb3BlcnR5S2V5LCB7XG4gICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgd3JpdGFibGU6IGZhbHNlLFxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgdmFsdWU6IHZhbHVlLFxuICAgIH0pO1xuICB9O1xuICBpZiAoIWRhdGEubmFtZSkgZGF0YS5uYW1lID0gc2VxdWVuY2VOYW1lRm9yTW9kZWwobW9kZWwsIFwicGtcIik7XG4gIGxldCBzZXF1ZW5jZTogU2VxdWVuY2U7XG4gIHRyeSB7XG4gICAgc2VxdWVuY2UgPSBhd2FpdCB0aGlzLmFkYXB0ZXIuU2VxdWVuY2UoZGF0YSk7XG4gIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFxuICAgICAgYEZhaWxlZCB0byBpbnN0YW50aWF0ZSBTZXF1ZW5jZSAke2RhdGEubmFtZX06ICR7ZX1gXG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IG5leHQgPSBhd2FpdCBzZXF1ZW5jZS5uZXh0KCk7XG4gIHNldFByaW1hcnlLZXlWYWx1ZShtb2RlbCwga2V5LCBuZXh0KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBrKFxuICBvcHRzOiBPbWl0PFxuICAgIFNlcXVlbmNlT3B0aW9ucyxcbiAgICBcImN5Y2xlXCIgfCBcInN0YXJ0V2l0aFwiIHwgXCJpbmNyZW1lbnRCeVwiXG4gID4gPSBEZWZhdWx0U2VxdWVuY2VPcHRpb25zXG4pIHtcbiAgb3B0cyA9IE9iamVjdC5hc3NpZ24oe30sIERlZmF1bHRTZXF1ZW5jZU9wdGlvbnMsIG9wdHMpIGFzIFNlcXVlbmNlT3B0aW9ucztcbiAgcmV0dXJuIGFwcGx5KFxuICAgIGluZGV4KCksXG4gICAgcmVxdWlyZWQoKSxcbiAgICByZWFkb25seSgpLFxuICAgIC8vIHR5cGUoW1N0cmluZy5uYW1lLCBOdW1iZXIubmFtZSwgQmlnSW50Lm5hbWVdKSxcbiAgICBwcm9wTWV0YWRhdGEoUmVwb3NpdG9yeS5rZXkoREJLZXlzLklEKSwgb3B0cyBhcyBTZXF1ZW5jZU9wdGlvbnMpLFxuICAgIG9uQ3JlYXRlKHBrT25DcmVhdGUsIG9wdHMgYXMgU2VxdWVuY2VPcHRpb25zKVxuICApO1xufVxuIl19
|
|
@@ -1 +1,3 @@
|
|
|
1
|
-
export*from"./decorators";
|
|
1
|
+
export * from "./decorators";
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9pZGVudGl0eS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGNBQWMsQ0FBQyIsImZpbGUiOiJpZGVudGl0eS9pbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2RlY29yYXRvcnNcIjtcbiJdfQ==
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { getTableName } from "../repository";
|
|
2
|
+
export function sequenceNameForModel(model, ...args) {
|
|
3
|
+
return [getTableName(model), ...args].join("_");
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9pZGVudGl0eS91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTdDLE1BQU0sVUFBVSxvQkFBb0IsQ0FDbEMsS0FBUSxFQUNSLEdBQUcsSUFBYztJQUVqQixPQUFPLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2xELENBQUMiLCJmaWxlIjoiaWRlbnRpdHkvdXRpbHMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb2RlbCB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7IGdldFRhYmxlTmFtZSB9IGZyb20gXCIuLi9yZXBvc2l0b3J5XCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXF1ZW5jZU5hbWVGb3JNb2RlbDxNIGV4dGVuZHMgTW9kZWw+KFxuICBtb2RlbDogTSxcbiAgLi4uYXJnczogc3RyaW5nW11cbikge1xuICByZXR1cm4gW2dldFRhYmxlTmFtZShtb2RlbCksIC4uLmFyZ3NdLmpvaW4oXCJfXCIpO1xufVxuIl19
|
package/lib/esm/index.d.ts
CHANGED
|
@@ -13,11 +13,13 @@ export * from "./identity";
|
|
|
13
13
|
export * from "./interfaces";
|
|
14
14
|
export * from "./model";
|
|
15
15
|
export * from "./persistence";
|
|
16
|
+
export * from "./query";
|
|
16
17
|
export * from "./repository";
|
|
18
|
+
export * from "./validators";
|
|
17
19
|
/**
|
|
18
20
|
* @summary stores the current package version
|
|
19
21
|
* @description this is how you should document a constant
|
|
20
22
|
* @const VERSION
|
|
21
23
|
* @memberOf module:ts-workspace
|
|
22
24
|
*/
|
|
23
|
-
export declare const VERSION = "0.1.
|
|
25
|
+
export declare const VERSION = "0.1.3";
|
package/lib/esm/index.js
CHANGED
|
@@ -1 +1,30 @@
|
|
|
1
|
-
|
|
1
|
+
import { InjectablesRegistry } from "./repository";
|
|
2
|
+
import { Injectables } from "@decaf-ts/injectable-decorators";
|
|
3
|
+
/**
|
|
4
|
+
* @summary Module summary
|
|
5
|
+
* @description Module description
|
|
6
|
+
* @module ts-workspace
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* @summary Namespace summary
|
|
10
|
+
* @description Namespace description
|
|
11
|
+
* @namespace Namespace
|
|
12
|
+
* @memberOf module:ts-workspace
|
|
13
|
+
*/
|
|
14
|
+
export * from "./identity";
|
|
15
|
+
export * from "./interfaces";
|
|
16
|
+
export * from "./model";
|
|
17
|
+
export * from "./persistence";
|
|
18
|
+
export * from "./query";
|
|
19
|
+
export * from "./repository";
|
|
20
|
+
export * from "./validators";
|
|
21
|
+
Injectables.setRegistry(new InjectablesRegistry());
|
|
22
|
+
/**
|
|
23
|
+
* @summary stores the current package version
|
|
24
|
+
* @description this is how you should document a constant
|
|
25
|
+
* @const VERSION
|
|
26
|
+
* @memberOf module:ts-workspace
|
|
27
|
+
*/
|
|
28
|
+
export const VERSION = "0.1.3";
|
|
29
|
+
|
|
30
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDbkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRTlEOzs7O0dBSUc7QUFFSDs7Ozs7R0FLRztBQUVILGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsY0FBYyxDQUFDO0FBRTdCLFdBQVcsQ0FBQyxXQUFXLENBQUMsSUFBSSxtQkFBbUIsRUFBRSxDQUFDLENBQUM7QUFFbkQ7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDIiwiZmlsZSI6ImluZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZXNSZWdpc3RyeSB9IGZyb20gXCIuL3JlcG9zaXRvcnlcIjtcbmltcG9ydCB7IEluamVjdGFibGVzIH0gZnJvbSBcIkBkZWNhZi10cy9pbmplY3RhYmxlLWRlY29yYXRvcnNcIjtcblxuLyoqXG4gKiBAc3VtbWFyeSBNb2R1bGUgc3VtbWFyeVxuICogQGRlc2NyaXB0aW9uIE1vZHVsZSBkZXNjcmlwdGlvblxuICogQG1vZHVsZSB0cy13b3Jrc3BhY2VcbiAqL1xuXG4vKipcbiAqIEBzdW1tYXJ5IE5hbWVzcGFjZSBzdW1tYXJ5XG4gKiBAZGVzY3JpcHRpb24gTmFtZXNwYWNlIGRlc2NyaXB0aW9uXG4gKiBAbmFtZXNwYWNlIE5hbWVzcGFjZVxuICogQG1lbWJlck9mIG1vZHVsZTp0cy13b3Jrc3BhY2VcbiAqL1xuXG5leHBvcnQgKiBmcm9tIFwiLi9pZGVudGl0eVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vaW50ZXJmYWNlc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vbW9kZWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3BlcnNpc3RlbmNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9xdWVyeVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcmVwb3NpdG9yeVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdmFsaWRhdG9yc1wiO1xuXG5JbmplY3RhYmxlcy5zZXRSZWdpc3RyeShuZXcgSW5qZWN0YWJsZXNSZWdpc3RyeSgpKTtcblxuLyoqXG4gKiBAc3VtbWFyeSBzdG9yZXMgdGhlIGN1cnJlbnQgcGFja2FnZSB2ZXJzaW9uXG4gKiBAZGVzY3JpcHRpb24gdGhpcyBpcyBob3cgeW91IHNob3VsZCBkb2N1bWVudCBhIGNvbnN0YW50XG4gKiBAY29uc3QgVkVSU0lPTlxuICogQG1lbWJlck9mIG1vZHVsZTp0cy13b3Jrc3BhY2VcbiAqL1xuZXhwb3J0IGNvbnN0IFZFUlNJT04gPSBcIjAuMS4zXCI7XG4iXX0=
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9pbnRlcmZhY2VzL0J1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJpbnRlcmZhY2VzL0J1aWxkZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBzdW1tYXJ5IFN0YW5kYXJkIEJ1aWxkZXIgQVBpIGZvciB0aGUgQnVpbGRlciBkZXNpZ24gcGF0dGVyblxuICogQGRlc2NyaXB0aW9uIEV4cG9zZSB0aGUgYnVpbGQgbWV0aG9kXG4gKlxuICogQGludGVyZmFjZSBCdWlsZGVyXG4gKlxuICogQGNhdGVnb3J5IENvbnN0cnVjdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJ1aWxkZXI8VD4ge1xuICAvKipcbiAgICogQHN1bW1hcnkgQnVpbGQgdGhlIE9iamVjdFxuICAgKlxuICAgKiBAbWV0aG9kXG4gICAqL1xuICBidWlsZCguLi5hcmdzOiBhbnlbXSk6IFQ7XG59XG4iXX0=
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @summary processes query objects
|
|
3
3
|
*
|
|
4
|
+
* @typedef V the output
|
|
5
|
+
*
|
|
4
6
|
* @interface Executor
|
|
5
7
|
*
|
|
6
8
|
* @category Query
|
|
@@ -13,5 +15,5 @@ export interface Executor {
|
|
|
13
15
|
*
|
|
14
16
|
* @method
|
|
15
17
|
*/
|
|
16
|
-
execute<V>(...args: any): Promise<V
|
|
18
|
+
execute<V>(...args: any): Promise<V>;
|
|
17
19
|
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9pbnRlcmZhY2VzL0V4ZWN1dG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJmaWxlIjoiaW50ZXJmYWNlcy9FeGVjdXRvci5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHN1bW1hcnkgcHJvY2Vzc2VzIHF1ZXJ5IG9iamVjdHNcbiAqXG4gKiBAdHlwZWRlZiBWIHRoZSBvdXRwdXRcbiAqXG4gKiBAaW50ZXJmYWNlIEV4ZWN1dG9yXG4gKlxuICogQGNhdGVnb3J5IFF1ZXJ5XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXhlY3V0b3Ige1xuICAvKipcbiAgICogQHN1bW1hcnkgUHJvY2Vzc2VzIGl0c2VsZlxuICAgKlxuICAgKiBAcGFyYW0ge2FueVtdfSBhcmdzXG4gICAqXG4gICAqIEBtZXRob2RcbiAgICovXG4gIGV4ZWN1dGU8Vj4oLi4uYXJnczogYW55KTogUHJvbWlzZTxWPjtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9pbnRlcmZhY2VzL09ic2VydmFibGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJpbnRlcmZhY2VzL09ic2VydmFibGUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZlciB9IGZyb20gXCIuL09ic2VydmVyXCI7XG5cbi8qKlxuICogQHN1bW1hcnkgT2JzZXJ2YWJsZSBBcGlcbiAqIEBkZXNjcmlwdGlvbiBtYW5hZ2UgYW5kIHVwZGF0ZSB7QGxpbmsgT2JzZXJ2ZXJ9c1xuICpcbiAqIEBpbnRlcmZhY2UgT2JzZXJ2YWJsZVxuICpcbiAqIEBjYXRlZ29yeSBPYnNlcnZhYmxlc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIE9ic2VydmFibGUge1xuICAvKipcbiAgICogQHN1bW1hcnkgUmVnaXN0ZXIgbmV3IHtAbGluayBPYnNlcnZlcn1zXG4gICAqIEBwYXJhbSB7T2JzZXJ2ZXJ9IG9ic2VydmVyXG4gICAqXG4gICAqIEBtZXRob2RcbiAgICovXG4gIG9ic2VydmUob2JzZXJ2ZXI6IE9ic2VydmVyKTogdm9pZDtcbiAgLyoqXG4gICAqIEBzdW1tYXJ5IFVucmVnaXN0ZXIgbmV3IHtAbGluayBPYnNlcnZlcn1zXG4gICAqIEBwYXJhbSB7T2JzZXJ2ZXJ9IG9ic2VydmVyXG4gICAqXG4gICAqIEBtZXRob2RcbiAgICovXG4gIHVuT2JzZXJ2ZShvYnNlcnZlcjogT2JzZXJ2ZXIpOiB2b2lkO1xuICAvKipcbiAgICogQHN1bW1hcnkgaGF2ZSByZWdpc3RlcmVkIHtAbGluayBPYnNlcnZlcn1zIHVwZGF0ZSB0aGVtc2VsdmVzXG4gICAqIEBwYXJhbSB7YW55W119IGFyZ3NcbiAgICogQG1ldGhvZFxuICAgKi9cbiAgdXBkYXRlT2JzZXJ2ZXJzKC4uLmFyZ3M6IGFueVtdKTogUHJvbWlzZTx2b2lkPjtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9pbnRlcmZhY2VzL09ic2VydmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJmaWxlIjoiaW50ZXJmYWNlcy9PYnNlcnZlci5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHN1bW1hcnkgT2JzZXJ2ZXIgQXBpXG4gKiBAZGVzY3JpcHRpb24gd2lsbCBiZSBjYWxsZWQgYnkgdGhlIHtAbGluayBPYnNlcnZhYmxlfVxuICpcbiAqIEBpbnRlcmZhY2UgT2JzZXJ2ZXJcbiAqXG4gKiBAY2F0ZWdvcnkgT2JzZXJ2YWJsZXNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPYnNlcnZlciB7XG4gIC8qKlxuICAgKiBAc3VtbWFyeSBSZWZyZXNoZXMgdGhlIE9ic2VydmVyXG4gICAqIEBwYXJhbSB7YW55W119IGFyZ3NcbiAgICogQG1ldGhvZFxuICAgKi9cbiAgcmVmcmVzaCguLi5hcmdzOiBhbnlbXSk6IFByb21pc2U8dm9pZD47XG59XG4iXX0=
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Condition, SelectSelector, WhereOption } from "../query";
|
|
2
|
+
import { OrderDirection } from "../repository";
|
|
3
|
+
export interface Queriable {
|
|
4
|
+
select(selector?: SelectSelector): WhereOption;
|
|
5
|
+
query<V>(condition: Condition, orderBy: string, order: OrderDirection, limit?: number, skip?: number): Promise<V>;
|
|
6
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9pbnRlcmZhY2VzL1F1ZXJpYWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwiZmlsZSI6ImludGVyZmFjZXMvUXVlcmlhYmxlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uZGl0aW9uLCBTZWxlY3RTZWxlY3RvciwgV2hlcmVPcHRpb24gfSBmcm9tIFwiLi4vcXVlcnlcIjtcbmltcG9ydCB7IE9yZGVyRGlyZWN0aW9uIH0gZnJvbSBcIi4uL3JlcG9zaXRvcnlcIjtcblxuZXhwb3J0IGludGVyZmFjZSBRdWVyaWFibGUge1xuICBzZWxlY3Qoc2VsZWN0b3I/OiBTZWxlY3RTZWxlY3Rvcik6IFdoZXJlT3B0aW9uO1xuXG4gIHF1ZXJ5PFY+KFxuICAgIGNvbmRpdGlvbjogQ29uZGl0aW9uLFxuICAgIG9yZGVyQnk6IHN0cmluZyxcbiAgICBvcmRlcjogT3JkZXJEaXJlY3Rpb24sXG4gICAgbGltaXQ/OiBudW1iZXIsXG4gICAgc2tpcD86IG51bWJlcixcbiAgKTogUHJvbWlzZTxWPjtcbn1cbiJdfQ==
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @summary Executes a raw instruction in the Database
|
|
3
|
-
* @typeDef
|
|
3
|
+
* @typeDef Q The input type
|
|
4
|
+
* @typeDef R The result type
|
|
4
5
|
*
|
|
5
6
|
* @interface RawExecutor
|
|
6
7
|
* @category Query
|
|
7
8
|
*/
|
|
8
|
-
export interface RawExecutor<
|
|
9
|
+
export interface RawExecutor<Q> {
|
|
9
10
|
/**
|
|
10
11
|
* @summary Executes a raw instruction in the Database
|
|
11
12
|
*
|
|
@@ -15,5 +16,5 @@ export interface RawExecutor<T> {
|
|
|
15
16
|
*
|
|
16
17
|
* @method
|
|
17
18
|
*/
|
|
18
|
-
raw<
|
|
19
|
+
raw<R>(rawInput: Q, ...args: any[]): Promise<R>;
|
|
19
20
|
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9pbnRlcmZhY2VzL1Jhd0V4ZWN1dG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJmaWxlIjoiaW50ZXJmYWNlcy9SYXdFeGVjdXRvci5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHN1bW1hcnkgRXhlY3V0ZXMgYSByYXcgaW5zdHJ1Y3Rpb24gaW4gdGhlIERhdGFiYXNlXG4gKiBAdHlwZURlZiBRIFRoZSBpbnB1dCB0eXBlXG4gKiBAdHlwZURlZiBSIFRoZSByZXN1bHQgdHlwZVxuICpcbiAqIEBpbnRlcmZhY2UgUmF3RXhlY3V0b3JcbiAqIEBjYXRlZ29yeSBRdWVyeVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJhd0V4ZWN1dG9yPFE+IHtcbiAgLyoqXG4gICAqIEBzdW1tYXJ5IEV4ZWN1dGVzIGEgcmF3IGluc3RydWN0aW9uIGluIHRoZSBEYXRhYmFzZVxuICAgKlxuICAgKiBAdHlwZURlZiBWIHRoZSBleHBlY3RlZCBvdXRjb21lIG9mIHRoZSBpbnN0cnVjdGlvblxuICAgKiBAcGFyYW0gcmF3SW5wdXRcbiAgICogQHBhcmFtIGFyZ3NcbiAgICpcbiAgICogQG1ldGhvZFxuICAgKi9cbiAgcmF3PFI+KHJhd0lucHV0OiBRLCAuLi5hcmdzOiBhbnlbXSk6IFByb21pc2U8Uj47XG59XG4iXX0=
|
|
@@ -11,6 +11,7 @@ export interface Sequence {
|
|
|
11
11
|
*
|
|
12
12
|
* @method
|
|
13
13
|
*/
|
|
14
|
-
next(): Promise<string | number>;
|
|
15
|
-
current(): Promise<string | number>;
|
|
14
|
+
next(): Promise<string | number | bigint>;
|
|
15
|
+
current(): Promise<string | number | bigint>;
|
|
16
|
+
range(count: number): Promise<(number | string | bigint)[]>;
|
|
16
17
|
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @summary Sequence
|
|
3
|
+
*
|
|
4
|
+
* @interface Sequence
|
|
5
|
+
*
|
|
6
|
+
* @category Sequences
|
|
7
|
+
*/
|
|
8
|
+
export {};
|
|
9
|
+
|
|
10
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9pbnRlcmZhY2VzL1NlcXVlbmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRyIsImZpbGUiOiJpbnRlcmZhY2VzL1NlcXVlbmNlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAc3VtbWFyeSBTZXF1ZW5jZVxuICpcbiAqIEBpbnRlcmZhY2UgU2VxdWVuY2VcbiAqXG4gKiBAY2F0ZWdvcnkgU2VxdWVuY2VzXG4gKi9cblxuZXhwb3J0IGludGVyZmFjZSBTZXF1ZW5jZSB7XG4gIC8qKlxuICAgKiBAc3VtbWFyeSBnZW5lcmF0ZXMgdGhlIG5leHQgdmFsdWUgaW4gdGhlIHNlcXVlbmNlXG4gICAqXG4gICAqIEBtZXRob2RcbiAgICovXG4gIG5leHQoKTogUHJvbWlzZTxzdHJpbmcgfCBudW1iZXIgfCBiaWdpbnQ+O1xuICBjdXJyZW50KCk6IFByb21pc2U8c3RyaW5nIHwgbnVtYmVyIHwgYmlnaW50PjtcbiAgcmFuZ2UoY291bnQ6IG51bWJlcik6IFByb21pc2U8KG51bWJlciB8IHN0cmluZyB8IGJpZ2ludClbXT47XG59XG4iXX0=
|
|
@@ -7,5 +7,13 @@
|
|
|
7
7
|
*/
|
|
8
8
|
export interface SequenceOptions {
|
|
9
9
|
name?: string;
|
|
10
|
-
|
|
10
|
+
type: "Number" | "BigInt" | undefined;
|
|
11
|
+
startWith: number;
|
|
12
|
+
incrementBy: number;
|
|
13
|
+
minValue?: number;
|
|
14
|
+
maxValue?: number;
|
|
15
|
+
cycle: boolean;
|
|
11
16
|
}
|
|
17
|
+
export declare const DefaultSequenceOptions: SequenceOptions;
|
|
18
|
+
export declare const NumericSequence: SequenceOptions;
|
|
19
|
+
export declare const BigIntSequence: SequenceOptions;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export const DefaultSequenceOptions = {
|
|
2
|
+
type: "Number",
|
|
3
|
+
startWith: 0,
|
|
4
|
+
incrementBy: 1,
|
|
5
|
+
cycle: false,
|
|
6
|
+
};
|
|
7
|
+
export const NumericSequence = {
|
|
8
|
+
type: "Number",
|
|
9
|
+
startWith: 0,
|
|
10
|
+
incrementBy: 1,
|
|
11
|
+
cycle: false,
|
|
12
|
+
};
|
|
13
|
+
export const BigIntSequence = {
|
|
14
|
+
type: "BigInt",
|
|
15
|
+
startWith: 0,
|
|
16
|
+
incrementBy: 1,
|
|
17
|
+
cycle: false,
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9pbnRlcmZhY2VzL1NlcXVlbmNlT3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFpQkEsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQW9CO0lBQ3JELElBQUksRUFBRSxRQUFRO0lBQ2QsU0FBUyxFQUFFLENBQUM7SUFDWixXQUFXLEVBQUUsQ0FBQztJQUNkLEtBQUssRUFBRSxLQUFLO0NBQ2IsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBb0I7SUFDOUMsSUFBSSxFQUFFLFFBQVE7SUFDZCxTQUFTLEVBQUUsQ0FBQztJQUNaLFdBQVcsRUFBRSxDQUFDO0lBQ2QsS0FBSyxFQUFFLEtBQUs7Q0FDYixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFvQjtJQUM3QyxJQUFJLEVBQUUsUUFBUTtJQUNkLFNBQVMsRUFBRSxDQUFDO0lBQ1osV0FBVyxFQUFFLENBQUM7SUFDZCxLQUFLLEVBQUUsS0FBSztDQUNiLENBQUMiLCJmaWxlIjoiaW50ZXJmYWNlcy9TZXF1ZW5jZU9wdGlvbnMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEB0eXBlZGVmIFNlcXVlbmNlT3B0aW9uc1xuICpcbiAqIEBwcm9wIHtzdHJpbmcgfCBudW1iZXJ9IFtzdGFydGluZ1ZhbHVlXSBkZWZpbmVzIHRoZSBzdGFydGluZyB2YWx1ZSB3aGVuIHNlcXVlbmNlIGRvZXN0IG5vdCBleGlzdFxuICpcbiAqIEBjYXRlZ29yeSBTZXF1ZW5jZXNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZXF1ZW5jZU9wdGlvbnMge1xuICBuYW1lPzogc3RyaW5nO1xuICB0eXBlOiBcIk51bWJlclwiIHwgXCJCaWdJbnRcIiB8IHVuZGVmaW5lZDtcbiAgc3RhcnRXaXRoOiBudW1iZXI7XG4gIGluY3JlbWVudEJ5OiBudW1iZXI7XG4gIG1pblZhbHVlPzogbnVtYmVyO1xuICBtYXhWYWx1ZT86IG51bWJlcjtcbiAgY3ljbGU6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjb25zdCBEZWZhdWx0U2VxdWVuY2VPcHRpb25zOiBTZXF1ZW5jZU9wdGlvbnMgPSB7XG4gIHR5cGU6IFwiTnVtYmVyXCIsXG4gIHN0YXJ0V2l0aDogMCxcbiAgaW5jcmVtZW50Qnk6IDEsXG4gIGN5Y2xlOiBmYWxzZSxcbn07XG5cbmV4cG9ydCBjb25zdCBOdW1lcmljU2VxdWVuY2U6IFNlcXVlbmNlT3B0aW9ucyA9IHtcbiAgdHlwZTogXCJOdW1iZXJcIixcbiAgc3RhcnRXaXRoOiAwLFxuICBpbmNyZW1lbnRCeTogMSxcbiAgY3ljbGU6IGZhbHNlLFxufTtcblxuZXhwb3J0IGNvbnN0IEJpZ0ludFNlcXVlbmNlOiBTZXF1ZW5jZU9wdGlvbnMgPSB7XG4gIHR5cGU6IFwiQmlnSW50XCIsXG4gIHN0YXJ0V2l0aDogMCxcbiAgaW5jcmVtZW50Qnk6IDEsXG4gIGN5Y2xlOiBmYWxzZSxcbn07XG4iXX0=
|
|
@@ -1 +1,10 @@
|
|
|
1
|
-
export*from"./Builder";
|
|
1
|
+
export * from "./Builder";
|
|
2
|
+
export * from "./Executor";
|
|
3
|
+
export * from "./Observable";
|
|
4
|
+
export * from "./Observer";
|
|
5
|
+
export * from "./Queriable";
|
|
6
|
+
export * from "./RawExecutor";
|
|
7
|
+
export * from "./Sequence";
|
|
8
|
+
export * from "./SequenceOptions";
|
|
9
|
+
|
|
10
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9pbnRlcmZhY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsbUJBQW1CLENBQUMiLCJmaWxlIjoiaW50ZXJmYWNlcy9pbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL0J1aWxkZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL0V4ZWN1dG9yXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9PYnNlcnZhYmxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9PYnNlcnZlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vUXVlcmlhYmxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9SYXdFeGVjdXRvclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vU2VxdWVuY2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL1NlcXVlbmNlT3B0aW9uc1wiO1xuIl19
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
export declare abstract class BaseModel extends DBModel {
|
|
1
|
+
import { ModelArg, Model } from "@decaf-ts/decorator-validation";
|
|
2
|
+
export declare abstract class BaseModel extends Model {
|
|
4
3
|
createdOn?: Date;
|
|
5
4
|
updatedOn?: Date;
|
|
6
5
|
protected constructor(arg?: ModelArg<BaseModel>);
|
|
@@ -1 +1,28 @@
|
|
|
1
|
-
var __decorate=
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
import { DBOperations, timestamp } from "@decaf-ts/db-decorators";
|
|
11
|
+
import { Model } from "@decaf-ts/decorator-validation";
|
|
12
|
+
export class BaseModel extends Model {
|
|
13
|
+
constructor(arg) {
|
|
14
|
+
super(arg);
|
|
15
|
+
this.createdOn = undefined;
|
|
16
|
+
this.updatedOn = undefined;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
__decorate([
|
|
20
|
+
timestamp(DBOperations.CREATE),
|
|
21
|
+
__metadata("design:type", Date)
|
|
22
|
+
], BaseModel.prototype, "createdOn", void 0);
|
|
23
|
+
__decorate([
|
|
24
|
+
timestamp(),
|
|
25
|
+
__metadata("design:type", Date)
|
|
26
|
+
], BaseModel.prototype, "updatedOn", void 0);
|
|
27
|
+
|
|
28
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9tb2RlbC9CYXNlTW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNsRSxPQUFPLEVBQVksS0FBSyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFakUsTUFBTSxPQUFnQixTQUFVLFNBQVEsS0FBSztJQU0zQyxZQUFzQixHQUF5QjtRQUM3QyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFMYixjQUFTLEdBQVUsU0FBUyxDQUFDO1FBRTdCLGNBQVMsR0FBVSxTQUFTLENBQUM7SUFJN0IsQ0FBQztDQUNGO0FBUEM7SUFEQyxTQUFTLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQzs4QkFDbkIsSUFBSTs0Q0FBYTtBQUU3QjtJQURDLFNBQVMsRUFBRTs4QkFDQSxJQUFJOzRDQUFhIiwiZmlsZSI6Im1vZGVsL0Jhc2VNb2RlbC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERCT3BlcmF0aW9ucywgdGltZXN0YW1wIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBNb2RlbEFyZywgTW9kZWwgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlTW9kZWwgZXh0ZW5kcyBNb2RlbCB7XG4gIEB0aW1lc3RhbXAoREJPcGVyYXRpb25zLkNSRUFURSlcbiAgY3JlYXRlZE9uPzogRGF0ZSA9IHVuZGVmaW5lZDtcbiAgQHRpbWVzdGFtcCgpXG4gIHVwZGF0ZWRPbj86IERhdGUgPSB1bmRlZmluZWQ7XG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKGFyZz86IE1vZGVsQXJnPEJhc2VNb2RlbD4pIHtcbiAgICBzdXBlcihhcmcpO1xuICB9XG59XG4iXX0=
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { IRepository } from "@decaf-ts/db-decorators";
|
|
2
2
|
import { OrderDirection } from "../repository/constants";
|
|
3
|
+
import { Model } from "@decaf-ts/decorator-validation";
|
|
3
4
|
export declare function table(tableName: string): import("@decaf-ts/reflection").CustomDecorator<V>;
|
|
4
|
-
export declare function column(columnName: string):
|
|
5
|
+
export declare function column(columnName: string): PropertyDecorator;
|
|
5
6
|
/**
|
|
6
7
|
* @summary Index Decorator
|
|
7
8
|
* @description properties decorated will the index in the
|
|
@@ -12,8 +13,8 @@ export declare function column(columnName: string): import("@decaf-ts/reflection
|
|
|
12
13
|
*
|
|
13
14
|
* @function index
|
|
14
15
|
*/
|
|
15
|
-
export declare function index(compositions?: string[], directions?: OrderDirection[]):
|
|
16
|
-
export declare function uniqueOnCreateUpdate<T extends
|
|
16
|
+
export declare function index(compositions?: string[], directions?: OrderDirection[]): PropertyDecorator;
|
|
17
|
+
export declare function uniqueOnCreateUpdate<T extends Model, V extends IRepository<T>, Y = any>(this: V, data: Y, key: string, model: T): Promise<void>;
|
|
17
18
|
/**
|
|
18
19
|
* @summary Unique Decorator
|
|
19
20
|
* @description Tags a property as unique.
|
|
@@ -23,4 +24,4 @@ export declare function uniqueOnCreateUpdate<T extends DBModel, V extends IRepos
|
|
|
23
24
|
*
|
|
24
25
|
* @memberOf module:wallet-db.Decorators
|
|
25
26
|
*/
|
|
26
|
-
export declare function unique():
|
|
27
|
+
export declare function unique(): (target: object, propertyKey?: any, descriptor?: any) => void;
|
|
@@ -1 +1,55 @@
|
|
|
1
|
-
import{ConflictError,
|
|
1
|
+
import { ConflictError, NotFoundError, Repository, } from "@decaf-ts/db-decorators";
|
|
2
|
+
import { apply, metadata } from "@decaf-ts/reflection";
|
|
3
|
+
import { PersistenceKeys } from "../persistence/constants";
|
|
4
|
+
import { propMetadata } from "@decaf-ts/decorator-validation";
|
|
5
|
+
import { Adapter } from "../persistence";
|
|
6
|
+
export function table(tableName) {
|
|
7
|
+
return metadata(Adapter.key(PersistenceKeys.TABLE), tableName);
|
|
8
|
+
}
|
|
9
|
+
export function column(columnName) {
|
|
10
|
+
return propMetadata(Adapter.key(PersistenceKeys.COLUMN), columnName);
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* @summary Index Decorator
|
|
14
|
+
* @description properties decorated will the index in the
|
|
15
|
+
* DB for performance in queries
|
|
16
|
+
*
|
|
17
|
+
* @param {OrderDirection[]} [directions]
|
|
18
|
+
* @param {string[]} [compositions]
|
|
19
|
+
*
|
|
20
|
+
* @function index
|
|
21
|
+
*/
|
|
22
|
+
export function index(compositions, directions) {
|
|
23
|
+
return propMetadata(Repository.key(`${PersistenceKeys.INDEX}${compositions && compositions.length ? `.${compositions.join(".")}` : ""}`), {
|
|
24
|
+
directions: directions,
|
|
25
|
+
compositions: compositions,
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
export async function uniqueOnCreateUpdate(data, key, model) {
|
|
29
|
+
if (!model[key])
|
|
30
|
+
return;
|
|
31
|
+
try {
|
|
32
|
+
await this.read(model[key]);
|
|
33
|
+
}
|
|
34
|
+
catch (e) {
|
|
35
|
+
if (e instanceof NotFoundError)
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
throw new ConflictError(`model already exists with ${key} equal to ${JSON.stringify(model[key], undefined, 2)}`);
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* @summary Unique Decorator
|
|
42
|
+
* @description Tags a property as unique.
|
|
43
|
+
* No other elements in that table can have the same property value
|
|
44
|
+
*
|
|
45
|
+
* @function unique
|
|
46
|
+
*
|
|
47
|
+
* @memberOf module:wallet-db.Decorators
|
|
48
|
+
*/
|
|
49
|
+
export function unique() {
|
|
50
|
+
return apply(
|
|
51
|
+
// onCreateUpdate(uniqueOnCreateUpdate),
|
|
52
|
+
propMetadata(Repository.key(PersistenceKeys.UNIQUE), {}));
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9tb2RlbC9kZWNvcmF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxhQUFhLEVBRWIsYUFBYSxFQUNiLFVBQVUsR0FDWCxNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRzNELE9BQU8sRUFBUyxZQUFZLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFekMsTUFBTSxVQUFVLEtBQUssQ0FBQyxTQUFpQjtJQUNyQyxPQUFPLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQztBQUNqRSxDQUFDO0FBRUQsTUFBTSxVQUFVLE1BQU0sQ0FBQyxVQUFrQjtJQUN2QyxPQUFPLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQztBQUN2RSxDQUFDO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxVQUFVLEtBQUssQ0FBQyxZQUF1QixFQUFFLFVBQTZCO0lBQzFFLE9BQU8sWUFBWSxDQUNqQixVQUFVLENBQUMsR0FBRyxDQUNaLEdBQUcsZUFBZSxDQUFDLEtBQUssR0FBRyxZQUFZLElBQUksWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUNyRyxFQUNEO1FBQ0UsVUFBVSxFQUFFLFVBQVU7UUFDdEIsWUFBWSxFQUFFLFlBQVk7S0FDVixDQUNuQixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sQ0FBQyxLQUFLLFVBQVUsb0JBQW9CLENBSS9CLElBQU8sRUFBRSxHQUFXLEVBQUUsS0FBUTtJQUN2QyxJQUFJLENBQUUsS0FBYSxDQUFDLEdBQUcsQ0FBQztRQUFFLE9BQU87SUFDakMsSUFBSSxDQUFDO1FBQ0gsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFFLEtBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFBQyxPQUFPLENBQU0sRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxZQUFZLGFBQWE7WUFBRSxPQUFPO0lBQ3pDLENBQUM7SUFDRCxNQUFNLElBQUksYUFBYSxDQUNyQiw2QkFBNkIsR0FBRyxhQUFhLElBQUksQ0FBQyxTQUFTLENBQUUsS0FBYSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUNqRyxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxVQUFVLE1BQU07SUFDcEIsT0FBTyxLQUFLO0lBQ1Ysd0NBQXdDO0lBQ3hDLFlBQVksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FDekQsQ0FBQztBQUNKLENBQUMiLCJmaWxlIjoibW9kZWwvZGVjb3JhdG9ycy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbmZsaWN0RXJyb3IsXG4gIElSZXBvc2l0b3J5LFxuICBOb3RGb3VuZEVycm9yLFxuICBSZXBvc2l0b3J5LFxufSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7IGFwcGx5LCBtZXRhZGF0YSB9IGZyb20gXCJAZGVjYWYtdHMvcmVmbGVjdGlvblwiO1xuaW1wb3J0IHsgUGVyc2lzdGVuY2VLZXlzIH0gZnJvbSBcIi4uL3BlcnNpc3RlbmNlL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgSW5kZXhNZXRhZGF0YSB9IGZyb20gXCIuLi9yZXBvc2l0b3J5L3R5cGVzXCI7XG5pbXBvcnQgeyBPcmRlckRpcmVjdGlvbiB9IGZyb20gXCIuLi9yZXBvc2l0b3J5L2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgTW9kZWwsIHByb3BNZXRhZGF0YSB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7IEFkYXB0ZXIgfSBmcm9tIFwiLi4vcGVyc2lzdGVuY2VcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHRhYmxlKHRhYmxlTmFtZTogc3RyaW5nKSB7XG4gIHJldHVybiBtZXRhZGF0YShBZGFwdGVyLmtleShQZXJzaXN0ZW5jZUtleXMuVEFCTEUpLCB0YWJsZU5hbWUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29sdW1uKGNvbHVtbk5hbWU6IHN0cmluZykge1xuICByZXR1cm4gcHJvcE1ldGFkYXRhKEFkYXB0ZXIua2V5KFBlcnNpc3RlbmNlS2V5cy5DT0xVTU4pLCBjb2x1bW5OYW1lKTtcbn1cblxuLyoqXG4gKiBAc3VtbWFyeSBJbmRleCBEZWNvcmF0b3JcbiAqIEBkZXNjcmlwdGlvbiBwcm9wZXJ0aWVzIGRlY29yYXRlZCB3aWxsIHRoZSBpbmRleCBpbiB0aGVcbiAqIERCIGZvciBwZXJmb3JtYW5jZSBpbiBxdWVyaWVzXG4gKlxuICogQHBhcmFtIHtPcmRlckRpcmVjdGlvbltdfSBbZGlyZWN0aW9uc11cbiAqIEBwYXJhbSB7c3RyaW5nW119IFtjb21wb3NpdGlvbnNdXG4gKlxuICogQGZ1bmN0aW9uIGluZGV4XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbmRleChjb21wb3NpdGlvbnM/OiBzdHJpbmdbXSwgZGlyZWN0aW9ucz86IE9yZGVyRGlyZWN0aW9uW10pIHtcbiAgcmV0dXJuIHByb3BNZXRhZGF0YShcbiAgICBSZXBvc2l0b3J5LmtleShcbiAgICAgIGAke1BlcnNpc3RlbmNlS2V5cy5JTkRFWH0ke2NvbXBvc2l0aW9ucyAmJiBjb21wb3NpdGlvbnMubGVuZ3RoID8gYC4ke2NvbXBvc2l0aW9ucy5qb2luKFwiLlwiKX1gIDogXCJcIn1gXG4gICAgKSxcbiAgICB7XG4gICAgICBkaXJlY3Rpb25zOiBkaXJlY3Rpb25zLFxuICAgICAgY29tcG9zaXRpb25zOiBjb21wb3NpdGlvbnMsXG4gICAgfSBhcyBJbmRleE1ldGFkYXRhXG4gICk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB1bmlxdWVPbkNyZWF0ZVVwZGF0ZTxcbiAgVCBleHRlbmRzIE1vZGVsLFxuICBWIGV4dGVuZHMgSVJlcG9zaXRvcnk8VD4sXG4gIFkgPSBhbnksXG4+KHRoaXM6IFYsIGRhdGE6IFksIGtleTogc3RyaW5nLCBtb2RlbDogVCk6IFByb21pc2U8dm9pZD4ge1xuICBpZiAoIShtb2RlbCBhcyBhbnkpW2tleV0pIHJldHVybjtcbiAgdHJ5IHtcbiAgICBhd2FpdCB0aGlzLnJlYWQoKG1vZGVsIGFzIGFueSlba2V5XSk7XG4gIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgIGlmIChlIGluc3RhbmNlb2YgTm90Rm91bmRFcnJvcikgcmV0dXJuO1xuICB9XG4gIHRocm93IG5ldyBDb25mbGljdEVycm9yKFxuICAgIGBtb2RlbCBhbHJlYWR5IGV4aXN0cyB3aXRoICR7a2V5fSBlcXVhbCB0byAke0pTT04uc3RyaW5naWZ5KChtb2RlbCBhcyBhbnkpW2tleV0sIHVuZGVmaW5lZCwgMil9YFxuICApO1xufVxuXG4vKipcbiAqIEBzdW1tYXJ5IFVuaXF1ZSBEZWNvcmF0b3JcbiAqIEBkZXNjcmlwdGlvbiBUYWdzIGEgcHJvcGVydHkgYXMgdW5pcXVlLlxuICogIE5vIG90aGVyIGVsZW1lbnRzIGluIHRoYXQgdGFibGUgY2FuIGhhdmUgdGhlIHNhbWUgcHJvcGVydHkgdmFsdWVcbiAqXG4gKiBAZnVuY3Rpb24gdW5pcXVlXG4gKlxuICogQG1lbWJlck9mIG1vZHVsZTp3YWxsZXQtZGIuRGVjb3JhdG9yc1xuICovXG5leHBvcnQgZnVuY3Rpb24gdW5pcXVlKCkge1xuICByZXR1cm4gYXBwbHkoXG4gICAgLy8gb25DcmVhdGVVcGRhdGUodW5pcXVlT25DcmVhdGVVcGRhdGUpLFxuICAgIHByb3BNZXRhZGF0YShSZXBvc2l0b3J5LmtleShQZXJzaXN0ZW5jZUtleXMuVU5JUVVFKSwge30pXG4gICk7XG59XG4iXX0=
|
package/lib/esm/model/index.js
CHANGED
|
@@ -1 +1,4 @@
|
|
|
1
|
-
export*from"./BaseModel";
|
|
1
|
+
export * from "./BaseModel";
|
|
2
|
+
export * from "./decorators";
|
|
3
|
+
|
|
4
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9tb2RlbC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLGNBQWMsQ0FBQyIsImZpbGUiOiJtb2RlbC9pbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL0Jhc2VNb2RlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZGVjb3JhdG9yc1wiO1xuIl19
|
|
@@ -1,31 +1,59 @@
|
|
|
1
|
-
import { BaseError
|
|
1
|
+
import { BaseError } from "@decaf-ts/db-decorators";
|
|
2
2
|
import { Observer } from "../interfaces/Observer";
|
|
3
3
|
import { Sequence } from "../interfaces/Sequence";
|
|
4
|
-
import { Constructor } from "@decaf-ts/decorator-validation";
|
|
4
|
+
import { Constructor, Model } from "@decaf-ts/decorator-validation";
|
|
5
5
|
import { SequenceOptions } from "../interfaces/SequenceOptions";
|
|
6
6
|
import { RawExecutor } from "../interfaces/RawExecutor";
|
|
7
7
|
import { Observable } from "../interfaces/Observable";
|
|
8
|
-
|
|
8
|
+
import { Query } from "../query/Query";
|
|
9
|
+
import { Statement } from "../query/Statement";
|
|
10
|
+
import { ClauseFactory } from "../query/ClauseFactory";
|
|
11
|
+
import { Condition } from "../query";
|
|
12
|
+
/**
|
|
13
|
+
* @summary Abstract Decaf-ts Persistence Adapter Class
|
|
14
|
+
* @description Offers the base implementation for all Adapter Classes
|
|
15
|
+
* and manages them various registered {@link Adapter}s
|
|
16
|
+
*
|
|
17
|
+
* @typedef Y the underlying persistence object type
|
|
18
|
+
* @typedef Q The query object the adapter uses
|
|
19
|
+
*
|
|
20
|
+
* @param {Y} native the underlying persistence object
|
|
21
|
+
* @param {string} flavour the under witch the persistence adapter should be stored
|
|
22
|
+
*
|
|
23
|
+
* @class Adapter
|
|
24
|
+
* @implements RawExecutor
|
|
25
|
+
* @implements Observable
|
|
26
|
+
*/
|
|
27
|
+
export declare abstract class Adapter<Y, Q> implements RawExecutor<Q>, Observable {
|
|
28
|
+
readonly flavour: string;
|
|
9
29
|
private static _current;
|
|
10
30
|
private static _cache;
|
|
11
|
-
private
|
|
31
|
+
private readonly _observers;
|
|
12
32
|
private readonly _native;
|
|
13
33
|
get native(): Y;
|
|
14
|
-
constructor(native: Y, flavour: string);
|
|
34
|
+
protected constructor(native: Y, flavour: string);
|
|
35
|
+
Query<M extends Model>(): Query<Q, M>;
|
|
36
|
+
abstract parseCondition(condition: Condition): Q;
|
|
37
|
+
abstract get Statement(): Statement<Q>;
|
|
38
|
+
abstract get Clauses(): ClauseFactory<Y, Q>;
|
|
15
39
|
protected isReserved(attr: string): boolean;
|
|
16
40
|
protected abstract parseError(err: Error): BaseError;
|
|
17
|
-
abstract createIndex(...
|
|
18
|
-
abstract
|
|
19
|
-
prepare<
|
|
41
|
+
abstract createIndex<M extends Model>(...models: M[]): Promise<any>;
|
|
42
|
+
abstract Sequence(options: SequenceOptions): Promise<Sequence>;
|
|
43
|
+
prepare<M extends Model>(model: M, pk: string | number): {
|
|
20
44
|
record: Record<string, any>;
|
|
21
45
|
id: string;
|
|
22
|
-
}
|
|
23
|
-
revert<
|
|
46
|
+
};
|
|
47
|
+
revert<M extends Model>(obj: Record<string, any>, clazz: string | Constructor<M>, pk: string, id: string | number | bigint): M;
|
|
24
48
|
abstract create(tableName: string, id: string | number, model: Record<string, any>, ...args: any[]): Promise<Record<string, any>>;
|
|
25
|
-
|
|
49
|
+
createAll(tableName: string, id: (string | number)[], model: Record<string, any>[], ...args: any[]): Promise<Record<string, any>[]>;
|
|
50
|
+
abstract read(tableName: string, id: string | number | bigint, ...args: any[]): Promise<Record<string, any>>;
|
|
51
|
+
readAll(tableName: string, id: (string | number | bigint)[], ...args: any[]): Promise<Record<string, any>[]>;
|
|
26
52
|
abstract update(tableName: string, id: string | number, model: Record<string, any>, ...args: any[]): Promise<Record<string, any>>;
|
|
27
|
-
|
|
28
|
-
abstract
|
|
53
|
+
updateAll(tableName: string, id: string[] | number[], model: Record<string, any>[], ...args: any[]): Promise<Record<string, any>[]>;
|
|
54
|
+
abstract delete(tableName: string, id: string | number | bigint, ...args: any[]): Promise<Record<string, any>>;
|
|
55
|
+
deleteAll(tableName: string, id: (string | number | bigint)[], ...args: any[]): Promise<Record<string, any>[]>;
|
|
56
|
+
abstract raw<R>(rawInput: Q, ...args: any[]): Promise<R>;
|
|
29
57
|
/**
|
|
30
58
|
* @summary Registers an {@link Observer}
|
|
31
59
|
* @param {Observer} observer
|
|
@@ -46,6 +74,7 @@ export declare abstract class Adapter<Y, T = string> implements RawExecutor<T>,
|
|
|
46
74
|
*/
|
|
47
75
|
updateObservers(...args: any[]): Promise<void>;
|
|
48
76
|
static get current(): Adapter<any, any>;
|
|
49
|
-
static get(flavour: any): Adapter<
|
|
77
|
+
static get<Y, Q>(flavour: any): Adapter<Y, Q> | undefined;
|
|
50
78
|
static setCurrent(flavour: string): void;
|
|
79
|
+
static key(key: string): string;
|
|
51
80
|
}
|