@metaobjectsdev/runtime-ts 0.6.0 → 0.7.0-rc.1
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 +5 -3
- package/dist/n2m-resolver.d.ts +4 -4
- package/dist/n2m-resolver.d.ts.map +1 -1
- package/dist/n2m-resolver.js +13 -13
- package/dist/n2m-resolver.js.map +1 -1
- package/dist/object-manager.d.ts +8 -0
- package/dist/object-manager.d.ts.map +1 -1
- package/dist/object-manager.js +23 -19
- package/dist/object-manager.js.map +1 -1
- package/dist/query-builder.d.ts +7 -7
- package/dist/query-builder.d.ts.map +1 -1
- package/dist/query-builder.js +28 -26
- package/dist/query-builder.js.map +1 -1
- package/dist/relation-resolver.d.ts +3 -3
- package/dist/relation-resolver.d.ts.map +1 -1
- package/dist/relation-resolver.js +5 -5
- package/dist/relation-resolver.js.map +1 -1
- package/package.json +2 -2
- package/src/n2m-resolver.ts +19 -11
- package/src/object-manager.ts +34 -19
- package/src/query-builder.ts +49 -25
- package/src/relation-resolver.ts +6 -3
package/README.md
CHANGED
|
@@ -13,13 +13,15 @@ npm install @metaobjectsdev/runtime-ts @metaobjectsdev/metadata kysely
|
|
|
13
13
|
## Usage
|
|
14
14
|
|
|
15
15
|
```typescript
|
|
16
|
-
import {
|
|
16
|
+
import { MetaDataLoader } from "@metaobjectsdev/metadata";
|
|
17
|
+
import { FileSource } from "@metaobjectsdev/metadata/core";
|
|
17
18
|
import { ObjectManager } from "@metaobjectsdev/runtime-ts";
|
|
18
19
|
import { kyselyDriver } from "@metaobjectsdev/runtime-ts/drivers";
|
|
19
20
|
import { Kysely } from "kysely";
|
|
20
21
|
|
|
21
|
-
const
|
|
22
|
-
|
|
22
|
+
const { root } = await new MetaDataLoader().load([
|
|
23
|
+
new FileSource("metaobjects/meta.blog.json"),
|
|
24
|
+
]);
|
|
23
25
|
|
|
24
26
|
const om = new ObjectManager({
|
|
25
27
|
metadata: root,
|
package/dist/n2m-resolver.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { MetaData } from "@metaobjectsdev/metadata";
|
|
1
|
+
import type { ColumnNamingStrategy, MetaData } from "@metaobjectsdev/metadata";
|
|
2
2
|
import type { SelectSpec, Row } from "./persistence-driver.js";
|
|
3
3
|
export interface N2mDescriptor {
|
|
4
4
|
/** Entity that declares the relationship (source of the lookup; its PK feeds sourceJoinField). */
|
|
@@ -21,7 +21,7 @@ export interface N2mBatchOutput {
|
|
|
21
21
|
}
|
|
22
22
|
/** Returns null if the named relationship is not N:M — caller should try resolveRelationDescriptor. */
|
|
23
23
|
export declare function resolveN2mDescriptor(sourceEntity: MetaData, relationName: string, root: MetaData): N2mDescriptor | null;
|
|
24
|
-
export declare function buildN2mLazySpecs(desc: N2mDescriptor, sourceRecord: Row, root: MetaData): N2mLazyOutput;
|
|
25
|
-
export declare function buildN2mBatchSpecs(desc: N2mDescriptor, sourceRecords: Row[], root: MetaData): N2mBatchOutput;
|
|
26
|
-
export declare function resolveJoinColumnName(joinEntity: MetaData, fieldName: string): string;
|
|
24
|
+
export declare function buildN2mLazySpecs(desc: N2mDescriptor, sourceRecord: Row, root: MetaData, strategy?: ColumnNamingStrategy): N2mLazyOutput;
|
|
25
|
+
export declare function buildN2mBatchSpecs(desc: N2mDescriptor, sourceRecords: Row[], root: MetaData, strategy?: ColumnNamingStrategy): N2mBatchOutput;
|
|
26
|
+
export declare function resolveJoinColumnName(joinEntity: MetaData, fieldName: string, strategy?: ColumnNamingStrategy): string;
|
|
27
27
|
//# sourceMappingURL=n2m-resolver.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"n2m-resolver.d.ts","sourceRoot":"","sources":["../src/n2m-resolver.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"n2m-resolver.d.ts","sourceRoot":"","sources":["../src/n2m-resolver.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAW/E,OAAO,KAAK,EAAE,UAAU,EAAkB,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAE/E,MAAM,WAAW,aAAa;IAC5B,kGAAkG;IAClG,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,gEAAgE;IAChE,eAAe,EAAE,MAAM,CAAC;IACxB,gEAAgE;IAChE,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,UAAU,CAAC;IACrB,gFAAgF;IAChF,cAAc,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,KAAK,UAAU,GAAG,IAAI,CAAC;CACxD;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,UAAU,CAAC;IACrB,cAAc,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,KAAK,UAAU,GAAG,IAAI,CAAC;CACxD;AAED,uGAAuG;AACvG,wBAAgB,oBAAoB,CAClC,YAAY,EAAE,QAAQ,EACtB,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,QAAQ,GACb,aAAa,GAAG,IAAI,CA+BtB;AAED,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,aAAa,EACnB,YAAY,EAAE,GAAG,EACjB,IAAI,EAAE,QAAQ,EACd,QAAQ,GAAE,oBAAqD,GAC9D,aAAa,CAgBf;AAED,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,aAAa,EACnB,aAAa,EAAE,GAAG,EAAE,EACpB,IAAI,EAAE,QAAQ,EACd,QAAQ,GAAE,oBAAqD,GAC9D,cAAc,CAgBhB;AAgCD,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EACvC,QAAQ,GAAE,oBAAqD,GAC9D,MAAM,CAIR"}
|
package/dist/n2m-resolver.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Two-stage N:M: first query the join entity for FK pairs, then query the target entity for the rows.
|
|
2
2
|
// The relationship declares @joinEntity + @joinFields: [sourceJoinField, targetJoinField].
|
|
3
|
-
import { TYPE_OBJECT, TYPE_FIELD, TYPE_RELATIONSHIP, RELATIONSHIP_ATTR_CARDINALITY, RELATIONSHIP_ATTR_OBJECT_REF, RELATIONSHIP_ATTR_JOIN_ENTITY, RELATIONSHIP_ATTR_JOIN_FIELDS, CARDINALITY_MANY, resolveColumnName, } from "@metaobjectsdev/metadata";
|
|
3
|
+
import { TYPE_OBJECT, TYPE_FIELD, TYPE_RELATIONSHIP, RELATIONSHIP_ATTR_CARDINALITY, RELATIONSHIP_ATTR_OBJECT_REF, RELATIONSHIP_ATTR_JOIN_ENTITY, RELATIONSHIP_ATTR_JOIN_FIELDS, CARDINALITY_MANY, DEFAULT_COLUMN_NAMING_STRATEGY, resolveColumnName, } from "@metaobjectsdev/metadata";
|
|
4
4
|
import { MetadataError } from "./errors.js";
|
|
5
5
|
import { buildSelectSpec, resolvePkFields } from "./query-builder.js";
|
|
6
6
|
/** Returns null if the named relationship is not N:M — caller should try resolveRelationDescriptor. */
|
|
@@ -36,33 +36,33 @@ export function resolveN2mDescriptor(sourceEntity, relationName, root) {
|
|
|
36
36
|
}
|
|
37
37
|
return null;
|
|
38
38
|
}
|
|
39
|
-
export function buildN2mLazySpecs(desc, sourceRecord, root) {
|
|
39
|
+
export function buildN2mLazySpecs(desc, sourceRecord, root, strategy = DEFAULT_COLUMN_NAMING_STRATEGY) {
|
|
40
40
|
const joinEntity = mustGetEntity(root, desc.joinEntityName);
|
|
41
41
|
const targetEntity = mustGetEntity(root, desc.targetEntityName);
|
|
42
42
|
const sourcePkField = resolvePkFields(mustGetEntity(root, desc.sourceEntityName))[0];
|
|
43
43
|
const sourcePkValue = sourceRecord[sourcePkField];
|
|
44
|
-
const joinSpec = buildSelectSpec(joinEntity, { [desc.sourceJoinField]: sourcePkValue }, {});
|
|
44
|
+
const joinSpec = buildSelectSpec(joinEntity, { [desc.sourceJoinField]: sourcePkValue }, {}, undefined, strategy);
|
|
45
45
|
const makeTargetSpec = (joinRows) => {
|
|
46
|
-
const targetIds = collectTargetIds(joinRows, desc.targetJoinField, joinEntity);
|
|
46
|
+
const targetIds = collectTargetIds(joinRows, desc.targetJoinField, joinEntity, strategy);
|
|
47
47
|
if (targetIds.length === 0)
|
|
48
48
|
return null;
|
|
49
49
|
const targetPkField = resolvePkFields(targetEntity)[0];
|
|
50
|
-
return buildSelectSpec(targetEntity, { [targetPkField]: targetIds }, {});
|
|
50
|
+
return buildSelectSpec(targetEntity, { [targetPkField]: targetIds }, {}, undefined, strategy);
|
|
51
51
|
};
|
|
52
52
|
return { joinSpec, makeTargetSpec };
|
|
53
53
|
}
|
|
54
|
-
export function buildN2mBatchSpecs(desc, sourceRecords, root) {
|
|
54
|
+
export function buildN2mBatchSpecs(desc, sourceRecords, root, strategy = DEFAULT_COLUMN_NAMING_STRATEGY) {
|
|
55
55
|
const joinEntity = mustGetEntity(root, desc.joinEntityName);
|
|
56
56
|
const targetEntity = mustGetEntity(root, desc.targetEntityName);
|
|
57
57
|
const sourcePkField = resolvePkFields(mustGetEntity(root, desc.sourceEntityName))[0];
|
|
58
58
|
const sourceIds = collectIds(sourceRecords, sourcePkField);
|
|
59
|
-
const joinSpec = buildSelectSpec(joinEntity, { [desc.sourceJoinField]: sourceIds }, {});
|
|
59
|
+
const joinSpec = buildSelectSpec(joinEntity, { [desc.sourceJoinField]: sourceIds }, {}, undefined, strategy);
|
|
60
60
|
const makeTargetSpec = (joinRows) => {
|
|
61
|
-
const targetIds = collectTargetIds(joinRows, desc.targetJoinField, joinEntity);
|
|
61
|
+
const targetIds = collectTargetIds(joinRows, desc.targetJoinField, joinEntity, strategy);
|
|
62
62
|
if (targetIds.length === 0)
|
|
63
63
|
return null;
|
|
64
64
|
const targetPkField = resolvePkFields(targetEntity)[0];
|
|
65
|
-
return buildSelectSpec(targetEntity, { [targetPkField]: targetIds }, {});
|
|
65
|
+
return buildSelectSpec(targetEntity, { [targetPkField]: targetIds }, {}, undefined, strategy);
|
|
66
66
|
};
|
|
67
67
|
return { joinSpec, makeTargetSpec };
|
|
68
68
|
}
|
|
@@ -82,9 +82,9 @@ function collectIds(records, pkField) {
|
|
|
82
82
|
}
|
|
83
83
|
return [...seen];
|
|
84
84
|
}
|
|
85
|
-
function collectTargetIds(joinRows, targetJoinField, joinEntity) {
|
|
85
|
+
function collectTargetIds(joinRows, targetJoinField, joinEntity, strategy) {
|
|
86
86
|
// joinRows are raw column-keyed (driver hasn't been to-JS-row'd yet); resolve the metadata field name to its DB column.
|
|
87
|
-
const dbColumn = resolveJoinColumnName(joinEntity, targetJoinField);
|
|
87
|
+
const dbColumn = resolveJoinColumnName(joinEntity, targetJoinField, strategy);
|
|
88
88
|
const seen = new Set();
|
|
89
89
|
for (const r of joinRows) {
|
|
90
90
|
const v = r[dbColumn];
|
|
@@ -94,10 +94,10 @@ function collectTargetIds(joinRows, targetJoinField, joinEntity) {
|
|
|
94
94
|
}
|
|
95
95
|
return [...seen];
|
|
96
96
|
}
|
|
97
|
-
export function resolveJoinColumnName(joinEntity, fieldName) {
|
|
97
|
+
export function resolveJoinColumnName(joinEntity, fieldName, strategy = DEFAULT_COLUMN_NAMING_STRATEGY) {
|
|
98
98
|
const field = joinEntity.ownChildren().find((c) => c.type === TYPE_FIELD && c.name === fieldName);
|
|
99
99
|
if (!field)
|
|
100
100
|
throw new MetadataError(`Join field '${fieldName}' not on '${joinEntity.name}'`);
|
|
101
|
-
return resolveColumnName(field);
|
|
101
|
+
return resolveColumnName(field, strategy);
|
|
102
102
|
}
|
|
103
103
|
//# sourceMappingURL=n2m-resolver.js.map
|
package/dist/n2m-resolver.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"n2m-resolver.js","sourceRoot":"","sources":["../src/n2m-resolver.ts"],"names":[],"mappings":"AAAA,sGAAsG;AACtG,2FAA2F;AAG3F,OAAO,EACL,WAAW,EAAE,UAAU,EAAE,iBAAiB,EAC1C,6BAA6B,EAAE,4BAA4B,EAC3D,6BAA6B,EAAE,6BAA6B,EAC5D,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAyBtE,uGAAuG;AACvG,MAAM,UAAU,oBAAoB,CAClC,YAAsB,EACtB,YAAoB,EACpB,IAAc;IAEd,KAAK,MAAM,KAAK,IAAI,YAAY,CAAC,WAAW,EAAE,EAAE,CAAC;QAC/C,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB;YAAE,SAAS;QAC/C,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY;YAAE,SAAS;QAC1C,IAAI,KAAK,CAAC,OAAO,CAAC,6BAA6B,CAAC,KAAK,gBAAgB;YAAE,SAAS;QAChF,MAAM,gBAAgB,GAAG,KAAK,CAAC,OAAO,CAAC,4BAA4B,CAAuB,CAAC;QAC3F,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,6BAA6B,CAAuB,CAAC;QAC1F,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC;QAChE,IAAI,CAAC,gBAAgB,IAAI,CAAC,cAAc,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClG,MAAM,IAAI,aAAa,CACrB,qBAAqB,YAAY,SAAS,YAAY,CAAC,IAAI,yEAAyE,EACpI,EAAE,MAAM,EAAE,YAAY,CAAC,IAAI,EAAE,CAC9B,CAAC;QACJ,CAAC;QACD,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,CAAC,IAAI,KAAK,gBAAgB,CAAC,CAAC;QAC3G,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,IAAI,aAAa,CAAC,kBAAkB,gBAAgB,aAAa,EAAE,EAAE,MAAM,EAAE,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1G,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC;QACvG,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,aAAa,CAAC,gBAAgB,cAAc,aAAa,EAAE,EAAE,MAAM,EAAE,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;QACtG,CAAC;QACD,OAAO;YACL,gBAAgB,EAAE,YAAY,CAAC,IAAI;YACnC,gBAAgB;YAChB,cAAc;YACd,eAAe,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACtC,eAAe,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;SACvC,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,IAAmB,EACnB,YAAiB,EACjB,IAAc;
|
|
1
|
+
{"version":3,"file":"n2m-resolver.js","sourceRoot":"","sources":["../src/n2m-resolver.ts"],"names":[],"mappings":"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"}
|
package/dist/object-manager.d.ts
CHANGED
|
@@ -1,11 +1,18 @@
|
|
|
1
1
|
import type { MetaData } from "@metaobjectsdev/metadata";
|
|
2
2
|
import type { PersistenceDriver, Row } from "./persistence-driver.js";
|
|
3
3
|
import { type Filter, type QueryOpts } from "./query-builder.js";
|
|
4
|
+
import { type ColumnNamingStrategy } from "@metaobjectsdev/metadata";
|
|
4
5
|
import { type FieldViewSpec, type EntityViewSpec } from "./view.js";
|
|
5
6
|
import type { ValidationResult } from "./validator-runner.js";
|
|
6
7
|
export interface ObjectManagerOptions {
|
|
7
8
|
metadata: MetaData;
|
|
8
9
|
driver: PersistenceDriver;
|
|
10
|
+
/**
|
|
11
|
+
* Column-naming strategy for fields with no `@column` override. Defaults to
|
|
12
|
+
* `"snake_case"`. Must agree with the codegen / migration config that
|
|
13
|
+
* created the schema (a mismatch yields columns the runtime can't address).
|
|
14
|
+
*/
|
|
15
|
+
columnNamingStrategy?: ColumnNamingStrategy;
|
|
9
16
|
}
|
|
10
17
|
export interface ReadOpts extends QueryOpts {
|
|
11
18
|
view?: string;
|
|
@@ -20,6 +27,7 @@ export interface WriteOpts {
|
|
|
20
27
|
export declare class ObjectManager {
|
|
21
28
|
private readonly metadata;
|
|
22
29
|
private readonly driver;
|
|
30
|
+
private readonly columnNamingStrategy;
|
|
23
31
|
private readonly nameMapCache;
|
|
24
32
|
constructor(opts: ObjectManagerOptions);
|
|
25
33
|
private nameMap;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"object-manager.d.ts","sourceRoot":"","sources":["../src/object-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAMzD,OAAO,KAAK,EACV,iBAAiB,EAAE,GAAG,EAEvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAGL,KAAK,MAAM,EAAE,KAAK,SAAS,EAC5B,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"object-manager.d.ts","sourceRoot":"","sources":["../src/object-manager.ts"],"names":[],"mappings":"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"}
|
package/dist/object-manager.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { TYPE_OBJECT, TYPE_FIELD, FIELD_SUBTYPE_INT, FIELD_SUBTYPE_SHORT, FIELD_SUBTYPE_BYTE, FIELD_SUBTYPE_LONG, FIELD_SUBTYPE_DOUBLE, FIELD_SUBTYPE_FLOAT, FIELD_SUBTYPE_DECIMAL, } from "@metaobjectsdev/metadata";
|
|
2
2
|
import { buildSelectSpec, buildCountSpec, buildInsertSpec, buildUpdateSpec, buildDeleteSpec, resolvePkFields, compileFilter, } from "./query-builder.js";
|
|
3
|
-
import { buildNameMap, resolveTableName } from "@metaobjectsdev/metadata";
|
|
3
|
+
import { buildNameMap, resolveTableName, DEFAULT_COLUMN_NAMING_STRATEGY, } from "@metaobjectsdev/metadata";
|
|
4
4
|
import { coerceRowOnRead, coerceRowOnWrite } from "./type-coercer.js";
|
|
5
5
|
import { decodeRef, encodeRef } from "./ref-codec.js";
|
|
6
6
|
import { runValidators } from "./validator-runner.js";
|
|
@@ -13,15 +13,17 @@ import { VALID_ENTITY_NAME, DEFAULT_IF_MISSING } from "./constants.js";
|
|
|
13
13
|
export class ObjectManager {
|
|
14
14
|
metadata;
|
|
15
15
|
driver;
|
|
16
|
+
columnNamingStrategy;
|
|
16
17
|
nameMapCache = new Map();
|
|
17
18
|
constructor(opts) {
|
|
18
19
|
this.metadata = opts.metadata;
|
|
19
20
|
this.driver = opts.driver;
|
|
21
|
+
this.columnNamingStrategy = opts.columnNamingStrategy ?? DEFAULT_COLUMN_NAMING_STRATEGY;
|
|
20
22
|
}
|
|
21
23
|
nameMap(entity) {
|
|
22
24
|
let m = this.nameMapCache.get(entity.name);
|
|
23
25
|
if (!m) {
|
|
24
|
-
m = buildNameMap(entity);
|
|
26
|
+
m = buildNameMap(entity, this.columnNamingStrategy);
|
|
25
27
|
this.nameMapCache.set(entity.name, m);
|
|
26
28
|
}
|
|
27
29
|
return m;
|
|
@@ -34,7 +36,7 @@ export class ObjectManager {
|
|
|
34
36
|
async findFirst(entityName, filter, opts = {}) {
|
|
35
37
|
const entity = this.requireEntity(entityName);
|
|
36
38
|
const driver = opts.tx ?? this.driver;
|
|
37
|
-
const spec = buildSelectSpec(entity, filter, { ...opts, limit: 1 });
|
|
39
|
+
const spec = buildSelectSpec(entity, filter, { ...opts, limit: 1 }, undefined, this.columnNamingStrategy);
|
|
38
40
|
const row = await driver.selectOne(spec);
|
|
39
41
|
if (row === null)
|
|
40
42
|
return null;
|
|
@@ -47,7 +49,7 @@ export class ObjectManager {
|
|
|
47
49
|
async findMany(entityName, filter, opts = {}) {
|
|
48
50
|
const entity = this.requireEntity(entityName);
|
|
49
51
|
const driver = opts.tx ?? this.driver;
|
|
50
|
-
const spec = buildSelectSpec(entity, filter, opts);
|
|
52
|
+
const spec = buildSelectSpec(entity, filter, opts, undefined, this.columnNamingStrategy);
|
|
51
53
|
const rows = (await driver.selectMany(spec)).map((r) => this.toJsRow(entity, r));
|
|
52
54
|
if (opts.include && opts.include.length > 0) {
|
|
53
55
|
await this.attachIncludes(entity, rows, opts.include, driver);
|
|
@@ -57,7 +59,7 @@ export class ObjectManager {
|
|
|
57
59
|
async count(entityName, filter, opts = {}) {
|
|
58
60
|
const entity = this.requireEntity(entityName);
|
|
59
61
|
const driver = opts.tx ?? this.driver;
|
|
60
|
-
return driver.count(buildCountSpec(entity, filter));
|
|
62
|
+
return driver.count(buildCountSpec(entity, filter, this.columnNamingStrategy));
|
|
61
63
|
}
|
|
62
64
|
async load(refString) {
|
|
63
65
|
const { entity: entityName, pkValues } = decodeRef(refString);
|
|
@@ -89,7 +91,7 @@ export class ObjectManager {
|
|
|
89
91
|
throw new ValidationError(formatValidationMessage(entityName, validation.errors), { entity: entityName, errors: validation.errors });
|
|
90
92
|
}
|
|
91
93
|
const coerced = coerceRowOnWrite(entity, merged, driver.dialect);
|
|
92
|
-
const spec = buildInsertSpec(entity, coerced);
|
|
94
|
+
const spec = buildInsertSpec(entity, coerced, this.columnNamingStrategy);
|
|
93
95
|
const dbRow = await driver.insert(spec);
|
|
94
96
|
return this.toJsRow(entity, dbRow);
|
|
95
97
|
}
|
|
@@ -103,7 +105,7 @@ export class ObjectManager {
|
|
|
103
105
|
throw new ValidationError(formatValidationMessage(entityName, validation.errors), { entity: entityName, errors: validation.errors });
|
|
104
106
|
}
|
|
105
107
|
const coerced = coerceRowOnWrite(entity, restricted, driver.dialect);
|
|
106
|
-
const spec = buildUpdateSpec(entity, coerced, id);
|
|
108
|
+
const spec = buildUpdateSpec(entity, coerced, id, this.columnNamingStrategy);
|
|
107
109
|
const dbRow = await driver.update(spec);
|
|
108
110
|
if (dbRow === null) {
|
|
109
111
|
const mode = opts.ifMissing ?? DEFAULT_IF_MISSING;
|
|
@@ -116,7 +118,7 @@ export class ObjectManager {
|
|
|
116
118
|
async delete(entityName, id, opts = {}) {
|
|
117
119
|
const entity = this.requireEntity(entityName);
|
|
118
120
|
const driver = opts.tx ?? this.driver;
|
|
119
|
-
const spec = buildDeleteSpec(entity, id);
|
|
121
|
+
const spec = buildDeleteSpec(entity, id, this.columnNamingStrategy);
|
|
120
122
|
const n = await driver.delete(spec);
|
|
121
123
|
if (n === 0) {
|
|
122
124
|
const mode = opts.ifMissing ?? DEFAULT_IF_MISSING;
|
|
@@ -165,7 +167,7 @@ export class ObjectManager {
|
|
|
165
167
|
const spec = {
|
|
166
168
|
table: resolveTableName(entity),
|
|
167
169
|
values: this.toDbRow(entity, coerced),
|
|
168
|
-
where: requireNonEmptyFilter(entity, filter, "updateMany"),
|
|
170
|
+
where: requireNonEmptyFilter(entity, filter, "updateMany", this.columnNamingStrategy),
|
|
169
171
|
};
|
|
170
172
|
return driver.updateMany(spec);
|
|
171
173
|
}
|
|
@@ -174,13 +176,15 @@ export class ObjectManager {
|
|
|
174
176
|
const driver = opts.tx ?? this.driver;
|
|
175
177
|
const spec = {
|
|
176
178
|
table: resolveTableName(entity),
|
|
177
|
-
where: requireNonEmptyFilter(entity, filter, "deleteMany"),
|
|
179
|
+
where: requireNonEmptyFilter(entity, filter, "deleteMany", this.columnNamingStrategy),
|
|
178
180
|
};
|
|
179
181
|
return driver.deleteMany(spec);
|
|
180
182
|
}
|
|
181
183
|
async transaction(fn) {
|
|
182
184
|
return this.driver.transaction(async (txDriver) => {
|
|
183
|
-
const txOm = new ObjectManager({
|
|
185
|
+
const txOm = new ObjectManager({
|
|
186
|
+
metadata: this.metadata, driver: txDriver, columnNamingStrategy: this.columnNamingStrategy,
|
|
187
|
+
});
|
|
184
188
|
return fn(txOm);
|
|
185
189
|
});
|
|
186
190
|
}
|
|
@@ -191,7 +195,7 @@ export class ObjectManager {
|
|
|
191
195
|
const n2m = resolveN2mDescriptor(entity, relationName, this.metadata);
|
|
192
196
|
if (n2m !== null) {
|
|
193
197
|
const target = this.requireEntity(n2m.targetEntityName);
|
|
194
|
-
const { joinSpec, makeTargetSpec } = buildN2mLazySpecs(n2m, record, this.metadata);
|
|
198
|
+
const { joinSpec, makeTargetSpec } = buildN2mLazySpecs(n2m, record, this.metadata, this.columnNamingStrategy);
|
|
195
199
|
const joinRows = await driver.selectMany(joinSpec);
|
|
196
200
|
const targetSpec = makeTargetSpec(joinRows);
|
|
197
201
|
if (targetSpec === null)
|
|
@@ -201,7 +205,7 @@ export class ObjectManager {
|
|
|
201
205
|
}
|
|
202
206
|
const desc = resolveRelationDescriptor(entity, relationName, this.metadata);
|
|
203
207
|
const target = this.requireEntity(desc.targetEntityName);
|
|
204
|
-
const spec = buildLazyRelateSpec(desc, record, this.metadata);
|
|
208
|
+
const spec = buildLazyRelateSpec(desc, record, this.metadata, this.columnNamingStrategy);
|
|
205
209
|
if (spec === null)
|
|
206
210
|
return desc.cardinality === "one" ? null : [];
|
|
207
211
|
if (desc.cardinality === "one") {
|
|
@@ -231,14 +235,14 @@ export class ObjectManager {
|
|
|
231
235
|
const n2m = resolveN2mDescriptor(entity, inc, this.metadata);
|
|
232
236
|
if (n2m !== null) {
|
|
233
237
|
const target = this.requireEntity(n2m.targetEntityName);
|
|
234
|
-
const { joinSpec, makeTargetSpec } = buildN2mBatchSpecs(n2m, records, this.metadata);
|
|
238
|
+
const { joinSpec, makeTargetSpec } = buildN2mBatchSpecs(n2m, records, this.metadata, this.columnNamingStrategy);
|
|
235
239
|
const joinRows = await driver.selectMany(joinSpec);
|
|
236
240
|
const targetSpec = makeTargetSpec(joinRows);
|
|
237
241
|
const targetRows = targetSpec === null ? [] : (await driver.selectMany(targetSpec)).map((r) => this.toJsRow(target, r));
|
|
238
242
|
const sourcePk = resolvePkFields(entity)[0];
|
|
239
243
|
const joinEntity = this.requireEntity(n2m.joinEntityName);
|
|
240
|
-
const sourceJoinDbCol = resolveJoinColumnName(joinEntity, n2m.sourceJoinField);
|
|
241
|
-
const targetJoinDbCol = resolveJoinColumnName(joinEntity, n2m.targetJoinField);
|
|
244
|
+
const sourceJoinDbCol = resolveJoinColumnName(joinEntity, n2m.sourceJoinField, this.columnNamingStrategy);
|
|
245
|
+
const targetJoinDbCol = resolveJoinColumnName(joinEntity, n2m.targetJoinField, this.columnNamingStrategy);
|
|
242
246
|
const targetPk = resolvePkFields(target)[0];
|
|
243
247
|
const targetById = new Map(targetRows.map((r) => [r[targetPk], r]));
|
|
244
248
|
const grouped = new Map();
|
|
@@ -257,7 +261,7 @@ export class ObjectManager {
|
|
|
257
261
|
}
|
|
258
262
|
const desc = resolveRelationDescriptor(entity, inc, this.metadata);
|
|
259
263
|
const target = this.requireEntity(desc.targetEntityName);
|
|
260
|
-
const spec = buildIncludeBatchSpec(desc, records, this.metadata);
|
|
264
|
+
const spec = buildIncludeBatchSpec(desc, records, this.metadata, this.columnNamingStrategy);
|
|
261
265
|
const targetRows = spec === null ? [] : (await driver.selectMany(spec)).map((r) => this.toJsRow(target, r));
|
|
262
266
|
if (desc.cardinality === "one") {
|
|
263
267
|
const byKey = new Map(targetRows.map((r) => [r[desc.targetField], r]));
|
|
@@ -327,8 +331,8 @@ export class ObjectManager {
|
|
|
327
331
|
}
|
|
328
332
|
// updateMany / deleteMany with an empty filter would silently affect every row.
|
|
329
333
|
// Force callers to be explicit (use $or-style or a tautology if they really mean "all").
|
|
330
|
-
function requireNonEmptyFilter(entity, filter, op) {
|
|
331
|
-
const where = compileFilter(entity, filter);
|
|
334
|
+
function requireNonEmptyFilter(entity, filter, op, strategy) {
|
|
335
|
+
const where = compileFilter(entity, filter, strategy);
|
|
332
336
|
if (where === null) {
|
|
333
337
|
throw new MetadataError(`${op} on '${entity.name}' requires a non-empty filter — pass an explicit condition or use a per-row loop`, { entity: entity.name });
|
|
334
338
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"object-manager.js","sourceRoot":"","sources":["../src/object-manager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"object-manager.js","sourceRoot":"","sources":["../src/object-manager.ts"],"names":[],"mappings":"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"}
|
package/dist/query-builder.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { MetaData } from "@metaobjectsdev/metadata";
|
|
1
|
+
import type { ColumnNamingStrategy, MetaData } from "@metaobjectsdev/metadata";
|
|
2
2
|
import type { WhereClause, Row, SelectSpec, InsertSpec, UpdateSpec, DeleteSpec, CountSpec } from "./persistence-driver.js";
|
|
3
3
|
export { resolveTableName } from "@metaobjectsdev/metadata";
|
|
4
4
|
export type Filter = Record<string, FilterValue> | {
|
|
@@ -25,11 +25,11 @@ export declare function resolvePkFields(entity: MetaData): string[];
|
|
|
25
25
|
* Returns null when `filter` has no clauses ({} or { $and: [] }) — meaning "match all"
|
|
26
26
|
* (callers should treat null the same as omitting the where clause entirely).
|
|
27
27
|
*/
|
|
28
|
-
export declare function compileFilter(entity: MetaData, filter: Filter): WhereClause | null;
|
|
28
|
+
export declare function compileFilter(entity: MetaData, filter: Filter, strategy?: ColumnNamingStrategy): WhereClause | null;
|
|
29
29
|
/** If `projectedFields` is provided, only those fields are selected (PK is auto-added). */
|
|
30
|
-
export declare function buildSelectSpec(entity: MetaData, filter: Filter | undefined, opts: QueryOpts, projectedFields?: string[]): SelectSpec;
|
|
31
|
-
export declare function buildCountSpec(entity: MetaData, filter: Filter | undefined): CountSpec;
|
|
32
|
-
export declare function buildInsertSpec(entity: MetaData, data: Row): InsertSpec;
|
|
33
|
-
export declare function buildUpdateSpec(entity: MetaData, data: Row, id: unknown): UpdateSpec;
|
|
34
|
-
export declare function buildDeleteSpec(entity: MetaData, id: unknown): DeleteSpec;
|
|
30
|
+
export declare function buildSelectSpec(entity: MetaData, filter: Filter | undefined, opts: QueryOpts, projectedFields?: string[], strategy?: ColumnNamingStrategy): SelectSpec;
|
|
31
|
+
export declare function buildCountSpec(entity: MetaData, filter: Filter | undefined, strategy?: ColumnNamingStrategy): CountSpec;
|
|
32
|
+
export declare function buildInsertSpec(entity: MetaData, data: Row, strategy?: ColumnNamingStrategy): InsertSpec;
|
|
33
|
+
export declare function buildUpdateSpec(entity: MetaData, data: Row, id: unknown, strategy?: ColumnNamingStrategy): UpdateSpec;
|
|
34
|
+
export declare function buildDeleteSpec(entity: MetaData, id: unknown, strategy?: ColumnNamingStrategy): DeleteSpec;
|
|
35
35
|
//# sourceMappingURL=query-builder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-builder.d.ts","sourceRoot":"","sources":["../src/query-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"query-builder.d.ts","sourceRoot":"","sources":["../src/query-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAS/E,OAAO,KAAK,EACV,WAAW,EAA2B,GAAG,EACzC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAC1D,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,MAAM,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG;IAAE,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAEtE,MAAM,MAAM,WAAW,GACnB,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAChC,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GACnB;IACE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;IACvC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;IACvC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEN,MAAM,WAAW,SAAS;IACxB,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,GAAG,MAAM,CAAC,EAAE,CAAC;IAChE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,QAAQ,GAAG,MAAM,EAAE,CAY1D;AA8BD;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,QAAQ,EAChB,MAAM,EAAE,MAAM,EACd,QAAQ,GAAE,oBAAqD,GAC9D,WAAW,GAAG,IAAI,CAoBpB;AAkDD,2FAA2F;AAC3F,wBAAgB,eAAe,CAC7B,MAAM,EAAE,QAAQ,EAChB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,IAAI,EAAE,SAAS,EACf,eAAe,CAAC,EAAE,MAAM,EAAE,EAC1B,QAAQ,GAAE,oBAAqD,GAC9D,UAAU,CAmBZ;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,EAC5C,QAAQ,GAAE,oBAAqD,GAC9D,SAAS,CAKX;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAC3B,QAAQ,GAAE,oBAAqD,GAC9D,UAAU,CAQZ;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,EACxC,QAAQ,GAAE,oBAAqD,GAC9D,UAAU,CAgBZ;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAC7B,QAAQ,GAAE,oBAAqD,GAC9D,UAAU,CAaZ"}
|
package/dist/query-builder.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { TYPE_FIELD, TYPE_IDENTITY, IDENTITY_SUBTYPE_PRIMARY, IDENTITY_ATTR_FIELDS, resolveTableName, resolveColumnName, } from "@metaobjectsdev/metadata";
|
|
1
|
+
import { TYPE_FIELD, TYPE_IDENTITY, IDENTITY_SUBTYPE_PRIMARY, IDENTITY_ATTR_FIELDS, DEFAULT_COLUMN_NAMING_STRATEGY, resolveTableName, resolveColumnName, } from "@metaobjectsdev/metadata";
|
|
2
2
|
import { MetadataError } from "./errors.js";
|
|
3
3
|
export { resolveTableName } from "@metaobjectsdev/metadata";
|
|
4
4
|
export function resolvePkFields(entity) {
|
|
@@ -27,11 +27,11 @@ function getField(entity, fieldName) {
|
|
|
27
27
|
}
|
|
28
28
|
return f;
|
|
29
29
|
}
|
|
30
|
-
function rowToColumns(entity, data) {
|
|
30
|
+
function rowToColumns(entity, data, strategy) {
|
|
31
31
|
const out = {};
|
|
32
32
|
for (const [k, v] of Object.entries(data)) {
|
|
33
33
|
const field = getField(entity, k);
|
|
34
|
-
out[resolveColumnName(field)] = v;
|
|
34
|
+
out[resolveColumnName(field, strategy)] = v;
|
|
35
35
|
}
|
|
36
36
|
return out;
|
|
37
37
|
}
|
|
@@ -39,12 +39,14 @@ function rowToColumns(entity, data) {
|
|
|
39
39
|
* Returns null when `filter` has no clauses ({} or { $and: [] }) — meaning "match all"
|
|
40
40
|
* (callers should treat null the same as omitting the where clause entirely).
|
|
41
41
|
*/
|
|
42
|
-
export function compileFilter(entity, filter) {
|
|
42
|
+
export function compileFilter(entity, filter, strategy = DEFAULT_COLUMN_NAMING_STRATEGY) {
|
|
43
43
|
if ("$and" in filter && Array.isArray(filter.$and)) {
|
|
44
44
|
// TS can't narrow $and away from the Record branch, so the runtime check above
|
|
45
45
|
// proves it's a Filter[] but the element type still needs a bridge cast.
|
|
46
46
|
const andFilters = filter.$and;
|
|
47
|
-
const clauses = andFilters
|
|
47
|
+
const clauses = andFilters
|
|
48
|
+
.map((f) => compileFilter(entity, f, strategy))
|
|
49
|
+
.filter((c) => c !== null);
|
|
48
50
|
if (clauses.length === 0)
|
|
49
51
|
return null;
|
|
50
52
|
return clauses.length === 1 ? clauses[0] : { kind: "and", clauses };
|
|
@@ -53,16 +55,16 @@ export function compileFilter(entity, filter) {
|
|
|
53
55
|
if (entries.length === 0)
|
|
54
56
|
return null;
|
|
55
57
|
if (entries.length === 1) {
|
|
56
|
-
return compileEntry(entity, entries[0][0], entries[0][1]);
|
|
58
|
+
return compileEntry(entity, entries[0][0], entries[0][1], strategy);
|
|
57
59
|
}
|
|
58
60
|
return {
|
|
59
61
|
kind: "and",
|
|
60
|
-
clauses: entries.map(([k, v]) => compileEntry(entity, k, v)),
|
|
62
|
+
clauses: entries.map(([k, v]) => compileEntry(entity, k, v, strategy)),
|
|
61
63
|
};
|
|
62
64
|
}
|
|
63
|
-
function compileEntry(entity, fieldName, value) {
|
|
65
|
+
function compileEntry(entity, fieldName, value, strategy) {
|
|
64
66
|
const field = getField(entity, fieldName);
|
|
65
|
-
const column = resolveColumnName(field);
|
|
67
|
+
const column = resolveColumnName(field, strategy);
|
|
66
68
|
if (value === null)
|
|
67
69
|
return { kind: "isNull", column, not: false };
|
|
68
70
|
if (typeof value === "string" || typeof value === "number" || typeof value === "boolean") {
|
|
@@ -101,29 +103,29 @@ function compileEntry(entity, fieldName, value) {
|
|
|
101
103
|
}
|
|
102
104
|
throw new MetadataError(`No recognized operator on filter for field '${fieldName}'`);
|
|
103
105
|
}
|
|
104
|
-
function normalizeOrderBy(input, entity) {
|
|
106
|
+
function normalizeOrderBy(input, entity, strategy) {
|
|
105
107
|
if (input === undefined)
|
|
106
108
|
return undefined;
|
|
107
109
|
const arr = Array.isArray(input[0]) ? input : [input];
|
|
108
110
|
return arr.map(([fieldName, dir]) => {
|
|
109
111
|
const field = getField(entity, fieldName);
|
|
110
|
-
return { column: resolveColumnName(field), direction: dir };
|
|
112
|
+
return { column: resolveColumnName(field, strategy), direction: dir };
|
|
111
113
|
});
|
|
112
114
|
}
|
|
113
115
|
/** If `projectedFields` is provided, only those fields are selected (PK is auto-added). */
|
|
114
|
-
export function buildSelectSpec(entity, filter, opts, projectedFields) {
|
|
116
|
+
export function buildSelectSpec(entity, filter, opts, projectedFields, strategy = DEFAULT_COLUMN_NAMING_STRATEGY) {
|
|
115
117
|
const allFields = projectedFields ?? listFieldNames(entity);
|
|
116
118
|
const pkFields = resolvePkFields(entity);
|
|
117
119
|
const fieldSet = new Set(allFields);
|
|
118
120
|
for (const pk of pkFields)
|
|
119
121
|
fieldSet.add(pk);
|
|
120
|
-
const columns = [...fieldSet].map((f) => resolveColumnName(getField(entity, f)));
|
|
121
|
-
const orderBy = normalizeOrderBy(opts.orderBy, entity);
|
|
122
|
+
const columns = [...fieldSet].map((f) => resolveColumnName(getField(entity, f), strategy));
|
|
123
|
+
const orderBy = normalizeOrderBy(opts.orderBy, entity, strategy);
|
|
122
124
|
const spec = {
|
|
123
125
|
table: resolveTableName(entity),
|
|
124
126
|
columns,
|
|
125
127
|
};
|
|
126
|
-
const where = filter !== undefined ? compileFilter(entity, filter) : null;
|
|
128
|
+
const where = filter !== undefined ? compileFilter(entity, filter, strategy) : null;
|
|
127
129
|
if (where !== null)
|
|
128
130
|
spec.where = where;
|
|
129
131
|
if (orderBy !== undefined)
|
|
@@ -134,42 +136,42 @@ export function buildSelectSpec(entity, filter, opts, projectedFields) {
|
|
|
134
136
|
spec.offset = opts.offset;
|
|
135
137
|
return spec;
|
|
136
138
|
}
|
|
137
|
-
export function buildCountSpec(entity, filter) {
|
|
139
|
+
export function buildCountSpec(entity, filter, strategy = DEFAULT_COLUMN_NAMING_STRATEGY) {
|
|
138
140
|
const spec = { table: resolveTableName(entity) };
|
|
139
|
-
const where = filter !== undefined ? compileFilter(entity, filter) : null;
|
|
141
|
+
const where = filter !== undefined ? compileFilter(entity, filter, strategy) : null;
|
|
140
142
|
if (where !== null)
|
|
141
143
|
spec.where = where;
|
|
142
144
|
return spec;
|
|
143
145
|
}
|
|
144
|
-
export function buildInsertSpec(entity, data) {
|
|
145
|
-
const values = rowToColumns(entity, data);
|
|
146
|
+
export function buildInsertSpec(entity, data, strategy = DEFAULT_COLUMN_NAMING_STRATEGY) {
|
|
147
|
+
const values = rowToColumns(entity, data, strategy);
|
|
146
148
|
const allFields = listFieldNames(entity);
|
|
147
149
|
return {
|
|
148
150
|
table: resolveTableName(entity),
|
|
149
151
|
values,
|
|
150
|
-
returning: allFields.map((f) => resolveColumnName(getField(entity, f))),
|
|
152
|
+
returning: allFields.map((f) => resolveColumnName(getField(entity, f), strategy)),
|
|
151
153
|
};
|
|
152
154
|
}
|
|
153
|
-
export function buildUpdateSpec(entity, data, id) {
|
|
154
|
-
const values = rowToColumns(entity, data);
|
|
155
|
+
export function buildUpdateSpec(entity, data, id, strategy = DEFAULT_COLUMN_NAMING_STRATEGY) {
|
|
156
|
+
const values = rowToColumns(entity, data, strategy);
|
|
155
157
|
const pkFields = resolvePkFields(entity);
|
|
156
158
|
if (pkFields.length !== 1) {
|
|
157
159
|
throw new MetadataError(`update-by-id requires single-column PK on '${entity.name}'; use updateMany for composite PKs`, { entity: entity.name });
|
|
158
160
|
}
|
|
159
|
-
const pkColumn = resolveColumnName(getField(entity, pkFields[0]));
|
|
161
|
+
const pkColumn = resolveColumnName(getField(entity, pkFields[0]), strategy);
|
|
160
162
|
return {
|
|
161
163
|
table: resolveTableName(entity),
|
|
162
164
|
values,
|
|
163
165
|
where: { kind: "eq", column: pkColumn, value: id },
|
|
164
|
-
returning: listFieldNames(entity).map((f) => resolveColumnName(getField(entity, f))),
|
|
166
|
+
returning: listFieldNames(entity).map((f) => resolveColumnName(getField(entity, f), strategy)),
|
|
165
167
|
};
|
|
166
168
|
}
|
|
167
|
-
export function buildDeleteSpec(entity, id) {
|
|
169
|
+
export function buildDeleteSpec(entity, id, strategy = DEFAULT_COLUMN_NAMING_STRATEGY) {
|
|
168
170
|
const pkFields = resolvePkFields(entity);
|
|
169
171
|
if (pkFields.length !== 1) {
|
|
170
172
|
throw new MetadataError(`delete-by-id requires single-column PK on '${entity.name}'; use deleteMany for composite PKs`, { entity: entity.name });
|
|
171
173
|
}
|
|
172
|
-
const pkColumn = resolveColumnName(getField(entity, pkFields[0]));
|
|
174
|
+
const pkColumn = resolveColumnName(getField(entity, pkFields[0]), strategy);
|
|
173
175
|
return {
|
|
174
176
|
table: resolveTableName(entity),
|
|
175
177
|
where: { kind: "eq", column: pkColumn, value: id },
|