@casekit/orm 0.0.1-alpha.10 → 0.0.1-alpha.12
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/queries/create/buildCreate.d.ts.map +1 -1
- package/lib/queries/create/buildCreate.js +3 -1
- package/lib/queries/create/buildCreate.js.map +1 -1
- package/lib/queries/create/tests/createMany.varied-keys.test.d.ts +2 -0
- package/lib/queries/create/tests/createMany.varied-keys.test.d.ts.map +1 -0
- package/lib/queries/create/tests/createMany.varied-keys.test.js +24 -0
- package/lib/queries/create/tests/createMany.varied-keys.test.js.map +1 -0
- package/lib/queries/find/types/FindManyResult.d.ts +2 -1
- package/lib/queries/find/types/FindManyResult.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/queries/create/buildCreate.ts +3 -1
- package/src/queries/create/tests/createMany.varied-keys.test.ts +28 -0
- package/src/queries/find/types/FindManyResult.ts +2 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildCreate.d.ts","sourceRoot":"","sources":["../../../src/queries/create/buildCreate.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"buildCreate.d.ts","sourceRoot":"","sources":["../../../src/queries/create/buildCreate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAI5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEpE,MAAM,MAAM,aAAa,GAAG;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACzC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,EAAE,CAAA;KAAE,EAAE,CAAC;IAC5D,UAAU,CAAC,EAAE;QAAE,EAAE,EAAE,SAAS,CAAA;KAAE,CAAC;IAC/B,SAAS,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC9D,CAAC;AAEF,eAAO,MAAM,WAAW,WACZ,iBAAiB,KACtB,MAAM,UACD,oBAAoB,2BAE7B,aA8CF,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { uniq } from "lodash-es";
|
|
1
2
|
import { OrmError } from "../../errors";
|
|
2
3
|
import { tableAlias } from "../util/tableAlias";
|
|
3
4
|
export const buildCreate = (config, m, params, _tableIndex = 0) => {
|
|
@@ -20,7 +21,8 @@ export const buildCreate = (config, m, params, _tableIndex = 0) => {
|
|
|
20
21
|
throw new OrmError("No data provided for create operation", {
|
|
21
22
|
data: { m, params },
|
|
22
23
|
});
|
|
23
|
-
|
|
24
|
+
const keys = uniq(values.flatMap((v) => Object.keys(v)));
|
|
25
|
+
for (const k of keys) {
|
|
24
26
|
builder.params.push({
|
|
25
27
|
name: model.columns[k]["name"],
|
|
26
28
|
path: k,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildCreate.js","sourceRoot":"","sources":["../../../src/queries/create/buildCreate.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"buildCreate.js","sourceRoot":"","sources":["../../../src/queries/create/buildCreate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAWhD,MAAM,CAAC,MAAM,WAAW,GAAG,CACvB,MAAyB,EACzB,CAAS,EACT,MAA4B,EAC5B,WAAW,GAAG,CAAC,EACF,EAAE;IACf,MAAM,OAAO,GAAkB;QAC3B,UAAU,EAAE,WAAW;QACvB,KAAK,EAAE;YACH,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK;YAC7B,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM;SAClC;QACD,MAAM,EAAE,EAAE;QACV,SAAS,EAAE,EAAE;KAChB,CAAC;IAEF,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAC/C,IAAI,QAAQ,GAAG,CAAC,CAAC;IAEjB,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC/B,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACnC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM;QAC5B,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QAC1D,CAAC,CAAC,CAAC,CACV,CAAC;IAEF,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QACnB,MAAM,IAAI,QAAQ,CAAC,uCAAuC,EAAE;YACxD,IAAI,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE;SACtB,CAAC,CAAC;IAEP,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzD,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACnB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;YAChB,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YAC9B,IAAI,EAAE,CAAC;YACP,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAClC,CAAC,CAAC;IACP,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,SAAS,IAAI,EAAE,EAAE,CAAC;QACrC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC;YACnB,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YAC9B,IAAI,EAAE,CAAC;YACP,KAAK,EAAE,GAAG,KAAK,IAAI,QAAQ,EAAE,EAAE;SAClC,CAAC,CAAC;IACP,CAAC;IAED,OAAO,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;IAEvC,OAAO,OAAO,CAAC;AACnB,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createMany.varied-keys.test.d.ts","sourceRoot":"","sources":["../../../../src/queries/create/tests/createMany.varied-keys.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { describe, expect, test } from "vitest";
|
|
2
|
+
import { db } from "../../../test/db";
|
|
3
|
+
describe("createMany", () => {
|
|
4
|
+
test("it can handle varied combinations of optional keys in its values", async () => {
|
|
5
|
+
await db.transact(async (db) => {
|
|
6
|
+
const russell = await db.createOne("user", {
|
|
7
|
+
values: { username: `Russell` },
|
|
8
|
+
returning: ["id", "username"],
|
|
9
|
+
});
|
|
10
|
+
const others = await db.createMany("user", {
|
|
11
|
+
values: [
|
|
12
|
+
{ username: "Fairooz" },
|
|
13
|
+
{ username: "Dan", invitedById: russell.id },
|
|
14
|
+
],
|
|
15
|
+
returning: ["username", "invitedById"],
|
|
16
|
+
});
|
|
17
|
+
expect(others).toEqual([
|
|
18
|
+
{ username: "Fairooz", invitedById: null },
|
|
19
|
+
{ username: "Dan", invitedById: russell.id },
|
|
20
|
+
]);
|
|
21
|
+
}, { rollback: true });
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
//# sourceMappingURL=createMany.varied-keys.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createMany.varied-keys.test.js","sourceRoot":"","sources":["../../../../src/queries/create/tests/createMany.varied-keys.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEhD,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAEtC,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IACxB,IAAI,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;QAChF,MAAM,EAAE,CAAC,QAAQ,CACb,KAAK,EAAE,EAAE,EAAE,EAAE;YACT,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE;gBACvC,MAAM,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;gBAC/B,SAAS,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC;aAChC,CAAC,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE;gBACvC,MAAM,EAAE;oBACJ,EAAE,QAAQ,EAAE,SAAS,EAAE;oBACvB,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,EAAE;iBAC/C;gBACD,SAAS,EAAE,CAAC,UAAU,EAAE,aAAa,CAAC;aACzC,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;gBACnB,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE;gBAC1C,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,EAAE;aAC/C,CAAC,CAAC;QACP,CAAC,EACD,EAAE,QAAQ,EAAE,IAAI,EAAE,CACrB,CAAC;IACN,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { ModelName } from "../../../schema/types/helpers/ModelName";
|
|
2
2
|
import { LooseModelDefinitions } from "../../../schema/types/loose/LooseModelDefinitions";
|
|
3
3
|
import { LooseRelationsDefinitions } from "../../../schema/types/loose/LooseRelationsDefinitions";
|
|
4
|
+
import { Simplify } from "../../../types/util/Simplify";
|
|
4
5
|
import { FindManyParams } from "./FindManyParams";
|
|
5
6
|
import { FindOneResult } from "./FindOneResult";
|
|
6
|
-
export type FindManyResult<Models extends LooseModelDefinitions, Relations extends LooseRelationsDefinitions<Models>, M extends ModelName<Models>, Q extends FindManyParams<Models, Relations, M>> = FindOneResult<Models, Relations, M, Q>[]
|
|
7
|
+
export type FindManyResult<Models extends LooseModelDefinitions, Relations extends LooseRelationsDefinitions<Models>, M extends ModelName<Models>, Q extends FindManyParams<Models, Relations, M>> = Simplify<FindOneResult<Models, Relations, M, Q>[]>;
|
|
7
8
|
//# sourceMappingURL=FindManyResult.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FindManyResult.d.ts","sourceRoot":"","sources":["../../../../src/queries/find/types/FindManyResult.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mDAAmD,CAAC;AAC1F,OAAO,EAAE,yBAAyB,EAAE,MAAM,uDAAuD,CAAC;AAClG,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,MAAM,cAAc,CACtB,MAAM,SAAS,qBAAqB,EACpC,SAAS,SAAS,yBAAyB,CAAC,MAAM,CAAC,EACnD,CAAC,SAAS,SAAS,CAAC,MAAM,CAAC,EAC3B,CAAC,SAAS,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,IAC9C,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"FindManyResult.d.ts","sourceRoot":"","sources":["../../../../src/queries/find/types/FindManyResult.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mDAAmD,CAAC;AAC1F,OAAO,EAAE,yBAAyB,EAAE,MAAM,uDAAuD,CAAC;AAClG,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,MAAM,cAAc,CACtB,MAAM,SAAS,qBAAqB,EACpC,SAAS,SAAS,yBAAyB,CAAC,MAAM,CAAC,EACnD,CAAC,SAAS,SAAS,CAAC,MAAM,CAAC,EAC3B,CAAC,SAAS,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,IAC9C,QAAQ,CAAC,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { uniq } from "lodash-es";
|
|
1
2
|
import { BaseConfiguration } from "src/schema/types/base/BaseConfiguration";
|
|
2
3
|
|
|
3
4
|
import { OrmError } from "../../errors";
|
|
@@ -43,7 +44,8 @@ export const buildCreate = (
|
|
|
43
44
|
data: { m, params },
|
|
44
45
|
});
|
|
45
46
|
|
|
46
|
-
|
|
47
|
+
const keys = uniq(values.flatMap((v) => Object.keys(v)));
|
|
48
|
+
for (const k of keys) {
|
|
47
49
|
builder.params.push({
|
|
48
50
|
name: model.columns[k]["name"],
|
|
49
51
|
path: k,
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { describe, expect, test } from "vitest";
|
|
2
|
+
|
|
3
|
+
import { db } from "../../../test/db";
|
|
4
|
+
|
|
5
|
+
describe("createMany", () => {
|
|
6
|
+
test("it can handle varied combinations of optional keys in its values", async () => {
|
|
7
|
+
await db.transact(
|
|
8
|
+
async (db) => {
|
|
9
|
+
const russell = await db.createOne("user", {
|
|
10
|
+
values: { username: `Russell` },
|
|
11
|
+
returning: ["id", "username"],
|
|
12
|
+
});
|
|
13
|
+
const others = await db.createMany("user", {
|
|
14
|
+
values: [
|
|
15
|
+
{ username: "Fairooz" },
|
|
16
|
+
{ username: "Dan", invitedById: russell.id },
|
|
17
|
+
],
|
|
18
|
+
returning: ["username", "invitedById"],
|
|
19
|
+
});
|
|
20
|
+
expect(others).toEqual([
|
|
21
|
+
{ username: "Fairooz", invitedById: null },
|
|
22
|
+
{ username: "Dan", invitedById: russell.id },
|
|
23
|
+
]);
|
|
24
|
+
},
|
|
25
|
+
{ rollback: true },
|
|
26
|
+
);
|
|
27
|
+
});
|
|
28
|
+
});
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ModelName } from "../../../schema/types/helpers/ModelName";
|
|
2
2
|
import { LooseModelDefinitions } from "../../../schema/types/loose/LooseModelDefinitions";
|
|
3
3
|
import { LooseRelationsDefinitions } from "../../../schema/types/loose/LooseRelationsDefinitions";
|
|
4
|
+
import { Simplify } from "../../../types/util/Simplify";
|
|
4
5
|
import { FindManyParams } from "./FindManyParams";
|
|
5
6
|
import { FindOneResult } from "./FindOneResult";
|
|
6
7
|
|
|
@@ -9,4 +10,4 @@ export type FindManyResult<
|
|
|
9
10
|
Relations extends LooseRelationsDefinitions<Models>,
|
|
10
11
|
M extends ModelName<Models>,
|
|
11
12
|
Q extends FindManyParams<Models, Relations, M>,
|
|
12
|
-
> = FindOneResult<Models, Relations, M, Q>[]
|
|
13
|
+
> = Simplify<FindOneResult<Models, Relations, M, Q>[]>;
|