@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.
@@ -1 +1 @@
1
- {"version":3,"file":"buildCreate.d.ts","sourceRoot":"","sources":["../../../src/queries/create/buildCreate.ts"],"names":[],"mappings":"AAAA,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,aA6CF,CAAC"}
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
- for (const k of Object.keys(values[0])) {
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":"AAEA,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,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACrC,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"}
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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=createMany.varied-keys.test.d.ts.map
@@ -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,6 +1,6 @@
1
1
  {
2
2
  "name": "@casekit/orm",
3
- "version": "0.0.1-alpha.10",
3
+ "version": "0.0.1-alpha.12",
4
4
  "description": "A simple ORM",
5
5
  "type": "module",
6
6
  "main": "lib/index.js",
@@ -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
- for (const k of Object.keys(values[0])) {
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>[]>;