@decaf-ts/for-typeorm 0.0.6
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/LICENSE.md +21 -0
- package/README.md +93 -0
- package/dist/for-typeorm.cjs +2553 -0
- package/dist/for-typeorm.esm.cjs +2538 -0
- package/lib/TypeORMAdapter.cjs +1129 -0
- package/lib/TypeORMAdapter.d.ts +221 -0
- package/lib/TypeORMDispatch.cjs +134 -0
- package/lib/TypeORMDispatch.d.ts +87 -0
- package/lib/TypeORMEventSubscriber.cjs +96 -0
- package/lib/TypeORMEventSubscriber.d.ts +56 -0
- package/lib/TypeORMRepository.cjs +209 -0
- package/lib/TypeORMRepository.d.ts +125 -0
- package/lib/constants.cjs +43 -0
- package/lib/constants.d.ts +39 -0
- package/lib/errors.cjs +28 -0
- package/lib/errors.d.ts +21 -0
- package/lib/esm/TypeORMAdapter.d.ts +221 -0
- package/lib/esm/TypeORMAdapter.js +1124 -0
- package/lib/esm/TypeORMDispatch.d.ts +87 -0
- package/lib/esm/TypeORMDispatch.js +130 -0
- package/lib/esm/TypeORMEventSubscriber.d.ts +56 -0
- package/lib/esm/TypeORMEventSubscriber.js +93 -0
- package/lib/esm/TypeORMRepository.d.ts +125 -0
- package/lib/esm/TypeORMRepository.js +206 -0
- package/lib/esm/constants.d.ts +39 -0
- package/lib/esm/constants.js +40 -0
- package/lib/esm/errors.d.ts +21 -0
- package/lib/esm/errors.js +24 -0
- package/lib/esm/index.d.ts +22 -0
- package/lib/esm/index.js +25 -0
- package/lib/esm/indexes/generator.d.ts +50 -0
- package/lib/esm/indexes/generator.js +95 -0
- package/lib/esm/indexes/index.d.ts +1 -0
- package/lib/esm/indexes/index.js +2 -0
- package/lib/esm/overrides/Column.d.ts +74 -0
- package/lib/esm/overrides/Column.js +70 -0
- package/lib/esm/overrides/CreateDateColumn.d.ts +2 -0
- package/lib/esm/overrides/CreateDateColumn.js +9 -0
- package/lib/esm/overrides/Entity.d.ts +11 -0
- package/lib/esm/overrides/Entity.js +28 -0
- package/lib/esm/overrides/PrimaryColumn.d.ts +20 -0
- package/lib/esm/overrides/PrimaryColumn.js +53 -0
- package/lib/esm/overrides/PrimaryGeneratedColumn.d.ts +24 -0
- package/lib/esm/overrides/PrimaryGeneratedColumn.js +51 -0
- package/lib/esm/overrides/UpdateDateColumn.d.ts +2 -0
- package/lib/esm/overrides/UpdateDateColumn.js +9 -0
- package/lib/esm/overrides/utils.d.ts +2 -0
- package/lib/esm/overrides/utils.js +29 -0
- package/lib/esm/query/Paginator.d.ts +86 -0
- package/lib/esm/query/Paginator.js +124 -0
- package/lib/esm/query/Statement.d.ts +131 -0
- package/lib/esm/query/Statement.js +242 -0
- package/lib/esm/query/constants.d.ts +52 -0
- package/lib/esm/query/constants.js +74 -0
- package/lib/esm/query/index.d.ts +4 -0
- package/lib/esm/query/index.js +5 -0
- package/lib/esm/query/translate.d.ts +34 -0
- package/lib/esm/query/translate.js +42 -0
- package/lib/esm/raw/postgres.d.ts +36 -0
- package/lib/esm/raw/postgres.js +2 -0
- package/lib/esm/sequences/Sequence.d.ts +67 -0
- package/lib/esm/sequences/Sequence.js +117 -0
- package/lib/esm/sequences/index.d.ts +1 -0
- package/lib/esm/sequences/index.js +2 -0
- package/lib/esm/types.d.ts +67 -0
- package/lib/esm/types.js +28 -0
- package/lib/esm/utils.d.ts +16 -0
- package/lib/esm/utils.js +29 -0
- package/lib/index.cjs +42 -0
- package/lib/index.d.ts +22 -0
- package/lib/indexes/generator.cjs +98 -0
- package/lib/indexes/generator.d.ts +50 -0
- package/lib/indexes/index.cjs +18 -0
- package/lib/indexes/index.d.ts +1 -0
- package/lib/overrides/Column.cjs +73 -0
- package/lib/overrides/Column.d.ts +74 -0
- package/lib/overrides/CreateDateColumn.cjs +12 -0
- package/lib/overrides/CreateDateColumn.d.ts +2 -0
- package/lib/overrides/Entity.cjs +31 -0
- package/lib/overrides/Entity.d.ts +11 -0
- package/lib/overrides/PrimaryColumn.cjs +56 -0
- package/lib/overrides/PrimaryColumn.d.ts +20 -0
- package/lib/overrides/PrimaryGeneratedColumn.cjs +54 -0
- package/lib/overrides/PrimaryGeneratedColumn.d.ts +24 -0
- package/lib/overrides/UpdateDateColumn.cjs +12 -0
- package/lib/overrides/UpdateDateColumn.d.ts +2 -0
- package/lib/overrides/utils.cjs +32 -0
- package/lib/overrides/utils.d.ts +2 -0
- package/lib/query/Paginator.cjs +128 -0
- package/lib/query/Paginator.d.ts +86 -0
- package/lib/query/Statement.cjs +246 -0
- package/lib/query/Statement.d.ts +131 -0
- package/lib/query/constants.cjs +77 -0
- package/lib/query/constants.d.ts +52 -0
- package/lib/query/index.cjs +21 -0
- package/lib/query/index.d.ts +4 -0
- package/lib/query/translate.cjs +45 -0
- package/lib/query/translate.d.ts +34 -0
- package/lib/raw/postgres.cjs +3 -0
- package/lib/raw/postgres.d.ts +36 -0
- package/lib/sequences/Sequence.cjs +121 -0
- package/lib/sequences/Sequence.d.ts +67 -0
- package/lib/sequences/index.cjs +18 -0
- package/lib/sequences/index.d.ts +1 -0
- package/lib/types.cjs +31 -0
- package/lib/types.d.ts +67 -0
- package/lib/utils.cjs +32 -0
- package/lib/utils.d.ts +16 -0
- package/package.json +128 -0
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { SQLOperator } from "./../types.js";
|
|
2
|
+
/**
|
|
3
|
+
* @description Default query limit for TypeORM-backed queries.
|
|
4
|
+
* @summary Maximum number of records to return in a single page when paginating results.
|
|
5
|
+
* @const TypeORMQueryLimit
|
|
6
|
+
* @memberOf module:for-typeorm
|
|
7
|
+
*/
|
|
8
|
+
export const TypeORMQueryLimit = 250;
|
|
9
|
+
/**
|
|
10
|
+
* @description Mapping of operator names to SQL operators.
|
|
11
|
+
* @summary Constants for comparison operators used when translating high-level filters into SQL via TypeORM.
|
|
12
|
+
* @typedef {Object} PostgreSQLOperatorType
|
|
13
|
+
* @property {string} EQUAL Equality operator (=)
|
|
14
|
+
* @property {string} DIFFERENT Inequality operator (<>)
|
|
15
|
+
* @property {string} BIGGER Greater than operator (>)
|
|
16
|
+
* @property {string} BIGGER_EQ Greater than or equal operator (>=)
|
|
17
|
+
* @property {string} SMALLER Less than operator (<)
|
|
18
|
+
* @property {string} SMALLER_EQ Less than or equal operator (<=)
|
|
19
|
+
* @property {string} NOT Negation operator (NOT)
|
|
20
|
+
* @property {string} IN In array operator (IN)
|
|
21
|
+
* @property {string} REGEXP Regular expression operator (~)
|
|
22
|
+
* @property {string} IREGEXP Case-insensitive regular expression operator (~*)
|
|
23
|
+
* @property {string} LIKE Pattern matching operator (LIKE)
|
|
24
|
+
* @property {string} ILIKE Case-insensitive pattern matching operator (ILIKE)
|
|
25
|
+
* @property {string} BETWEEN Range operator (BETWEEN)
|
|
26
|
+
* @property {string} IS_NULL NULL check operator (IS NULL)
|
|
27
|
+
* @property {string} IS_NOT_NULL NOT NULL check operator (IS NOT NULL)
|
|
28
|
+
* @const TypeORMOperator
|
|
29
|
+
* @type {PostgreSQLOperatorType}
|
|
30
|
+
* @memberOf module:for-typeorm
|
|
31
|
+
*/
|
|
32
|
+
export const TypeORMOperator = {
|
|
33
|
+
EQUAL: SQLOperator.EQUAL,
|
|
34
|
+
DIFFERENT: SQLOperator.NOT_EQUAL,
|
|
35
|
+
BIGGER: SQLOperator.GREATER_THAN,
|
|
36
|
+
BIGGER_EQ: SQLOperator.GREATER_THAN_OR_EQUAL,
|
|
37
|
+
SMALLER: SQLOperator.LESS_THAN,
|
|
38
|
+
SMALLER_EQ: SQLOperator.LESS_THAN_OR_EQUAL,
|
|
39
|
+
BETWEEN: SQLOperator.BETWEEN,
|
|
40
|
+
NOT: "NOT",
|
|
41
|
+
IN: SQLOperator.IN,
|
|
42
|
+
IS_NULL: SQLOperator.IS_NULL,
|
|
43
|
+
IS_NOT_NULL: SQLOperator.IS_NOT_NULL,
|
|
44
|
+
REGEXP: "~",
|
|
45
|
+
IREGEXP: "~*",
|
|
46
|
+
LIKE: SQLOperator.LIKE,
|
|
47
|
+
ILIKE: SQLOperator.ILIKE,
|
|
48
|
+
};
|
|
49
|
+
/**
|
|
50
|
+
* @description Mapping of logical operator names to SQL operators.
|
|
51
|
+
* @summary Constants for logical operators used when building WHERE clause groups in TypeORM queries.
|
|
52
|
+
* @typedef {Object} PostgreSQLGroupOperatorType
|
|
53
|
+
* @property {string} AND Logical AND operator (AND)
|
|
54
|
+
* @property {string} OR Logical OR operator (OR)
|
|
55
|
+
* @const TypeORMGroupOperator
|
|
56
|
+
* @type {PostgreSQLGroupOperatorType}
|
|
57
|
+
* @memberOf module:for-typeorm
|
|
58
|
+
*/
|
|
59
|
+
export const TypeORMGroupOperator = {
|
|
60
|
+
AND: "AND",
|
|
61
|
+
OR: "OR",
|
|
62
|
+
};
|
|
63
|
+
/**
|
|
64
|
+
* @description Special constant values used in queries.
|
|
65
|
+
* @summary String constants representing special values used while composing SQL with TypeORM.
|
|
66
|
+
* @typedef {Object} PostgreSQLConstType
|
|
67
|
+
* @property {string} NULL String representation of null value.
|
|
68
|
+
* @const TypeORMConst
|
|
69
|
+
* @memberOf module:for-typeorm
|
|
70
|
+
*/
|
|
71
|
+
export const TypeORMConst = {
|
|
72
|
+
NULL: "NULL",
|
|
73
|
+
};
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3F1ZXJ5L2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLHNCQUFpQjtBQUV2Qzs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLEdBQUcsQ0FBQztBQUVyQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQUNILE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBeUM7SUFDbkUsS0FBSyxFQUFFLFdBQVcsQ0FBQyxLQUFLO0lBQ3hCLFNBQVMsRUFBRSxXQUFXLENBQUMsU0FBUztJQUNoQyxNQUFNLEVBQUUsV0FBVyxDQUFDLFlBQVk7SUFDaEMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxxQkFBcUI7SUFDNUMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxTQUFTO0lBQzlCLFVBQVUsRUFBRSxXQUFXLENBQUMsa0JBQWtCO0lBQzFDLE9BQU8sRUFBRSxXQUFXLENBQUMsT0FBTztJQUM1QixHQUFHLEVBQUUsS0FBSztJQUNWLEVBQUUsRUFBRSxXQUFXLENBQUMsRUFBRTtJQUNsQixPQUFPLEVBQUUsV0FBVyxDQUFDLE9BQU87SUFDNUIsV0FBVyxFQUFFLFdBQVcsQ0FBQyxXQUFXO0lBQ3BDLE1BQU0sRUFBRSxHQUFHO0lBQ1gsT0FBTyxFQUFFLElBQUk7SUFDYixJQUFJLEVBQUUsV0FBVyxDQUFDLElBQUk7SUFDdEIsS0FBSyxFQUFFLFdBQVcsQ0FBQyxLQUFLO0NBQ3pCLENBQUM7QUFFRjs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBMkI7SUFDMUQsR0FBRyxFQUFFLEtBQUs7SUFDVixFQUFFLEVBQUUsSUFBSTtDQUNULENBQUM7QUFFRjs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUEyQjtJQUNsRCxJQUFJLEVBQUUsTUFBTTtDQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTUUxPcGVyYXRvciB9IGZyb20gXCIuLi90eXBlc1wiO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBEZWZhdWx0IHF1ZXJ5IGxpbWl0IGZvciBUeXBlT1JNLWJhY2tlZCBxdWVyaWVzLlxuICogQHN1bW1hcnkgTWF4aW11bSBudW1iZXIgb2YgcmVjb3JkcyB0byByZXR1cm4gaW4gYSBzaW5nbGUgcGFnZSB3aGVuIHBhZ2luYXRpbmcgcmVzdWx0cy5cbiAqIEBjb25zdCBUeXBlT1JNUXVlcnlMaW1pdFxuICogQG1lbWJlck9mIG1vZHVsZTpmb3ItdHlwZW9ybVxuICovXG5leHBvcnQgY29uc3QgVHlwZU9STVF1ZXJ5TGltaXQgPSAyNTA7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIE1hcHBpbmcgb2Ygb3BlcmF0b3IgbmFtZXMgdG8gU1FMIG9wZXJhdG9ycy5cbiAqIEBzdW1tYXJ5IENvbnN0YW50cyBmb3IgY29tcGFyaXNvbiBvcGVyYXRvcnMgdXNlZCB3aGVuIHRyYW5zbGF0aW5nIGhpZ2gtbGV2ZWwgZmlsdGVycyBpbnRvIFNRTCB2aWEgVHlwZU9STS5cbiAqIEB0eXBlZGVmIHtPYmplY3R9IFBvc3RncmVTUUxPcGVyYXRvclR5cGVcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBFUVVBTCBFcXVhbGl0eSBvcGVyYXRvciAoPSlcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBESUZGRVJFTlQgSW5lcXVhbGl0eSBvcGVyYXRvciAoPD4pXG4gKiBAcHJvcGVydHkge3N0cmluZ30gQklHR0VSIEdyZWF0ZXIgdGhhbiBvcGVyYXRvciAoPilcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBCSUdHRVJfRVEgR3JlYXRlciB0aGFuIG9yIGVxdWFsIG9wZXJhdG9yICg+PSlcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBTTUFMTEVSIExlc3MgdGhhbiBvcGVyYXRvciAoPClcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBTTUFMTEVSX0VRIExlc3MgdGhhbiBvciBlcXVhbCBvcGVyYXRvciAoPD0pXG4gKiBAcHJvcGVydHkge3N0cmluZ30gTk9UIE5lZ2F0aW9uIG9wZXJhdG9yIChOT1QpXG4gKiBAcHJvcGVydHkge3N0cmluZ30gSU4gSW4gYXJyYXkgb3BlcmF0b3IgKElOKVxuICogQHByb3BlcnR5IHtzdHJpbmd9IFJFR0VYUCBSZWd1bGFyIGV4cHJlc3Npb24gb3BlcmF0b3IgKH4pXG4gKiBAcHJvcGVydHkge3N0cmluZ30gSVJFR0VYUCBDYXNlLWluc2Vuc2l0aXZlIHJlZ3VsYXIgZXhwcmVzc2lvbiBvcGVyYXRvciAofiopXG4gKiBAcHJvcGVydHkge3N0cmluZ30gTElLRSBQYXR0ZXJuIG1hdGNoaW5nIG9wZXJhdG9yIChMSUtFKVxuICogQHByb3BlcnR5IHtzdHJpbmd9IElMSUtFIENhc2UtaW5zZW5zaXRpdmUgcGF0dGVybiBtYXRjaGluZyBvcGVyYXRvciAoSUxJS0UpXG4gKiBAcHJvcGVydHkge3N0cmluZ30gQkVUV0VFTiBSYW5nZSBvcGVyYXRvciAoQkVUV0VFTilcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBJU19OVUxMIE5VTEwgY2hlY2sgb3BlcmF0b3IgKElTIE5VTEwpXG4gKiBAcHJvcGVydHkge3N0cmluZ30gSVNfTk9UX05VTEwgTk9UIE5VTEwgY2hlY2sgb3BlcmF0b3IgKElTIE5PVCBOVUxMKVxuICogQGNvbnN0IFR5cGVPUk1PcGVyYXRvclxuICogQHR5cGUge1Bvc3RncmVTUUxPcGVyYXRvclR5cGV9XG4gKiBAbWVtYmVyT2YgbW9kdWxlOmZvci10eXBlb3JtXG4gKi9cbmV4cG9ydCBjb25zdCBUeXBlT1JNT3BlcmF0b3I6IFJlY29yZDxzdHJpbmcsIFNRTE9wZXJhdG9yIHwgc3RyaW5nPiA9IHtcbiAgRVFVQUw6IFNRTE9wZXJhdG9yLkVRVUFMLFxuICBESUZGRVJFTlQ6IFNRTE9wZXJhdG9yLk5PVF9FUVVBTCxcbiAgQklHR0VSOiBTUUxPcGVyYXRvci5HUkVBVEVSX1RIQU4sXG4gIEJJR0dFUl9FUTogU1FMT3BlcmF0b3IuR1JFQVRFUl9USEFOX09SX0VRVUFMLFxuICBTTUFMTEVSOiBTUUxPcGVyYXRvci5MRVNTX1RIQU4sXG4gIFNNQUxMRVJfRVE6IFNRTE9wZXJhdG9yLkxFU1NfVEhBTl9PUl9FUVVBTCxcbiAgQkVUV0VFTjogU1FMT3BlcmF0b3IuQkVUV0VFTixcbiAgTk9UOiBcIk5PVFwiLFxuICBJTjogU1FMT3BlcmF0b3IuSU4sXG4gIElTX05VTEw6IFNRTE9wZXJhdG9yLklTX05VTEwsXG4gIElTX05PVF9OVUxMOiBTUUxPcGVyYXRvci5JU19OT1RfTlVMTCxcbiAgUkVHRVhQOiBcIn5cIixcbiAgSVJFR0VYUDogXCJ+KlwiLFxuICBMSUtFOiBTUUxPcGVyYXRvci5MSUtFLFxuICBJTElLRTogU1FMT3BlcmF0b3IuSUxJS0UsXG59O1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBNYXBwaW5nIG9mIGxvZ2ljYWwgb3BlcmF0b3IgbmFtZXMgdG8gU1FMIG9wZXJhdG9ycy5cbiAqIEBzdW1tYXJ5IENvbnN0YW50cyBmb3IgbG9naWNhbCBvcGVyYXRvcnMgdXNlZCB3aGVuIGJ1aWxkaW5nIFdIRVJFIGNsYXVzZSBncm91cHMgaW4gVHlwZU9STSBxdWVyaWVzLlxuICogQHR5cGVkZWYge09iamVjdH0gUG9zdGdyZVNRTEdyb3VwT3BlcmF0b3JUeXBlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gQU5EIExvZ2ljYWwgQU5EIG9wZXJhdG9yIChBTkQpXG4gKiBAcHJvcGVydHkge3N0cmluZ30gT1IgTG9naWNhbCBPUiBvcGVyYXRvciAoT1IpXG4gKiBAY29uc3QgVHlwZU9STUdyb3VwT3BlcmF0b3JcbiAqIEB0eXBlIHtQb3N0Z3JlU1FMR3JvdXBPcGVyYXRvclR5cGV9XG4gKiBAbWVtYmVyT2YgbW9kdWxlOmZvci10eXBlb3JtXG4gKi9cbmV4cG9ydCBjb25zdCBUeXBlT1JNR3JvdXBPcGVyYXRvcjogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgQU5EOiBcIkFORFwiLFxuICBPUjogXCJPUlwiLFxufTtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gU3BlY2lhbCBjb25zdGFudCB2YWx1ZXMgdXNlZCBpbiBxdWVyaWVzLlxuICogQHN1bW1hcnkgU3RyaW5nIGNvbnN0YW50cyByZXByZXNlbnRpbmcgc3BlY2lhbCB2YWx1ZXMgdXNlZCB3aGlsZSBjb21wb3NpbmcgU1FMIHdpdGggVHlwZU9STS5cbiAqIEB0eXBlZGVmIHtPYmplY3R9IFBvc3RncmVTUUxDb25zdFR5cGVcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBOVUxMIFN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBudWxsIHZhbHVlLlxuICogQGNvbnN0IFR5cGVPUk1Db25zdFxuICogQG1lbWJlck9mIG1vZHVsZTpmb3ItdHlwZW9ybVxuICovXG5leHBvcnQgY29uc3QgVHlwZU9STUNvbnN0OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBOVUxMOiBcIk5VTExcIixcbn07XG4iXX0=
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export * from "./constants.js";
|
|
2
|
+
export * from "./Paginator.js";
|
|
3
|
+
export * from "./Statement.js";
|
|
4
|
+
export * from "./translate.js";
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcXVlcnkvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0JBQTRCO0FBQzVCLCtCQUE0QjtBQUM1QiwrQkFBNEI7QUFDNUIsK0JBQTRCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9QYWdpbmF0b3JcIjtcbmV4cG9ydCAqIGZyb20gXCIuL1N0YXRlbWVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdHJhbnNsYXRlXCI7XG4iXX0=
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { GroupOperator, Operator } from "@decaf-ts/core";
|
|
2
|
+
import { SQLOperator } from "../types";
|
|
3
|
+
/**
|
|
4
|
+
* @description Translates core operators to TypeORM SQL operators.
|
|
5
|
+
* @summary Converts Decaf.ts core operators to their equivalent SQL operators used by the TypeORM adapter.
|
|
6
|
+
* @param {GroupOperator | Operator} operator The core operator to translate.
|
|
7
|
+
* @return {SQLOperator | string} The equivalent SQL operator.
|
|
8
|
+
* @throws {QueryError} If no translation exists for the given operator.
|
|
9
|
+
* @function translateOperators
|
|
10
|
+
* @memberOf module:for-typeorm
|
|
11
|
+
* @mermaid
|
|
12
|
+
* sequenceDiagram
|
|
13
|
+
* participant Caller
|
|
14
|
+
* participant translateOperators
|
|
15
|
+
* participant PostgreSQLOperator
|
|
16
|
+
* participant PostgreSQLGroupOperator
|
|
17
|
+
*
|
|
18
|
+
* Caller->>translateOperators: operator
|
|
19
|
+
*
|
|
20
|
+
* translateOperators->>PostgreSQLOperator: Check for match
|
|
21
|
+
* alt Found in PostgreSQLOperator
|
|
22
|
+
* PostgreSQLOperator-->>translateOperators: Return matching operator
|
|
23
|
+
* translateOperators-->>Caller: Return SQLOperator
|
|
24
|
+
* else Not found
|
|
25
|
+
* translateOperators->>PostgreSQLGroupOperator: Check for match
|
|
26
|
+
* alt Found in PostgreSQLGroupOperator
|
|
27
|
+
* PostgreSQLGroupOperator-->>translateOperators: Return matching operator
|
|
28
|
+
* translateOperators-->>Caller: Return string
|
|
29
|
+
* else Not found
|
|
30
|
+
* translateOperators-->>Caller: Throw QueryError
|
|
31
|
+
* end
|
|
32
|
+
* end
|
|
33
|
+
*/
|
|
34
|
+
export declare function translateOperators(operator: GroupOperator | Operator): SQLOperator | string;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { TypeORMGroupOperator, TypeORMOperator } from "./constants.js";
|
|
2
|
+
import { QueryError } from "@decaf-ts/core";
|
|
3
|
+
/**
|
|
4
|
+
* @description Translates core operators to TypeORM SQL operators.
|
|
5
|
+
* @summary Converts Decaf.ts core operators to their equivalent SQL operators used by the TypeORM adapter.
|
|
6
|
+
* @param {GroupOperator | Operator} operator The core operator to translate.
|
|
7
|
+
* @return {SQLOperator | string} The equivalent SQL operator.
|
|
8
|
+
* @throws {QueryError} If no translation exists for the given operator.
|
|
9
|
+
* @function translateOperators
|
|
10
|
+
* @memberOf module:for-typeorm
|
|
11
|
+
* @mermaid
|
|
12
|
+
* sequenceDiagram
|
|
13
|
+
* participant Caller
|
|
14
|
+
* participant translateOperators
|
|
15
|
+
* participant PostgreSQLOperator
|
|
16
|
+
* participant PostgreSQLGroupOperator
|
|
17
|
+
*
|
|
18
|
+
* Caller->>translateOperators: operator
|
|
19
|
+
*
|
|
20
|
+
* translateOperators->>PostgreSQLOperator: Check for match
|
|
21
|
+
* alt Found in PostgreSQLOperator
|
|
22
|
+
* PostgreSQLOperator-->>translateOperators: Return matching operator
|
|
23
|
+
* translateOperators-->>Caller: Return SQLOperator
|
|
24
|
+
* else Not found
|
|
25
|
+
* translateOperators->>PostgreSQLGroupOperator: Check for match
|
|
26
|
+
* alt Found in PostgreSQLGroupOperator
|
|
27
|
+
* PostgreSQLGroupOperator-->>translateOperators: Return matching operator
|
|
28
|
+
* translateOperators-->>Caller: Return string
|
|
29
|
+
* else Not found
|
|
30
|
+
* translateOperators-->>Caller: Throw QueryError
|
|
31
|
+
* end
|
|
32
|
+
* end
|
|
33
|
+
*/
|
|
34
|
+
export function translateOperators(operator) {
|
|
35
|
+
for (const operators of [TypeORMOperator, TypeORMGroupOperator]) {
|
|
36
|
+
const el = Object.keys(operators).find((k) => k === operator);
|
|
37
|
+
if (el)
|
|
38
|
+
return operators[el];
|
|
39
|
+
}
|
|
40
|
+
throw new QueryError(`Could not find adapter translation for operator ${operator}`);
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3F1ZXJ5L3RyYW5zbGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsZUFBZSxFQUFFLHVCQUFvQjtBQUNwRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHNUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQThCRztBQUNILE1BQU0sVUFBVSxrQkFBa0IsQ0FDaEMsUUFBa0M7SUFFbEMsS0FBSyxNQUFNLFNBQVMsSUFBSSxDQUFDLGVBQWUsRUFBRSxvQkFBb0IsQ0FBQyxFQUFFLENBQUM7UUFDaEUsTUFBTSxFQUFFLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxRQUFRLENBQUMsQ0FBQztRQUM5RCxJQUFJLEVBQUU7WUFBRSxPQUFPLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBQ0QsTUFBTSxJQUFJLFVBQVUsQ0FDbEIsbURBQW1ELFFBQVEsRUFBRSxDQUM5RCxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEdyb3VwT3BlcmF0b3IsIE9wZXJhdG9yIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBUeXBlT1JNR3JvdXBPcGVyYXRvciwgVHlwZU9STU9wZXJhdG9yIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBRdWVyeUVycm9yIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBTUUxPcGVyYXRvciB9IGZyb20gXCIuLi90eXBlc1wiO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBUcmFuc2xhdGVzIGNvcmUgb3BlcmF0b3JzIHRvIFR5cGVPUk0gU1FMIG9wZXJhdG9ycy5cbiAqIEBzdW1tYXJ5IENvbnZlcnRzIERlY2FmLnRzIGNvcmUgb3BlcmF0b3JzIHRvIHRoZWlyIGVxdWl2YWxlbnQgU1FMIG9wZXJhdG9ycyB1c2VkIGJ5IHRoZSBUeXBlT1JNIGFkYXB0ZXIuXG4gKiBAcGFyYW0ge0dyb3VwT3BlcmF0b3IgfCBPcGVyYXRvcn0gb3BlcmF0b3IgVGhlIGNvcmUgb3BlcmF0b3IgdG8gdHJhbnNsYXRlLlxuICogQHJldHVybiB7U1FMT3BlcmF0b3IgfCBzdHJpbmd9IFRoZSBlcXVpdmFsZW50IFNRTCBvcGVyYXRvci5cbiAqIEB0aHJvd3Mge1F1ZXJ5RXJyb3J9IElmIG5vIHRyYW5zbGF0aW9uIGV4aXN0cyBmb3IgdGhlIGdpdmVuIG9wZXJhdG9yLlxuICogQGZ1bmN0aW9uIHRyYW5zbGF0ZU9wZXJhdG9yc1xuICogQG1lbWJlck9mIG1vZHVsZTpmb3ItdHlwZW9ybVxuICogQG1lcm1haWRcbiAqIHNlcXVlbmNlRGlhZ3JhbVxuICogICBwYXJ0aWNpcGFudCBDYWxsZXJcbiAqICAgcGFydGljaXBhbnQgdHJhbnNsYXRlT3BlcmF0b3JzXG4gKiAgIHBhcnRpY2lwYW50IFBvc3RncmVTUUxPcGVyYXRvclxuICogICBwYXJ0aWNpcGFudCBQb3N0Z3JlU1FMR3JvdXBPcGVyYXRvclxuICpcbiAqICAgQ2FsbGVyLT4+dHJhbnNsYXRlT3BlcmF0b3JzOiBvcGVyYXRvclxuICpcbiAqICAgdHJhbnNsYXRlT3BlcmF0b3JzLT4+UG9zdGdyZVNRTE9wZXJhdG9yOiBDaGVjayBmb3IgbWF0Y2hcbiAqICAgYWx0IEZvdW5kIGluIFBvc3RncmVTUUxPcGVyYXRvclxuICogICAgIFBvc3RncmVTUUxPcGVyYXRvci0tPj50cmFuc2xhdGVPcGVyYXRvcnM6IFJldHVybiBtYXRjaGluZyBvcGVyYXRvclxuICogICAgIHRyYW5zbGF0ZU9wZXJhdG9ycy0tPj5DYWxsZXI6IFJldHVybiBTUUxPcGVyYXRvclxuICogICBlbHNlIE5vdCBmb3VuZFxuICogICAgIHRyYW5zbGF0ZU9wZXJhdG9ycy0+PlBvc3RncmVTUUxHcm91cE9wZXJhdG9yOiBDaGVjayBmb3IgbWF0Y2hcbiAqICAgICBhbHQgRm91bmQgaW4gUG9zdGdyZVNRTEdyb3VwT3BlcmF0b3JcbiAqICAgICAgIFBvc3RncmVTUUxHcm91cE9wZXJhdG9yLS0+PnRyYW5zbGF0ZU9wZXJhdG9yczogUmV0dXJuIG1hdGNoaW5nIG9wZXJhdG9yXG4gKiAgICAgICB0cmFuc2xhdGVPcGVyYXRvcnMtLT4+Q2FsbGVyOiBSZXR1cm4gc3RyaW5nXG4gKiAgICAgZWxzZSBOb3QgZm91bmRcbiAqICAgICAgIHRyYW5zbGF0ZU9wZXJhdG9ycy0tPj5DYWxsZXI6IFRocm93IFF1ZXJ5RXJyb3JcbiAqICAgICBlbmRcbiAqICAgZW5kXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2xhdGVPcGVyYXRvcnMoXG4gIG9wZXJhdG9yOiBHcm91cE9wZXJhdG9yIHwgT3BlcmF0b3Jcbik6IFNRTE9wZXJhdG9yIHwgc3RyaW5nIHtcbiAgZm9yIChjb25zdCBvcGVyYXRvcnMgb2YgW1R5cGVPUk1PcGVyYXRvciwgVHlwZU9STUdyb3VwT3BlcmF0b3JdKSB7XG4gICAgY29uc3QgZWwgPSBPYmplY3Qua2V5cyhvcGVyYXRvcnMpLmZpbmQoKGspID0+IGsgPT09IG9wZXJhdG9yKTtcbiAgICBpZiAoZWwpIHJldHVybiBvcGVyYXRvcnNbZWxdO1xuICB9XG4gIHRocm93IG5ldyBRdWVyeUVycm9yKFxuICAgIGBDb3VsZCBub3QgZmluZCBhZGFwdGVyIHRyYW5zbGF0aW9uIGZvciBvcGVyYXRvciAke29wZXJhdG9yfWBcbiAgKTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description Definition of a PostgreSQL result field.
|
|
3
|
+
* @summary Describes metadata for a column returned in a PostgreSQL query result, including identifiers and type information.
|
|
4
|
+
* @interface FieldDef
|
|
5
|
+
* @memberOf module:for-typeorm
|
|
6
|
+
*/
|
|
7
|
+
export interface FieldDef {
|
|
8
|
+
name: string;
|
|
9
|
+
tableID: number;
|
|
10
|
+
columnID: number;
|
|
11
|
+
dataTypeID: number;
|
|
12
|
+
dataTypeSize: number;
|
|
13
|
+
dataTypeModifier: number;
|
|
14
|
+
format: string;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* @description Base shape for PostgreSQL query results.
|
|
18
|
+
* @summary Contains common properties present in all PostgreSQL query results such as the executed command, row count, oid, and fields metadata.
|
|
19
|
+
* @interface QueryResultBase
|
|
20
|
+
* @memberOf module:for-typeorm
|
|
21
|
+
*/
|
|
22
|
+
export interface QueryResultBase {
|
|
23
|
+
command: string;
|
|
24
|
+
rowCount: number | null;
|
|
25
|
+
oid: number;
|
|
26
|
+
fields: FieldDef[];
|
|
27
|
+
}
|
|
28
|
+
export interface QueryResultRow {
|
|
29
|
+
[column: string]: any;
|
|
30
|
+
}
|
|
31
|
+
export interface QueryResult<R extends QueryResultRow = any> extends QueryResultBase {
|
|
32
|
+
rows: R[];
|
|
33
|
+
}
|
|
34
|
+
export interface QueryArrayResult<R extends any[] = any[]> extends QueryResultBase {
|
|
35
|
+
rows: R[];
|
|
36
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zdGdyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcmF3L3Bvc3RncmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBkZXNjcmlwdGlvbiBEZWZpbml0aW9uIG9mIGEgUG9zdGdyZVNRTCByZXN1bHQgZmllbGQuXG4gKiBAc3VtbWFyeSBEZXNjcmliZXMgbWV0YWRhdGEgZm9yIGEgY29sdW1uIHJldHVybmVkIGluIGEgUG9zdGdyZVNRTCBxdWVyeSByZXN1bHQsIGluY2x1ZGluZyBpZGVudGlmaWVycyBhbmQgdHlwZSBpbmZvcm1hdGlvbi5cbiAqIEBpbnRlcmZhY2UgRmllbGREZWZcbiAqIEBtZW1iZXJPZiBtb2R1bGU6Zm9yLXR5cGVvcm1cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGaWVsZERlZiB7XG4gIG5hbWU6IHN0cmluZztcbiAgdGFibGVJRDogbnVtYmVyO1xuICBjb2x1bW5JRDogbnVtYmVyO1xuICBkYXRhVHlwZUlEOiBudW1iZXI7XG4gIGRhdGFUeXBlU2l6ZTogbnVtYmVyO1xuICBkYXRhVHlwZU1vZGlmaWVyOiBudW1iZXI7XG4gIGZvcm1hdDogc3RyaW5nO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBCYXNlIHNoYXBlIGZvciBQb3N0Z3JlU1FMIHF1ZXJ5IHJlc3VsdHMuXG4gKiBAc3VtbWFyeSBDb250YWlucyBjb21tb24gcHJvcGVydGllcyBwcmVzZW50IGluIGFsbCBQb3N0Z3JlU1FMIHF1ZXJ5IHJlc3VsdHMgc3VjaCBhcyB0aGUgZXhlY3V0ZWQgY29tbWFuZCwgcm93IGNvdW50LCBvaWQsIGFuZCBmaWVsZHMgbWV0YWRhdGEuXG4gKiBAaW50ZXJmYWNlIFF1ZXJ5UmVzdWx0QmFzZVxuICogQG1lbWJlck9mIG1vZHVsZTpmb3ItdHlwZW9ybVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFF1ZXJ5UmVzdWx0QmFzZSB7XG4gIGNvbW1hbmQ6IHN0cmluZztcbiAgcm93Q291bnQ6IG51bWJlciB8IG51bGw7XG4gIG9pZDogbnVtYmVyO1xuICBmaWVsZHM6IEZpZWxkRGVmW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUXVlcnlSZXN1bHRSb3cge1xuICBbY29sdW1uOiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUXVlcnlSZXN1bHQ8UiBleHRlbmRzIFF1ZXJ5UmVzdWx0Um93ID0gYW55PlxuICBleHRlbmRzIFF1ZXJ5UmVzdWx0QmFzZSB7XG4gIHJvd3M6IFJbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBRdWVyeUFycmF5UmVzdWx0PFIgZXh0ZW5kcyBhbnlbXSA9IGFueVtdPlxuICBleHRlbmRzIFF1ZXJ5UmVzdWx0QmFzZSB7XG4gIHJvd3M6IFJbXTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { SequenceOptions } from "@decaf-ts/core";
|
|
2
|
+
import { Sequence } from "@decaf-ts/core";
|
|
3
|
+
import { TypeORMAdapter } from "../TypeORMAdapter";
|
|
4
|
+
/**
|
|
5
|
+
* @description Abstract implementation of a database sequence for TypeORM.
|
|
6
|
+
* @summary Provides the basic functionality for {@link Sequence}s, delegating to the {@link TypeORMAdapter} to fetch and increment values while handling type parsing and error translation.
|
|
7
|
+
* @param {SequenceOptions} options The sequence configuration options (name, type, startWith, incrementBy, etc.).
|
|
8
|
+
* @param {TypeORMAdapter} adapter The TypeORM adapter used to execute sequence operations.
|
|
9
|
+
* @class TypeORMSequence
|
|
10
|
+
* @implements Sequence
|
|
11
|
+
* @example
|
|
12
|
+
* // Create and use a TypeORM-backed sequence
|
|
13
|
+
* const seq = new TypeORMSequence({ name: "user_id_seq", type: "Number", startWith: 1, incrementBy: 1 }, adapter);
|
|
14
|
+
* const nextId = await seq.next();
|
|
15
|
+
*
|
|
16
|
+
* @mermaid
|
|
17
|
+
* sequenceDiagram
|
|
18
|
+
* participant App
|
|
19
|
+
* participant Seq as TypeORMSequence
|
|
20
|
+
* participant Adapter as TypeORMAdapter
|
|
21
|
+
* participant DB as Database
|
|
22
|
+
* App->>Seq: next()
|
|
23
|
+
* Seq->>Seq: current()
|
|
24
|
+
* Seq->>Adapter: raw(SELECT current_value ...)
|
|
25
|
+
* Adapter->>DB: Query current value
|
|
26
|
+
* DB-->>Adapter: current_value
|
|
27
|
+
* Adapter-->>Seq: value
|
|
28
|
+
* Seq->>Seq: increment(current)
|
|
29
|
+
* Seq->>Adapter: raw(nextval(name))
|
|
30
|
+
* Adapter->>DB: nextval()
|
|
31
|
+
* DB-->>Adapter: next value
|
|
32
|
+
* Adapter-->>Seq: value
|
|
33
|
+
* Seq-->>App: parsed next value
|
|
34
|
+
*/
|
|
35
|
+
export declare class TypeORMSequence extends Sequence {
|
|
36
|
+
protected adapter: TypeORMAdapter;
|
|
37
|
+
constructor(options: SequenceOptions, adapter: TypeORMAdapter);
|
|
38
|
+
/**
|
|
39
|
+
* @summary Retrieves the current value for the sequence
|
|
40
|
+
* @protected
|
|
41
|
+
*/
|
|
42
|
+
current(): Promise<string | number | bigint>;
|
|
43
|
+
/**
|
|
44
|
+
* @summary Parses the {@link Sequence} value
|
|
45
|
+
*
|
|
46
|
+
* @protected
|
|
47
|
+
* @param value
|
|
48
|
+
*/
|
|
49
|
+
private parse;
|
|
50
|
+
/**
|
|
51
|
+
* @summary increments the sequence
|
|
52
|
+
* @description Sequence specific implementation
|
|
53
|
+
*
|
|
54
|
+
* @param {string | number | bigint} current
|
|
55
|
+
* @param count
|
|
56
|
+
* @protected
|
|
57
|
+
*/
|
|
58
|
+
private increment;
|
|
59
|
+
/**
|
|
60
|
+
* @summary Generates the next value in th sequence
|
|
61
|
+
* @description calls {@link Sequence#parse} on the current value
|
|
62
|
+
* followed by {@link Sequence#increment}
|
|
63
|
+
*
|
|
64
|
+
*/
|
|
65
|
+
next(): Promise<number | string | bigint>;
|
|
66
|
+
range(count: number): Promise<(number | string | bigint)[]>;
|
|
67
|
+
}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { InternalError, NotFoundError } from "@decaf-ts/db-decorators";
|
|
2
|
+
import { Sequence } from "@decaf-ts/core";
|
|
3
|
+
/**
|
|
4
|
+
* @description Abstract implementation of a database sequence for TypeORM.
|
|
5
|
+
* @summary Provides the basic functionality for {@link Sequence}s, delegating to the {@link TypeORMAdapter} to fetch and increment values while handling type parsing and error translation.
|
|
6
|
+
* @param {SequenceOptions} options The sequence configuration options (name, type, startWith, incrementBy, etc.).
|
|
7
|
+
* @param {TypeORMAdapter} adapter The TypeORM adapter used to execute sequence operations.
|
|
8
|
+
* @class TypeORMSequence
|
|
9
|
+
* @implements Sequence
|
|
10
|
+
* @example
|
|
11
|
+
* // Create and use a TypeORM-backed sequence
|
|
12
|
+
* const seq = new TypeORMSequence({ name: "user_id_seq", type: "Number", startWith: 1, incrementBy: 1 }, adapter);
|
|
13
|
+
* const nextId = await seq.next();
|
|
14
|
+
*
|
|
15
|
+
* @mermaid
|
|
16
|
+
* sequenceDiagram
|
|
17
|
+
* participant App
|
|
18
|
+
* participant Seq as TypeORMSequence
|
|
19
|
+
* participant Adapter as TypeORMAdapter
|
|
20
|
+
* participant DB as Database
|
|
21
|
+
* App->>Seq: next()
|
|
22
|
+
* Seq->>Seq: current()
|
|
23
|
+
* Seq->>Adapter: raw(SELECT current_value ...)
|
|
24
|
+
* Adapter->>DB: Query current value
|
|
25
|
+
* DB-->>Adapter: current_value
|
|
26
|
+
* Adapter-->>Seq: value
|
|
27
|
+
* Seq->>Seq: increment(current)
|
|
28
|
+
* Seq->>Adapter: raw(nextval(name))
|
|
29
|
+
* Adapter->>DB: nextval()
|
|
30
|
+
* DB-->>Adapter: next value
|
|
31
|
+
* Adapter-->>Seq: value
|
|
32
|
+
* Seq-->>App: parsed next value
|
|
33
|
+
*/
|
|
34
|
+
export class TypeORMSequence extends Sequence {
|
|
35
|
+
constructor(options, adapter) {
|
|
36
|
+
super(options);
|
|
37
|
+
this.adapter = adapter;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* @summary Retrieves the current value for the sequence
|
|
41
|
+
* @protected
|
|
42
|
+
*/
|
|
43
|
+
async current() {
|
|
44
|
+
const { name } = this.options;
|
|
45
|
+
try {
|
|
46
|
+
const seq = await this.adapter.raw({
|
|
47
|
+
query: `SELECT current_value FROM information_schema.sequences WHERE sequence_name = $1`,
|
|
48
|
+
values: [name],
|
|
49
|
+
});
|
|
50
|
+
return this.parse(seq.current_value);
|
|
51
|
+
}
|
|
52
|
+
catch (e) {
|
|
53
|
+
throw this.adapter.parseError(e);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* @summary Parses the {@link Sequence} value
|
|
58
|
+
*
|
|
59
|
+
* @protected
|
|
60
|
+
* @param value
|
|
61
|
+
*/
|
|
62
|
+
parse(value) {
|
|
63
|
+
return Sequence.parseValue(this.options.type, value);
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* @summary increments the sequence
|
|
67
|
+
* @description Sequence specific implementation
|
|
68
|
+
*
|
|
69
|
+
* @param {string | number | bigint} current
|
|
70
|
+
* @param count
|
|
71
|
+
* @protected
|
|
72
|
+
*/
|
|
73
|
+
async increment(current, count) {
|
|
74
|
+
const { type, incrementBy, name, startWith } = this.options;
|
|
75
|
+
if (type !== "Number" && type !== "BigInt")
|
|
76
|
+
throw new InternalError(`Cannot increment sequence of type ${type} with ${count}`);
|
|
77
|
+
let next;
|
|
78
|
+
try {
|
|
79
|
+
next = await this.adapter.raw({
|
|
80
|
+
query: `SELECT nextval($1);`,
|
|
81
|
+
values: [name],
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
catch (e) {
|
|
85
|
+
if (!(e instanceof NotFoundError))
|
|
86
|
+
throw e;
|
|
87
|
+
next = await this.adapter.raw({
|
|
88
|
+
query: `CREATE SEQUENCE IF NOT EXISTS $1 START WITH $2 INCREMENT BY $3 NO CYCLE;`,
|
|
89
|
+
values: [name, startWith, incrementBy],
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
return next;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* @summary Generates the next value in th sequence
|
|
96
|
+
* @description calls {@link Sequence#parse} on the current value
|
|
97
|
+
* followed by {@link Sequence#increment}
|
|
98
|
+
*
|
|
99
|
+
*/
|
|
100
|
+
async next() {
|
|
101
|
+
const current = await this.current();
|
|
102
|
+
return this.increment(current);
|
|
103
|
+
}
|
|
104
|
+
async range(count) {
|
|
105
|
+
const current = (await this.current());
|
|
106
|
+
const incrementBy = this.parse(this.options.incrementBy);
|
|
107
|
+
const next = await this.increment(current, this.parse(count) * incrementBy);
|
|
108
|
+
const range = [];
|
|
109
|
+
for (let i = 1; i <= count; i++) {
|
|
110
|
+
range.push(current + incrementBy * this.parse(i));
|
|
111
|
+
}
|
|
112
|
+
if (range[range.length - 1] !== next)
|
|
113
|
+
throw new InternalError("Miscalculation of range");
|
|
114
|
+
return range;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VxdWVuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VxdWVuY2VzL1NlcXVlbmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFdkUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E4Qkc7QUFDSCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxRQUFRO0lBQzNDLFlBQ0UsT0FBd0IsRUFDZCxPQUF1QjtRQUVqQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFGTCxZQUFPLEdBQVAsT0FBTyxDQUFnQjtJQUduQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLE9BQU87UUFDWCxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUM5QixJQUFJLENBQUM7WUFDSCxNQUFNLEdBQUcsR0FBUSxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDO2dCQUN0QyxLQUFLLEVBQUUsaUZBQWlGO2dCQUN4RixNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUM7YUFDZixDQUFDLENBQUM7WUFDSCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLGFBQWdDLENBQUMsQ0FBQztRQUMxRCxDQUFDO1FBQUMsT0FBTyxDQUFVLEVBQUUsQ0FBQztZQUNwQixNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQVUsQ0FBQyxDQUFDO1FBQzVDLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSyxLQUFLLENBQUMsS0FBK0I7UUFDM0MsT0FBTyxRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ssS0FBSyxDQUFDLFNBQVMsQ0FDckIsT0FBaUMsRUFDakMsS0FBYztRQUVkLE1BQU0sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQzVELElBQUksSUFBSSxLQUFLLFFBQVEsSUFBSSxJQUFJLEtBQUssUUFBUTtZQUN4QyxNQUFNLElBQUksYUFBYSxDQUNyQixxQ0FBcUMsSUFBSSxTQUFTLEtBQUssRUFBRSxDQUMxRCxDQUFDO1FBQ0osSUFBSSxJQUE4QixDQUFDO1FBQ25DLElBQUksQ0FBQztZQUNILElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDO2dCQUM1QixLQUFLLEVBQUUscUJBQXFCO2dCQUM1QixNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUM7YUFDZixDQUFDLENBQUM7UUFDTCxDQUFDO1FBQUMsT0FBTyxDQUFVLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsQ0FBQyxDQUFDLFlBQVksYUFBYSxDQUFDO2dCQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQzNDLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDO2dCQUM1QixLQUFLLEVBQUUsMEVBQTBFO2dCQUNqRixNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLFdBQVcsQ0FBQzthQUN2QyxDQUFDLENBQUM7UUFDTCxDQUFDO1FBRUQsT0FBTyxJQUFnQyxDQUFDO0lBQzFDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILEtBQUssQ0FBQyxJQUFJO1FBQ1IsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDckMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQWE7UUFDdkIsTUFBTSxPQUFPLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBVyxDQUFDO1FBQ2pELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQVcsQ0FBQztRQUNuRSxNQUFNLElBQUksR0FBNkIsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUN6RCxPQUFPLEVBQ04sSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQVksR0FBRyxXQUFXLENBQzVDLENBQUM7UUFDRixNQUFNLEtBQUssR0FBaUMsRUFBRSxDQUFDO1FBQy9DLEtBQUssSUFBSSxDQUFDLEdBQVcsQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUN4QyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxXQUFXLEdBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQVksQ0FBQyxDQUFDO1FBQ2hFLENBQUM7UUFDRCxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxLQUFLLElBQUk7WUFDbEMsTUFBTSxJQUFJLGFBQWEsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBQ3JELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW50ZXJuYWxFcnJvciwgTm90Rm91bmRFcnJvciB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgU2VxdWVuY2VPcHRpb25zIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBTZXF1ZW5jZSB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgVHlwZU9STUFkYXB0ZXIgfSBmcm9tIFwiLi4vVHlwZU9STUFkYXB0ZXJcIjtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gQWJzdHJhY3QgaW1wbGVtZW50YXRpb24gb2YgYSBkYXRhYmFzZSBzZXF1ZW5jZSBmb3IgVHlwZU9STS5cbiAqIEBzdW1tYXJ5IFByb3ZpZGVzIHRoZSBiYXNpYyBmdW5jdGlvbmFsaXR5IGZvciB7QGxpbmsgU2VxdWVuY2V9cywgZGVsZWdhdGluZyB0byB0aGUge0BsaW5rIFR5cGVPUk1BZGFwdGVyfSB0byBmZXRjaCBhbmQgaW5jcmVtZW50IHZhbHVlcyB3aGlsZSBoYW5kbGluZyB0eXBlIHBhcnNpbmcgYW5kIGVycm9yIHRyYW5zbGF0aW9uLlxuICogQHBhcmFtIHtTZXF1ZW5jZU9wdGlvbnN9IG9wdGlvbnMgVGhlIHNlcXVlbmNlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyAobmFtZSwgdHlwZSwgc3RhcnRXaXRoLCBpbmNyZW1lbnRCeSwgZXRjLikuXG4gKiBAcGFyYW0ge1R5cGVPUk1BZGFwdGVyfSBhZGFwdGVyIFRoZSBUeXBlT1JNIGFkYXB0ZXIgdXNlZCB0byBleGVjdXRlIHNlcXVlbmNlIG9wZXJhdGlvbnMuXG4gKiBAY2xhc3MgVHlwZU9STVNlcXVlbmNlXG4gKiBAaW1wbGVtZW50cyBTZXF1ZW5jZVxuICogQGV4YW1wbGVcbiAqIC8vIENyZWF0ZSBhbmQgdXNlIGEgVHlwZU9STS1iYWNrZWQgc2VxdWVuY2VcbiAqIGNvbnN0IHNlcSA9IG5ldyBUeXBlT1JNU2VxdWVuY2UoeyBuYW1lOiBcInVzZXJfaWRfc2VxXCIsIHR5cGU6IFwiTnVtYmVyXCIsIHN0YXJ0V2l0aDogMSwgaW5jcmVtZW50Qnk6IDEgfSwgYWRhcHRlcik7XG4gKiBjb25zdCBuZXh0SWQgPSBhd2FpdCBzZXEubmV4dCgpO1xuICpcbiAqIEBtZXJtYWlkXG4gKiBzZXF1ZW5jZURpYWdyYW1cbiAqICAgcGFydGljaXBhbnQgQXBwXG4gKiAgIHBhcnRpY2lwYW50IFNlcSBhcyBUeXBlT1JNU2VxdWVuY2VcbiAqICAgcGFydGljaXBhbnQgQWRhcHRlciBhcyBUeXBlT1JNQWRhcHRlclxuICogICBwYXJ0aWNpcGFudCBEQiBhcyBEYXRhYmFzZVxuICogICBBcHAtPj5TZXE6IG5leHQoKVxuICogICBTZXEtPj5TZXE6IGN1cnJlbnQoKVxuICogICBTZXEtPj5BZGFwdGVyOiByYXcoU0VMRUNUIGN1cnJlbnRfdmFsdWUgLi4uKVxuICogICBBZGFwdGVyLT4+REI6IFF1ZXJ5IGN1cnJlbnQgdmFsdWVcbiAqICAgREItLT4+QWRhcHRlcjogY3VycmVudF92YWx1ZVxuICogICBBZGFwdGVyLS0+PlNlcTogdmFsdWVcbiAqICAgU2VxLT4+U2VxOiBpbmNyZW1lbnQoY3VycmVudClcbiAqICAgU2VxLT4+QWRhcHRlcjogcmF3KG5leHR2YWwobmFtZSkpXG4gKiAgIEFkYXB0ZXItPj5EQjogbmV4dHZhbCgpXG4gKiAgIERCLS0+PkFkYXB0ZXI6IG5leHQgdmFsdWVcbiAqICAgQWRhcHRlci0tPj5TZXE6IHZhbHVlXG4gKiAgIFNlcS0tPj5BcHA6IHBhcnNlZCBuZXh0IHZhbHVlXG4gKi9cbmV4cG9ydCBjbGFzcyBUeXBlT1JNU2VxdWVuY2UgZXh0ZW5kcyBTZXF1ZW5jZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIG9wdGlvbnM6IFNlcXVlbmNlT3B0aW9ucyxcbiAgICBwcm90ZWN0ZWQgYWRhcHRlcjogVHlwZU9STUFkYXB0ZXJcbiAgKSB7XG4gICAgc3VwZXIob3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogQHN1bW1hcnkgUmV0cmlldmVzIHRoZSBjdXJyZW50IHZhbHVlIGZvciB0aGUgc2VxdWVuY2VcbiAgICogQHByb3RlY3RlZFxuICAgKi9cbiAgYXN5bmMgY3VycmVudCgpOiBQcm9taXNlPHN0cmluZyB8IG51bWJlciB8IGJpZ2ludD4ge1xuICAgIGNvbnN0IHsgbmFtZSB9ID0gdGhpcy5vcHRpb25zO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBzZXE6IGFueSA9IGF3YWl0IHRoaXMuYWRhcHRlci5yYXcoe1xuICAgICAgICBxdWVyeTogYFNFTEVDVCBjdXJyZW50X3ZhbHVlIEZST00gaW5mb3JtYXRpb25fc2NoZW1hLnNlcXVlbmNlcyBXSEVSRSBzZXF1ZW5jZV9uYW1lID0gJDFgLFxuICAgICAgICB2YWx1ZXM6IFtuYW1lXSxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHRoaXMucGFyc2Uoc2VxLmN1cnJlbnRfdmFsdWUgYXMgc3RyaW5nIHwgbnVtYmVyKTtcbiAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgICB0aHJvdyB0aGlzLmFkYXB0ZXIucGFyc2VFcnJvcihlIGFzIEVycm9yKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQHN1bW1hcnkgUGFyc2VzIHRoZSB7QGxpbmsgU2VxdWVuY2V9IHZhbHVlXG4gICAqXG4gICAqIEBwcm90ZWN0ZWRcbiAgICogQHBhcmFtIHZhbHVlXG4gICAqL1xuICBwcml2YXRlIHBhcnNlKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfCBiaWdpbnQpOiBzdHJpbmcgfCBudW1iZXIgfCBiaWdpbnQge1xuICAgIHJldHVybiBTZXF1ZW5jZS5wYXJzZVZhbHVlKHRoaXMub3B0aW9ucy50eXBlLCB2YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogQHN1bW1hcnkgaW5jcmVtZW50cyB0aGUgc2VxdWVuY2VcbiAgICogQGRlc2NyaXB0aW9uIFNlcXVlbmNlIHNwZWNpZmljIGltcGxlbWVudGF0aW9uXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVtYmVyIHwgYmlnaW50fSBjdXJyZW50XG4gICAqIEBwYXJhbSBjb3VudFxuICAgKiBAcHJvdGVjdGVkXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGluY3JlbWVudChcbiAgICBjdXJyZW50OiBzdHJpbmcgfCBudW1iZXIgfCBiaWdpbnQsXG4gICAgY291bnQ/OiBudW1iZXJcbiAgKTogUHJvbWlzZTxzdHJpbmcgfCBudW1iZXIgfCBiaWdpbnQ+IHtcbiAgICBjb25zdCB7IHR5cGUsIGluY3JlbWVudEJ5LCBuYW1lLCBzdGFydFdpdGggfSA9IHRoaXMub3B0aW9ucztcbiAgICBpZiAodHlwZSAhPT0gXCJOdW1iZXJcIiAmJiB0eXBlICE9PSBcIkJpZ0ludFwiKVxuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICAgIGBDYW5ub3QgaW5jcmVtZW50IHNlcXVlbmNlIG9mIHR5cGUgJHt0eXBlfSB3aXRoICR7Y291bnR9YFxuICAgICAgKTtcbiAgICBsZXQgbmV4dDogc3RyaW5nIHwgbnVtYmVyIHwgYmlnaW50O1xuICAgIHRyeSB7XG4gICAgICBuZXh0ID0gYXdhaXQgdGhpcy5hZGFwdGVyLnJhdyh7XG4gICAgICAgIHF1ZXJ5OiBgU0VMRUNUIG5leHR2YWwoJDEpO2AsXG4gICAgICAgIHZhbHVlczogW25hbWVdLFxuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgaWYgKCEoZSBpbnN0YW5jZW9mIE5vdEZvdW5kRXJyb3IpKSB0aHJvdyBlO1xuICAgICAgbmV4dCA9IGF3YWl0IHRoaXMuYWRhcHRlci5yYXcoe1xuICAgICAgICBxdWVyeTogYENSRUFURSBTRVFVRU5DRSBJRiBOT1QgRVhJU1RTICQxIFNUQVJUIFdJVEggJDIgSU5DUkVNRU5UIEJZICQzIE5PIENZQ0xFO2AsXG4gICAgICAgIHZhbHVlczogW25hbWUsIHN0YXJ0V2l0aCwgaW5jcmVtZW50QnldLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5leHQgYXMgc3RyaW5nIHwgbnVtYmVyIHwgYmlnaW50O1xuICB9XG5cbiAgLyoqXG4gICAqIEBzdW1tYXJ5IEdlbmVyYXRlcyB0aGUgbmV4dCB2YWx1ZSBpbiB0aCBzZXF1ZW5jZVxuICAgKiBAZGVzY3JpcHRpb24gY2FsbHMge0BsaW5rIFNlcXVlbmNlI3BhcnNlfSBvbiB0aGUgY3VycmVudCB2YWx1ZVxuICAgKiBmb2xsb3dlZCBieSB7QGxpbmsgU2VxdWVuY2UjaW5jcmVtZW50fVxuICAgKlxuICAgKi9cbiAgYXN5bmMgbmV4dCgpOiBQcm9taXNlPG51bWJlciB8IHN0cmluZyB8IGJpZ2ludD4ge1xuICAgIGNvbnN0IGN1cnJlbnQgPSBhd2FpdCB0aGlzLmN1cnJlbnQoKTtcbiAgICByZXR1cm4gdGhpcy5pbmNyZW1lbnQoY3VycmVudCk7XG4gIH1cblxuICBhc3luYyByYW5nZShjb3VudDogbnVtYmVyKTogUHJvbWlzZTwobnVtYmVyIHwgc3RyaW5nIHwgYmlnaW50KVtdPiB7XG4gICAgY29uc3QgY3VycmVudCA9IChhd2FpdCB0aGlzLmN1cnJlbnQoKSkgYXMgbnVtYmVyO1xuICAgIGNvbnN0IGluY3JlbWVudEJ5ID0gdGhpcy5wYXJzZSh0aGlzLm9wdGlvbnMuaW5jcmVtZW50QnkpIGFzIG51bWJlcjtcbiAgICBjb25zdCBuZXh0OiBzdHJpbmcgfCBudW1iZXIgfCBiaWdpbnQgPSBhd2FpdCB0aGlzLmluY3JlbWVudChcbiAgICAgIGN1cnJlbnQsXG4gICAgICAodGhpcy5wYXJzZShjb3VudCkgYXMgbnVtYmVyKSAqIGluY3JlbWVudEJ5XG4gICAgKTtcbiAgICBjb25zdCByYW5nZTogKG51bWJlciB8IHN0cmluZyB8IGJpZ2ludClbXSA9IFtdO1xuICAgIGZvciAobGV0IGk6IG51bWJlciA9IDE7IGkgPD0gY291bnQ7IGkrKykge1xuICAgICAgcmFuZ2UucHVzaChjdXJyZW50ICsgaW5jcmVtZW50QnkgKiAodGhpcy5wYXJzZShpKSBhcyBudW1iZXIpKTtcbiAgICB9XG4gICAgaWYgKHJhbmdlW3JhbmdlLmxlbmd0aCAtIDFdICE9PSBuZXh0KVxuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXCJNaXNjYWxjdWxhdGlvbiBvZiByYW5nZVwiKTtcbiAgICByZXR1cm4gcmFuZ2U7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./Sequence";
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from "./Sequence.js";
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VxdWVuY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDhCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL1NlcXVlbmNlXCI7XG4iXX0=
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { RepositoryFlags } from "@decaf-ts/db-decorators";
|
|
2
|
+
import { SelectQueryBuilder } from "typeorm";
|
|
3
|
+
import { Model } from "@decaf-ts/decorator-validation";
|
|
4
|
+
/**
|
|
5
|
+
* @description SQL operators available for building TypeORM queries.
|
|
6
|
+
* @summary Enumeration of common SQL operators intended for use within TypeORM query construction and translation layers.
|
|
7
|
+
* @enum {string}
|
|
8
|
+
* @memberOf module:for-typeorm
|
|
9
|
+
*/
|
|
10
|
+
export declare enum SQLOperator {
|
|
11
|
+
EQUAL = "=",
|
|
12
|
+
NOT_EQUAL = "<>",
|
|
13
|
+
LESS_THAN = "<",
|
|
14
|
+
LESS_THAN_OR_EQUAL = "<=",
|
|
15
|
+
GREATER_THAN = ">",
|
|
16
|
+
GREATER_THAN_OR_EQUAL = ">=",
|
|
17
|
+
IN = "IN",
|
|
18
|
+
NOT_IN = "NOT IN",
|
|
19
|
+
LIKE = "LIKE",
|
|
20
|
+
ILIKE = "ILIKE",
|
|
21
|
+
BETWEEN = "BETWEEN",
|
|
22
|
+
IS_NULL = "IS NULL",
|
|
23
|
+
IS_NOT_NULL = "IS NOT NULL",
|
|
24
|
+
EXISTS = "EXISTS",
|
|
25
|
+
NOT_EXISTS = "NOT EXISTS",
|
|
26
|
+
ANY = "ANY",
|
|
27
|
+
ALL = "ALL",
|
|
28
|
+
SOME = "SOME"
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* @description Query container used by the TypeORM adapter.
|
|
32
|
+
* @summary Represents either a raw SQL string or a TypeORM SelectQueryBuilder along with optional bound values to be executed by the adapter.
|
|
33
|
+
* @template M The Model type for which the SelectQueryBuilder is parameterized.
|
|
34
|
+
* @template T The underlying query type, either a string or a SelectQueryBuilder<M>.
|
|
35
|
+
* @interface TypeORMQuery
|
|
36
|
+
* @memberOf module:for-typeorm
|
|
37
|
+
*/
|
|
38
|
+
export interface TypeORMQuery<M extends Model = Model, T extends string | SelectQueryBuilder<M> = string> {
|
|
39
|
+
query: T;
|
|
40
|
+
values?: any[];
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* @description Configuration flags for TypeORM operations.
|
|
44
|
+
* @summary Extended repository flags including connection/user context that can be leveraged by the TypeORM adapter.
|
|
45
|
+
* @interface TypeORMFlags
|
|
46
|
+
* @memberOf module:for-typeorm
|
|
47
|
+
*/
|
|
48
|
+
export interface TypeORMFlags extends RepositoryFlags {
|
|
49
|
+
/**
|
|
50
|
+
* @description User authentication information for Postgres database connections
|
|
51
|
+
*/
|
|
52
|
+
user: string;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* @description Specification for a table creation/change statement used by the TypeORM adapter.
|
|
56
|
+
* @summary Extends a TypeORMQuery with table metadata such as primary key flag, constraints, and foreign keys.
|
|
57
|
+
* @typedef TypeORMTableSpec
|
|
58
|
+
* @property {boolean} primaryKey Indicates if the target column is part of the primary key.
|
|
59
|
+
* @property {string[]} constraints A list of raw SQL constraints to apply to the table/column.
|
|
60
|
+
* @property {string[]} foreignKeys A list of foreign key constraint definitions.
|
|
61
|
+
* @memberOf module:for-typeorm
|
|
62
|
+
*/
|
|
63
|
+
export type TypeORMTableSpec = TypeORMQuery & {
|
|
64
|
+
primaryKey: boolean;
|
|
65
|
+
constraints: string[];
|
|
66
|
+
foreignKeys: string[];
|
|
67
|
+
};
|
package/lib/esm/types.js
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description SQL operators available for building TypeORM queries.
|
|
3
|
+
* @summary Enumeration of common SQL operators intended for use within TypeORM query construction and translation layers.
|
|
4
|
+
* @enum {string}
|
|
5
|
+
* @memberOf module:for-typeorm
|
|
6
|
+
*/
|
|
7
|
+
export var SQLOperator;
|
|
8
|
+
(function (SQLOperator) {
|
|
9
|
+
SQLOperator["EQUAL"] = "=";
|
|
10
|
+
SQLOperator["NOT_EQUAL"] = "<>";
|
|
11
|
+
SQLOperator["LESS_THAN"] = "<";
|
|
12
|
+
SQLOperator["LESS_THAN_OR_EQUAL"] = "<=";
|
|
13
|
+
SQLOperator["GREATER_THAN"] = ">";
|
|
14
|
+
SQLOperator["GREATER_THAN_OR_EQUAL"] = ">=";
|
|
15
|
+
SQLOperator["IN"] = "IN";
|
|
16
|
+
SQLOperator["NOT_IN"] = "NOT IN";
|
|
17
|
+
SQLOperator["LIKE"] = "LIKE";
|
|
18
|
+
SQLOperator["ILIKE"] = "ILIKE";
|
|
19
|
+
SQLOperator["BETWEEN"] = "BETWEEN";
|
|
20
|
+
SQLOperator["IS_NULL"] = "IS NULL";
|
|
21
|
+
SQLOperator["IS_NOT_NULL"] = "IS NOT NULL";
|
|
22
|
+
SQLOperator["EXISTS"] = "EXISTS";
|
|
23
|
+
SQLOperator["NOT_EXISTS"] = "NOT EXISTS";
|
|
24
|
+
SQLOperator["ANY"] = "ANY";
|
|
25
|
+
SQLOperator["ALL"] = "ALL";
|
|
26
|
+
SQLOperator["SOME"] = "SOME";
|
|
27
|
+
})(SQLOperator || (SQLOperator = {}));
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUE7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQU4sSUFBWSxXQW1CWDtBQW5CRCxXQUFZLFdBQVc7SUFDckIsMEJBQVcsQ0FBQTtJQUNYLCtCQUFnQixDQUFBO0lBQ2hCLDhCQUFlLENBQUE7SUFDZix3Q0FBeUIsQ0FBQTtJQUN6QixpQ0FBa0IsQ0FBQTtJQUNsQiwyQ0FBNEIsQ0FBQTtJQUM1Qix3QkFBUyxDQUFBO0lBQ1QsZ0NBQWlCLENBQUE7SUFDakIsNEJBQWEsQ0FBQTtJQUNiLDhCQUFlLENBQUE7SUFDZixrQ0FBbUIsQ0FBQTtJQUNuQixrQ0FBbUIsQ0FBQTtJQUNuQiwwQ0FBMkIsQ0FBQTtJQUMzQixnQ0FBaUIsQ0FBQTtJQUNqQix3Q0FBeUIsQ0FBQTtJQUN6QiwwQkFBVyxDQUFBO0lBQ1gsMEJBQVcsQ0FBQTtJQUNYLDRCQUFhLENBQUE7QUFDZixDQUFDLEVBbkJXLFdBQVcsS0FBWCxXQUFXLFFBbUJ0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlcG9zaXRvcnlGbGFncyB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgU2VsZWN0UXVlcnlCdWlsZGVyIH0gZnJvbSBcInR5cGVvcm1cIjtcbmltcG9ydCB7IE1vZGVsIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBTUUwgb3BlcmF0b3JzIGF2YWlsYWJsZSBmb3IgYnVpbGRpbmcgVHlwZU9STSBxdWVyaWVzLlxuICogQHN1bW1hcnkgRW51bWVyYXRpb24gb2YgY29tbW9uIFNRTCBvcGVyYXRvcnMgaW50ZW5kZWQgZm9yIHVzZSB3aXRoaW4gVHlwZU9STSBxdWVyeSBjb25zdHJ1Y3Rpb24gYW5kIHRyYW5zbGF0aW9uIGxheWVycy5cbiAqIEBlbnVtIHtzdHJpbmd9XG4gKiBAbWVtYmVyT2YgbW9kdWxlOmZvci10eXBlb3JtXG4gKi9cbmV4cG9ydCBlbnVtIFNRTE9wZXJhdG9yIHtcbiAgRVFVQUwgPSBcIj1cIixcbiAgTk9UX0VRVUFMID0gXCI8PlwiLFxuICBMRVNTX1RIQU4gPSBcIjxcIixcbiAgTEVTU19USEFOX09SX0VRVUFMID0gXCI8PVwiLFxuICBHUkVBVEVSX1RIQU4gPSBcIj5cIixcbiAgR1JFQVRFUl9USEFOX09SX0VRVUFMID0gXCI+PVwiLFxuICBJTiA9IFwiSU5cIixcbiAgTk9UX0lOID0gXCJOT1QgSU5cIixcbiAgTElLRSA9IFwiTElLRVwiLFxuICBJTElLRSA9IFwiSUxJS0VcIixcbiAgQkVUV0VFTiA9IFwiQkVUV0VFTlwiLFxuICBJU19OVUxMID0gXCJJUyBOVUxMXCIsXG4gIElTX05PVF9OVUxMID0gXCJJUyBOT1QgTlVMTFwiLFxuICBFWElTVFMgPSBcIkVYSVNUU1wiLFxuICBOT1RfRVhJU1RTID0gXCJOT1QgRVhJU1RTXCIsXG4gIEFOWSA9IFwiQU5ZXCIsXG4gIEFMTCA9IFwiQUxMXCIsXG4gIFNPTUUgPSBcIlNPTUVcIixcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gUXVlcnkgY29udGFpbmVyIHVzZWQgYnkgdGhlIFR5cGVPUk0gYWRhcHRlci5cbiAqIEBzdW1tYXJ5IFJlcHJlc2VudHMgZWl0aGVyIGEgcmF3IFNRTCBzdHJpbmcgb3IgYSBUeXBlT1JNIFNlbGVjdFF1ZXJ5QnVpbGRlciBhbG9uZyB3aXRoIG9wdGlvbmFsIGJvdW5kIHZhbHVlcyB0byBiZSBleGVjdXRlZCBieSB0aGUgYWRhcHRlci5cbiAqIEB0ZW1wbGF0ZSBNIFRoZSBNb2RlbCB0eXBlIGZvciB3aGljaCB0aGUgU2VsZWN0UXVlcnlCdWlsZGVyIGlzIHBhcmFtZXRlcml6ZWQuXG4gKiBAdGVtcGxhdGUgVCBUaGUgdW5kZXJseWluZyBxdWVyeSB0eXBlLCBlaXRoZXIgYSBzdHJpbmcgb3IgYSBTZWxlY3RRdWVyeUJ1aWxkZXI8TT4uXG4gKiBAaW50ZXJmYWNlIFR5cGVPUk1RdWVyeVxuICogQG1lbWJlck9mIG1vZHVsZTpmb3ItdHlwZW9ybVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFR5cGVPUk1RdWVyeTxcbiAgTSBleHRlbmRzIE1vZGVsID0gTW9kZWwsXG4gIFQgZXh0ZW5kcyBzdHJpbmcgfCBTZWxlY3RRdWVyeUJ1aWxkZXI8TT4gPSBzdHJpbmcsXG4+IHtcbiAgcXVlcnk6IFQ7XG4gIHZhbHVlcz86IGFueVtdO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBDb25maWd1cmF0aW9uIGZsYWdzIGZvciBUeXBlT1JNIG9wZXJhdGlvbnMuXG4gKiBAc3VtbWFyeSBFeHRlbmRlZCByZXBvc2l0b3J5IGZsYWdzIGluY2x1ZGluZyBjb25uZWN0aW9uL3VzZXIgY29udGV4dCB0aGF0IGNhbiBiZSBsZXZlcmFnZWQgYnkgdGhlIFR5cGVPUk0gYWRhcHRlci5cbiAqIEBpbnRlcmZhY2UgVHlwZU9STUZsYWdzXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmZvci10eXBlb3JtXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVHlwZU9STUZsYWdzIGV4dGVuZHMgUmVwb3NpdG9yeUZsYWdzIHtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBVc2VyIGF1dGhlbnRpY2F0aW9uIGluZm9ybWF0aW9uIGZvciBQb3N0Z3JlcyBkYXRhYmFzZSBjb25uZWN0aW9uc1xuICAgKi9cbiAgdXNlcjogc3RyaW5nO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBTcGVjaWZpY2F0aW9uIGZvciBhIHRhYmxlIGNyZWF0aW9uL2NoYW5nZSBzdGF0ZW1lbnQgdXNlZCBieSB0aGUgVHlwZU9STSBhZGFwdGVyLlxuICogQHN1bW1hcnkgRXh0ZW5kcyBhIFR5cGVPUk1RdWVyeSB3aXRoIHRhYmxlIG1ldGFkYXRhIHN1Y2ggYXMgcHJpbWFyeSBrZXkgZmxhZywgY29uc3RyYWludHMsIGFuZCBmb3JlaWduIGtleXMuXG4gKiBAdHlwZWRlZiBUeXBlT1JNVGFibGVTcGVjXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IHByaW1hcnlLZXkgSW5kaWNhdGVzIGlmIHRoZSB0YXJnZXQgY29sdW1uIGlzIHBhcnQgb2YgdGhlIHByaW1hcnkga2V5LlxuICogQHByb3BlcnR5IHtzdHJpbmdbXX0gY29uc3RyYWludHMgQSBsaXN0IG9mIHJhdyBTUUwgY29uc3RyYWludHMgdG8gYXBwbHkgdG8gdGhlIHRhYmxlL2NvbHVtbi5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nW119IGZvcmVpZ25LZXlzIEEgbGlzdCBvZiBmb3JlaWduIGtleSBjb25zdHJhaW50IGRlZmluaXRpb25zLlxuICogQG1lbWJlck9mIG1vZHVsZTpmb3ItdHlwZW9ybVxuICovXG5leHBvcnQgdHlwZSBUeXBlT1JNVGFibGVTcGVjID0gVHlwZU9STVF1ZXJ5ICYge1xuICBwcmltYXJ5S2V5OiBib29sZWFuO1xuICBjb25zdHJhaW50czogc3RyaW5nW107XG4gIGZvcmVpZ25LZXlzOiBzdHJpbmdbXTtcbn07XG4iXX0=
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description Converts a JavaScript RegExp pattern to a PostgreSQL POSIX pattern string.
|
|
3
|
+
* @summary Accepts either a RegExp object or a string representation (/pattern/flags) and returns the raw pattern compatible with PostgreSQL's ~ and ~* operators.
|
|
4
|
+
* @param {RegExp|string} jsRegex JavaScript RegExp object or pattern string.
|
|
5
|
+
* @return {string} PostgreSQL-compatible regex pattern string.
|
|
6
|
+
* @function convertJsRegexToPostgres
|
|
7
|
+
* @mermaid
|
|
8
|
+
* sequenceDiagram
|
|
9
|
+
* participant App
|
|
10
|
+
* participant Utils as convertJsRegexToPostgres
|
|
11
|
+
* App->>Utils: convertJsRegexToPostgres(RegExp("foo.*","i"))
|
|
12
|
+
* Utils->>Utils: Parse string or use RegExp.source
|
|
13
|
+
* Utils-->>App: "foo.*"
|
|
14
|
+
* @memberOf module:for-typeorm
|
|
15
|
+
*/
|
|
16
|
+
export declare function convertJsRegexToPostgres(jsRegex: RegExp | string): string;
|
package/lib/esm/utils.js
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description Converts a JavaScript RegExp pattern to a PostgreSQL POSIX pattern string.
|
|
3
|
+
* @summary Accepts either a RegExp object or a string representation (/pattern/flags) and returns the raw pattern compatible with PostgreSQL's ~ and ~* operators.
|
|
4
|
+
* @param {RegExp|string} jsRegex JavaScript RegExp object or pattern string.
|
|
5
|
+
* @return {string} PostgreSQL-compatible regex pattern string.
|
|
6
|
+
* @function convertJsRegexToPostgres
|
|
7
|
+
* @mermaid
|
|
8
|
+
* sequenceDiagram
|
|
9
|
+
* participant App
|
|
10
|
+
* participant Utils as convertJsRegexToPostgres
|
|
11
|
+
* App->>Utils: convertJsRegexToPostgres(RegExp("foo.*","i"))
|
|
12
|
+
* Utils->>Utils: Parse string or use RegExp.source
|
|
13
|
+
* Utils-->>App: "foo.*"
|
|
14
|
+
* @memberOf module:for-typeorm
|
|
15
|
+
*/
|
|
16
|
+
export function convertJsRegexToPostgres(jsRegex) {
|
|
17
|
+
const rxp = new RegExp(/^\/(.+)\/(\w+)$/g);
|
|
18
|
+
if (typeof jsRegex === "string") {
|
|
19
|
+
const match = rxp.exec(jsRegex);
|
|
20
|
+
if (match) {
|
|
21
|
+
const [, p] = match;
|
|
22
|
+
jsRegex = p;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
const regex = typeof jsRegex === "string" ? new RegExp(jsRegex) : jsRegex;
|
|
26
|
+
const pattern = regex.source;
|
|
27
|
+
return pattern;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxNQUFNLFVBQVUsd0JBQXdCLENBQUMsT0FBd0I7SUFDL0QsTUFBTSxHQUFHLEdBQUcsSUFBSSxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUMzQyxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDaEMsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNWLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQztZQUNwQixPQUFPLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsQ0FBQztJQUNILENBQUM7SUFDRCxNQUFNLEtBQUssR0FBRyxPQUFPLE9BQU8sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7SUFFMUUsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztJQUU3QixPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZGVzY3JpcHRpb24gQ29udmVydHMgYSBKYXZhU2NyaXB0IFJlZ0V4cCBwYXR0ZXJuIHRvIGEgUG9zdGdyZVNRTCBQT1NJWCBwYXR0ZXJuIHN0cmluZy5cbiAqIEBzdW1tYXJ5IEFjY2VwdHMgZWl0aGVyIGEgUmVnRXhwIG9iamVjdCBvciBhIHN0cmluZyByZXByZXNlbnRhdGlvbiAoL3BhdHRlcm4vZmxhZ3MpIGFuZCByZXR1cm5zIHRoZSByYXcgcGF0dGVybiBjb21wYXRpYmxlIHdpdGggUG9zdGdyZVNRTCdzIH4gYW5kIH4qIG9wZXJhdG9ycy5cbiAqIEBwYXJhbSB7UmVnRXhwfHN0cmluZ30ganNSZWdleCBKYXZhU2NyaXB0IFJlZ0V4cCBvYmplY3Qgb3IgcGF0dGVybiBzdHJpbmcuXG4gKiBAcmV0dXJuIHtzdHJpbmd9IFBvc3RncmVTUUwtY29tcGF0aWJsZSByZWdleCBwYXR0ZXJuIHN0cmluZy5cbiAqIEBmdW5jdGlvbiBjb252ZXJ0SnNSZWdleFRvUG9zdGdyZXNcbiAqIEBtZXJtYWlkXG4gKiBzZXF1ZW5jZURpYWdyYW1cbiAqICAgcGFydGljaXBhbnQgQXBwXG4gKiAgIHBhcnRpY2lwYW50IFV0aWxzIGFzIGNvbnZlcnRKc1JlZ2V4VG9Qb3N0Z3Jlc1xuICogICBBcHAtPj5VdGlsczogY29udmVydEpzUmVnZXhUb1Bvc3RncmVzKFJlZ0V4cChcImZvby4qXCIsXCJpXCIpKVxuICogICBVdGlscy0+PlV0aWxzOiBQYXJzZSBzdHJpbmcgb3IgdXNlIFJlZ0V4cC5zb3VyY2VcbiAqICAgVXRpbHMtLT4+QXBwOiBcImZvby4qXCJcbiAqIEBtZW1iZXJPZiBtb2R1bGU6Zm9yLXR5cGVvcm1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRKc1JlZ2V4VG9Qb3N0Z3Jlcyhqc1JlZ2V4OiBSZWdFeHAgfCBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCByeHAgPSBuZXcgUmVnRXhwKC9eXFwvKC4rKVxcLyhcXHcrKSQvZyk7XG4gIGlmICh0eXBlb2YganNSZWdleCA9PT0gXCJzdHJpbmdcIikge1xuICAgIGNvbnN0IG1hdGNoID0gcnhwLmV4ZWMoanNSZWdleCk7XG4gICAgaWYgKG1hdGNoKSB7XG4gICAgICBjb25zdCBbLCBwXSA9IG1hdGNoO1xuICAgICAganNSZWdleCA9IHA7XG4gICAgfVxuICB9XG4gIGNvbnN0IHJlZ2V4ID0gdHlwZW9mIGpzUmVnZXggPT09IFwic3RyaW5nXCIgPyBuZXcgUmVnRXhwKGpzUmVnZXgpIDoganNSZWdleDtcblxuICBjb25zdCBwYXR0ZXJuID0gcmVnZXguc291cmNlO1xuXG4gIHJldHVybiBwYXR0ZXJuO1xufVxuIl19
|
package/lib/index.cjs
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.VERSION = void 0;
|
|
18
|
+
const TypeORMAdapter_1 = require("./TypeORMAdapter.cjs");
|
|
19
|
+
TypeORMAdapter_1.TypeORMAdapter.decoration();
|
|
20
|
+
__exportStar(require("./indexes/index.cjs"), exports);
|
|
21
|
+
__exportStar(require("./query/index.cjs"), exports);
|
|
22
|
+
__exportStar(require("./sequences/index.cjs"), exports);
|
|
23
|
+
__exportStar(require("./TypeORMAdapter.cjs"), exports);
|
|
24
|
+
__exportStar(require("./constants.cjs"), exports);
|
|
25
|
+
__exportStar(require("./errors.cjs"), exports);
|
|
26
|
+
__exportStar(require("./TypeORMDispatch.cjs"), exports);
|
|
27
|
+
__exportStar(require("./TypeORMRepository.cjs"), exports);
|
|
28
|
+
__exportStar(require("./types.cjs"), exports);
|
|
29
|
+
__exportStar(require("./utils.cjs"), exports);
|
|
30
|
+
/**
|
|
31
|
+
* @description TypeORM integration for Decaf.ts.
|
|
32
|
+
* @summary Provides the TypeORM-backed implementation of the Decaf.ts data access abstractions, including the adapter, repository, statement builder, pagination utilities, index helpers, and type definitions. Key exports include {@link TypeORMAdapter}, {@link TypeORMRepository}, {@link TypeORMStatement}, {@link TypeORMPaginator}, and index generation utilities.
|
|
33
|
+
* @module for-typeorm
|
|
34
|
+
*/
|
|
35
|
+
/**
|
|
36
|
+
* @description Stores the current package version.
|
|
37
|
+
* @summary The version string of the for-typeorm package.
|
|
38
|
+
* @const VERSION
|
|
39
|
+
* @memberOf module:for-typeorm
|
|
40
|
+
*/
|
|
41
|
+
exports.VERSION = "0.0.6";
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx5REFBa0Q7QUFFbEQsK0JBQWMsQ0FBQyxVQUFVLEVBQUUsQ0FBQztBQUU1QixzREFBMEI7QUFDMUIsb0RBQXdCO0FBQ3hCLHdEQUE0QjtBQUM1Qix1REFBaUM7QUFDakMsa0RBQTRCO0FBQzVCLCtDQUF5QjtBQUN6Qix3REFBa0M7QUFDbEMsMERBQW9DO0FBQ3BDLDhDQUF3QjtBQUN4Qiw4Q0FBd0I7QUFFeEI7Ozs7R0FJRztBQUVIOzs7OztHQUtHO0FBQ1UsUUFBQSxPQUFPLEdBQUcsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHlwZU9STUFkYXB0ZXIgfSBmcm9tIFwiLi9UeXBlT1JNQWRhcHRlclwiO1xuXG5UeXBlT1JNQWRhcHRlci5kZWNvcmF0aW9uKCk7XG5cbmV4cG9ydCAqIGZyb20gXCIuL2luZGV4ZXNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3F1ZXJ5XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zZXF1ZW5jZXNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL1R5cGVPUk1BZGFwdGVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2Vycm9yc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vVHlwZU9STURpc3BhdGNoXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9UeXBlT1JNUmVwb3NpdG9yeVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdHlwZXNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3V0aWxzXCI7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIFR5cGVPUk0gaW50ZWdyYXRpb24gZm9yIERlY2FmLnRzLlxuICogQHN1bW1hcnkgUHJvdmlkZXMgdGhlIFR5cGVPUk0tYmFja2VkIGltcGxlbWVudGF0aW9uIG9mIHRoZSBEZWNhZi50cyBkYXRhIGFjY2VzcyBhYnN0cmFjdGlvbnMsIGluY2x1ZGluZyB0aGUgYWRhcHRlciwgcmVwb3NpdG9yeSwgc3RhdGVtZW50IGJ1aWxkZXIsIHBhZ2luYXRpb24gdXRpbGl0aWVzLCBpbmRleCBoZWxwZXJzLCBhbmQgdHlwZSBkZWZpbml0aW9ucy4gS2V5IGV4cG9ydHMgaW5jbHVkZSB7QGxpbmsgVHlwZU9STUFkYXB0ZXJ9LCB7QGxpbmsgVHlwZU9STVJlcG9zaXRvcnl9LCB7QGxpbmsgVHlwZU9STVN0YXRlbWVudH0sIHtAbGluayBUeXBlT1JNUGFnaW5hdG9yfSwgYW5kIGluZGV4IGdlbmVyYXRpb24gdXRpbGl0aWVzLlxuICogQG1vZHVsZSBmb3ItdHlwZW9ybVxuICovXG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIFN0b3JlcyB0aGUgY3VycmVudCBwYWNrYWdlIHZlcnNpb24uXG4gKiBAc3VtbWFyeSBUaGUgdmVyc2lvbiBzdHJpbmcgb2YgdGhlIGZvci10eXBlb3JtIHBhY2thZ2UuXG4gKiBAY29uc3QgVkVSU0lPTlxuICogQG1lbWJlck9mIG1vZHVsZTpmb3ItdHlwZW9ybVxuICovXG5leHBvcnQgY29uc3QgVkVSU0lPTiA9IFwiIyNWRVJTSU9OIyNcIjtcbiJdfQ==
|