@spinajs/orm-sql 2.0.507 → 2.0.509
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/lib/cjs/converters.d.ts +26 -1
- package/lib/cjs/converters.d.ts.map +1 -1
- package/lib/cjs/converters.js +27 -2
- package/lib/cjs/converters.js.map +1 -1
- package/lib/mjs/converters.d.ts +26 -1
- package/lib/mjs/converters.d.ts.map +1 -1
- package/lib/mjs/converters.js +27 -2
- package/lib/mjs/converters.js.map +1 -1
- package/lib/tsconfig.cjs.tsbuildinfo +1 -1
- package/lib/tsconfig.mjs.tsbuildinfo +1 -1
- package/package.json +5 -5
package/lib/cjs/converters.d.ts
CHANGED
|
@@ -6,7 +6,32 @@ export declare class SqlSetConverter implements IValueConverter {
|
|
|
6
6
|
fromDB(value: string | string[]): string[];
|
|
7
7
|
}
|
|
8
8
|
export declare class SqlBooleanValueConverter implements BooleanValueConverter {
|
|
9
|
-
|
|
9
|
+
/**
|
|
10
|
+
* SQL wants 0/1, a dehydrated payload wants the boolean the property declares.
|
|
11
|
+
*
|
|
12
|
+
* Both are `toDB`, and the caller is what tells them apart: an INSERT/UPDATE payload
|
|
13
|
+
* (`ModelToSqlConverter`, `StandardObjectToSqlConverter`) and a WHERE binding (`compilers.ts`,
|
|
14
|
+
* `statements.ts`) all call with FOUR arguments, while `dehydrators.ts` - the path behind
|
|
15
|
+
* `dehydrate()` and so behind `toJSON()` and every serialized response - is the only caller
|
|
16
|
+
* that passes a FIFTH, the dehydrate options. That fifth parameter is the same seam
|
|
17
|
+
* {@link SqlDatetimeValueConverter} reads for `dateTimeFormat`.
|
|
18
|
+
*
|
|
19
|
+
* Answering 0/1 to everyone breaks the contract the schema publishes: `columnToSchema`
|
|
20
|
+
* documents a column carrying `BooleanValueConverter` as `{ type: 'boolean' }`, so a response
|
|
21
|
+
* rendering `0` contradicts the model's own OpenAPI, and a generated client that validates its
|
|
22
|
+
* responses rejects the payload outright.
|
|
23
|
+
*
|
|
24
|
+
* Discriminated on the ARITY, not on the value: `dehydrate()` may be called with no options at
|
|
25
|
+
* all - `ModelBase.toJSON()` does exactly that - and `undefined` options still mean
|
|
26
|
+
* "serializing", not "writing a row".
|
|
27
|
+
*
|
|
28
|
+
* @param value - property value to write to the database, or to dehydrate
|
|
29
|
+
* @param _model - owning model, unused
|
|
30
|
+
* @param _column - column descriptor, unused
|
|
31
|
+
* @param _options - per-column converter options, unused
|
|
32
|
+
* @param dehydrating - present only when the caller is `dehydrate()`
|
|
33
|
+
*/
|
|
34
|
+
toDB(value: any, _model?: ModelBase<unknown>, _column?: IColumnDescriptor, _options?: any, ...dehydrating: [IDehydrateOptions?]): 0 | 1 | boolean;
|
|
10
35
|
fromDB(value: any): boolean;
|
|
11
36
|
}
|
|
12
37
|
export declare class SqlTimeValueConverter extends TimeValueConverter {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"converters.d.ts","sourceRoot":"","sources":["../../src/converters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,eAAe,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACnK,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAIzC,qBAAa,eAAgB,YAAW,eAAe;IAC9C,IAAI,CAAC,KAAK,EAAE,OAAO,WAKzB;IAEM,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,YAKrC;CACF;AAED,qBAAa,wBAAyB,YAAW,qBAAqB;IACpE,IAAI,CAAC,KAAK,EAAE,GAAG,
|
|
1
|
+
{"version":3,"file":"converters.d.ts","sourceRoot":"","sources":["../../src/converters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,eAAe,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACnK,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAIzC,qBAAa,eAAgB,YAAW,eAAe;IAC9C,IAAI,CAAC,KAAK,EAAE,OAAO,WAKzB;IAEM,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,YAKrC;CACF;AAED,qBAAa,wBAAyB,YAAW,qBAAqB;IACpE;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,iBAAiB,EAAE,QAAQ,CAAC,EAAE,GAAG,EAAE,GAAG,WAAW,EAAE,CAAC,iBAAiB,CAAC,CAAC,mBAE9H;IACD,MAAM,CAAC,KAAK,EAAE,GAAG,WAEhB;CACF;AAED,qBAAa,qBAAsB,SAAQ,kBAAkB;IAC3D;;;;;OAKG;IACI,IAAI,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAgC/E;IAED;;;;;OAKG;IACI,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,GAAG,SAAS,GAAG,QAAQ,GAAG,IAAI,CAwC1E;CACF;AAED,qBAAa,yBAA0B,SAAQ,sBAAsB;IAC5D,IAAI,CAAC,KAAK,EAAE,IAAI,GAAG,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,iBAAiB,EAAE,QAAQ,CAAC,EAAE,GAAG,EAAE,gBAAgB,CAAC,EAAE,iBAAiB,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAgCvK;IAEM,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,GAAG,MAAM,4BAyBrD;CACF"}
|
package/lib/cjs/converters.js
CHANGED
|
@@ -21,8 +21,33 @@ class SqlSetConverter {
|
|
|
21
21
|
}
|
|
22
22
|
exports.SqlSetConverter = SqlSetConverter;
|
|
23
23
|
class SqlBooleanValueConverter {
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
/**
|
|
25
|
+
* SQL wants 0/1, a dehydrated payload wants the boolean the property declares.
|
|
26
|
+
*
|
|
27
|
+
* Both are `toDB`, and the caller is what tells them apart: an INSERT/UPDATE payload
|
|
28
|
+
* (`ModelToSqlConverter`, `StandardObjectToSqlConverter`) and a WHERE binding (`compilers.ts`,
|
|
29
|
+
* `statements.ts`) all call with FOUR arguments, while `dehydrators.ts` - the path behind
|
|
30
|
+
* `dehydrate()` and so behind `toJSON()` and every serialized response - is the only caller
|
|
31
|
+
* that passes a FIFTH, the dehydrate options. That fifth parameter is the same seam
|
|
32
|
+
* {@link SqlDatetimeValueConverter} reads for `dateTimeFormat`.
|
|
33
|
+
*
|
|
34
|
+
* Answering 0/1 to everyone breaks the contract the schema publishes: `columnToSchema`
|
|
35
|
+
* documents a column carrying `BooleanValueConverter` as `{ type: 'boolean' }`, so a response
|
|
36
|
+
* rendering `0` contradicts the model's own OpenAPI, and a generated client that validates its
|
|
37
|
+
* responses rejects the payload outright.
|
|
38
|
+
*
|
|
39
|
+
* Discriminated on the ARITY, not on the value: `dehydrate()` may be called with no options at
|
|
40
|
+
* all - `ModelBase.toJSON()` does exactly that - and `undefined` options still mean
|
|
41
|
+
* "serializing", not "writing a row".
|
|
42
|
+
*
|
|
43
|
+
* @param value - property value to write to the database, or to dehydrate
|
|
44
|
+
* @param _model - owning model, unused
|
|
45
|
+
* @param _column - column descriptor, unused
|
|
46
|
+
* @param _options - per-column converter options, unused
|
|
47
|
+
* @param dehydrating - present only when the caller is `dehydrate()`
|
|
48
|
+
*/
|
|
49
|
+
toDB(value, _model, _column, _options, ...dehydrating) {
|
|
50
|
+
return dehydrating.length > 0 ? !!value : value ? 1 : 0;
|
|
26
51
|
}
|
|
27
52
|
fromDB(value) {
|
|
28
53
|
return value === 1 || value === true || value === '1';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"converters.js","sourceRoot":"","sources":["../../src/converters.ts"],"names":[],"mappings":";;;AAAA,sCAAmK;AACnK,iCAAiC;AACjC,wCAAyC;AAEzC,MAAM,oBAAoB,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;AAE5H;IACS,IAAI,CAAC,KAAc;QACxB,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAClC,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,MAAM,CAAC,KAAwB;QACpC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;QACD,OAAO,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;CACF;;AAED;IACE,IAAI,CAAC,KAAU;
|
|
1
|
+
{"version":3,"file":"converters.js","sourceRoot":"","sources":["../../src/converters.ts"],"names":[],"mappings":"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"}
|
package/lib/mjs/converters.d.ts
CHANGED
|
@@ -6,7 +6,32 @@ export declare class SqlSetConverter implements IValueConverter {
|
|
|
6
6
|
fromDB(value: string | string[]): string[];
|
|
7
7
|
}
|
|
8
8
|
export declare class SqlBooleanValueConverter implements BooleanValueConverter {
|
|
9
|
-
|
|
9
|
+
/**
|
|
10
|
+
* SQL wants 0/1, a dehydrated payload wants the boolean the property declares.
|
|
11
|
+
*
|
|
12
|
+
* Both are `toDB`, and the caller is what tells them apart: an INSERT/UPDATE payload
|
|
13
|
+
* (`ModelToSqlConverter`, `StandardObjectToSqlConverter`) and a WHERE binding (`compilers.ts`,
|
|
14
|
+
* `statements.ts`) all call with FOUR arguments, while `dehydrators.ts` - the path behind
|
|
15
|
+
* `dehydrate()` and so behind `toJSON()` and every serialized response - is the only caller
|
|
16
|
+
* that passes a FIFTH, the dehydrate options. That fifth parameter is the same seam
|
|
17
|
+
* {@link SqlDatetimeValueConverter} reads for `dateTimeFormat`.
|
|
18
|
+
*
|
|
19
|
+
* Answering 0/1 to everyone breaks the contract the schema publishes: `columnToSchema`
|
|
20
|
+
* documents a column carrying `BooleanValueConverter` as `{ type: 'boolean' }`, so a response
|
|
21
|
+
* rendering `0` contradicts the model's own OpenAPI, and a generated client that validates its
|
|
22
|
+
* responses rejects the payload outright.
|
|
23
|
+
*
|
|
24
|
+
* Discriminated on the ARITY, not on the value: `dehydrate()` may be called with no options at
|
|
25
|
+
* all - `ModelBase.toJSON()` does exactly that - and `undefined` options still mean
|
|
26
|
+
* "serializing", not "writing a row".
|
|
27
|
+
*
|
|
28
|
+
* @param value - property value to write to the database, or to dehydrate
|
|
29
|
+
* @param _model - owning model, unused
|
|
30
|
+
* @param _column - column descriptor, unused
|
|
31
|
+
* @param _options - per-column converter options, unused
|
|
32
|
+
* @param dehydrating - present only when the caller is `dehydrate()`
|
|
33
|
+
*/
|
|
34
|
+
toDB(value: any, _model?: ModelBase<unknown>, _column?: IColumnDescriptor, _options?: any, ...dehydrating: [IDehydrateOptions?]): 0 | 1 | boolean;
|
|
10
35
|
fromDB(value: any): boolean;
|
|
11
36
|
}
|
|
12
37
|
export declare class SqlTimeValueConverter extends TimeValueConverter {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"converters.d.ts","sourceRoot":"","sources":["../../src/converters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,eAAe,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACnK,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAIzC,qBAAa,eAAgB,YAAW,eAAe;IAC9C,IAAI,CAAC,KAAK,EAAE,OAAO,WAKzB;IAEM,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,YAKrC;CACF;AAED,qBAAa,wBAAyB,YAAW,qBAAqB;IACpE,IAAI,CAAC,KAAK,EAAE,GAAG,
|
|
1
|
+
{"version":3,"file":"converters.d.ts","sourceRoot":"","sources":["../../src/converters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,eAAe,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACnK,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAIzC,qBAAa,eAAgB,YAAW,eAAe;IAC9C,IAAI,CAAC,KAAK,EAAE,OAAO,WAKzB;IAEM,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,YAKrC;CACF;AAED,qBAAa,wBAAyB,YAAW,qBAAqB;IACpE;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,iBAAiB,EAAE,QAAQ,CAAC,EAAE,GAAG,EAAE,GAAG,WAAW,EAAE,CAAC,iBAAiB,CAAC,CAAC,mBAE9H;IACD,MAAM,CAAC,KAAK,EAAE,GAAG,WAEhB;CACF;AAED,qBAAa,qBAAsB,SAAQ,kBAAkB;IAC3D;;;;;OAKG;IACI,IAAI,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAgC/E;IAED;;;;;OAKG;IACI,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,GAAG,SAAS,GAAG,QAAQ,GAAG,IAAI,CAwC1E;CACF;AAED,qBAAa,yBAA0B,SAAQ,sBAAsB;IAC5D,IAAI,CAAC,KAAK,EAAE,IAAI,GAAG,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,iBAAiB,EAAE,QAAQ,CAAC,EAAE,GAAG,EAAE,gBAAgB,CAAC,EAAE,iBAAiB,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAgCvK;IAEM,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,GAAG,MAAM,4BAyBrD;CACF"}
|
package/lib/mjs/converters.js
CHANGED
|
@@ -17,8 +17,33 @@ export class SqlSetConverter {
|
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
19
|
export class SqlBooleanValueConverter {
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
/**
|
|
21
|
+
* SQL wants 0/1, a dehydrated payload wants the boolean the property declares.
|
|
22
|
+
*
|
|
23
|
+
* Both are `toDB`, and the caller is what tells them apart: an INSERT/UPDATE payload
|
|
24
|
+
* (`ModelToSqlConverter`, `StandardObjectToSqlConverter`) and a WHERE binding (`compilers.ts`,
|
|
25
|
+
* `statements.ts`) all call with FOUR arguments, while `dehydrators.ts` - the path behind
|
|
26
|
+
* `dehydrate()` and so behind `toJSON()` and every serialized response - is the only caller
|
|
27
|
+
* that passes a FIFTH, the dehydrate options. That fifth parameter is the same seam
|
|
28
|
+
* {@link SqlDatetimeValueConverter} reads for `dateTimeFormat`.
|
|
29
|
+
*
|
|
30
|
+
* Answering 0/1 to everyone breaks the contract the schema publishes: `columnToSchema`
|
|
31
|
+
* documents a column carrying `BooleanValueConverter` as `{ type: 'boolean' }`, so a response
|
|
32
|
+
* rendering `0` contradicts the model's own OpenAPI, and a generated client that validates its
|
|
33
|
+
* responses rejects the payload outright.
|
|
34
|
+
*
|
|
35
|
+
* Discriminated on the ARITY, not on the value: `dehydrate()` may be called with no options at
|
|
36
|
+
* all - `ModelBase.toJSON()` does exactly that - and `undefined` options still mean
|
|
37
|
+
* "serializing", not "writing a row".
|
|
38
|
+
*
|
|
39
|
+
* @param value - property value to write to the database, or to dehydrate
|
|
40
|
+
* @param _model - owning model, unused
|
|
41
|
+
* @param _column - column descriptor, unused
|
|
42
|
+
* @param _options - per-column converter options, unused
|
|
43
|
+
* @param dehydrating - present only when the caller is `dehydrate()`
|
|
44
|
+
*/
|
|
45
|
+
toDB(value, _model, _column, _options, ...dehydrating) {
|
|
46
|
+
return dehydrating.length > 0 ? !!value : value ? 1 : 0;
|
|
22
47
|
}
|
|
23
48
|
fromDB(value) {
|
|
24
49
|
return value === 1 || value === true || value === '1';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"converters.js","sourceRoot":"","sources":["../../src/converters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,sBAAsB,EAAoE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACnK,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,oBAAoB,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;AAE5H,MAAM,OAAO,eAAe;IACnB,IAAI,CAAC,KAAc;QACxB,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAClC,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,MAAM,CAAC,KAAwB;QACpC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;QACD,OAAO,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;CACF;AAED,MAAM,OAAO,wBAAwB;IACnC,IAAI,CAAC,KAAU;
|
|
1
|
+
{"version":3,"file":"converters.js","sourceRoot":"","sources":["../../src/converters.ts"],"names":[],"mappings":"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"}
|