@casekit/orm 0.0.1-alpha.2 → 0.0.1-alpha.3

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.
Files changed (27) hide show
  1. package/lib/queries/clauses/helpers/OptionalColumn.d.ts +2 -1
  2. package/lib/queries/clauses/helpers/OptionalColumn.d.ts.map +1 -1
  3. package/lib/queries/create/tests/createOne.test.js +36 -0
  4. package/lib/queries/create/tests/createOne.test.js.map +1 -1
  5. package/lib/schema/populate/populateModel.d.ts.map +1 -1
  6. package/lib/schema/populate/populateModel.js +1 -0
  7. package/lib/schema/populate/populateModel.js.map +1 -1
  8. package/lib/schema/types/base/BaseColumn.d.ts +1 -0
  9. package/lib/schema/types/base/BaseColumn.d.ts.map +1 -1
  10. package/lib/schema/types/helpers/IsProvided.d.ts +6 -0
  11. package/lib/schema/types/helpers/IsProvided.d.ts.map +1 -0
  12. package/lib/schema/types/helpers/IsProvided.js +2 -0
  13. package/lib/schema/types/helpers/IsProvided.js.map +1 -0
  14. package/lib/schema/types/loose/LooseColumnDefinition.d.ts +5 -0
  15. package/lib/schema/types/loose/LooseColumnDefinition.d.ts.map +1 -1
  16. package/lib/schema/types/strict/ColumnDefinition.d.ts +5 -0
  17. package/lib/schema/types/strict/ColumnDefinition.d.ts.map +1 -1
  18. package/lib/test/gen/column.d.ts +1 -0
  19. package/lib/test/gen/column.d.ts.map +1 -1
  20. package/package.json +1 -1
  21. package/src/queries/clauses/helpers/OptionalColumn.ts +4 -1
  22. package/src/queries/create/tests/createOne.test.ts +43 -0
  23. package/src/schema/populate/populateModel.ts +1 -0
  24. package/src/schema/types/base/BaseColumn.ts +1 -0
  25. package/src/schema/types/helpers/IsProvided.ts +10 -0
  26. package/src/schema/types/loose/LooseColumnDefinition.ts +6 -0
  27. package/src/schema/types/strict/ColumnDefinition.ts +6 -0
@@ -1,10 +1,11 @@
1
1
  import { ColumnName } from "../../../schema/types/helpers/ColumnName";
2
2
  import { HasDefault } from "../../../schema/types/helpers/HasDefault";
3
3
  import { IsNullable } from "../../../schema/types/helpers/IsNullable";
4
+ import { IsProvided } from "../../../schema/types/helpers/IsProvided";
4
5
  import { IsSerial } from "../../../schema/types/helpers/IsSerial";
5
6
  import { ModelName } from "../../../schema/types/helpers/ModelName";
6
7
  import { LooseModelDefinitions } from "../../../schema/types/loose/LooseModelDefinitions";
7
8
  export type OptionalColumn<Models extends LooseModelDefinitions, M extends ModelName<Models>> = {
8
- [C in ColumnName<Models, M>]: IsNullable<Models, M, C> extends true ? C : IsSerial<Models, M, C> extends true ? C : HasDefault<Models, M, C> extends true ? C : never;
9
+ [C in ColumnName<Models, M>]: IsNullable<Models, M, C> extends true ? C : IsSerial<Models, M, C> extends true ? C : HasDefault<Models, M, C> extends true ? C : IsProvided<Models, M, C> extends true ? C : never;
9
10
  }[ColumnName<Models, M>];
10
11
  //# sourceMappingURL=OptionalColumn.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"OptionalColumn.d.ts","sourceRoot":"","sources":["../../../../src/queries/clauses/helpers/OptionalColumn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0CAA0C,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,0CAA0C,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,0CAA0C,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,wCAAwC,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mDAAmD,CAAC;AAE1F,MAAM,MAAM,cAAc,CACtB,MAAM,SAAS,qBAAqB,EACpC,CAAC,SAAS,SAAS,CAAC,MAAM,CAAC,IAC3B;KACC,CAAC,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,SAAS,IAAI,GAC7D,CAAC,GACD,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,SAAS,IAAI,GACjC,CAAC,GACD,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,SAAS,IAAI,GACnC,CAAC,GACD,KAAK;CAClB,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"OptionalColumn.d.ts","sourceRoot":"","sources":["../../../../src/queries/clauses/helpers/OptionalColumn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0CAA0C,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,0CAA0C,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,0CAA0C,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,0CAA0C,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,wCAAwC,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mDAAmD,CAAC;AAE1F,MAAM,MAAM,cAAc,CACtB,MAAM,SAAS,qBAAqB,EACpC,CAAC,SAAS,SAAS,CAAC,MAAM,CAAC,IAC3B;KACC,CAAC,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,SAAS,IAAI,GAC7D,CAAC,GACD,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,SAAS,IAAI,GACjC,CAAC,GACD,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,SAAS,IAAI,GACnC,CAAC,GACD,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,SAAS,IAAI,GACnC,CAAC,GACD,KAAK;CACpB,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC"}
@@ -100,5 +100,41 @@ describe("createOne", () => {
100
100
  expect(rows[0].name).toEqual("hello");
101
101
  }, { rollback: true });
102
102
  });
103
+ test("columns that are provided by middleware do not need to be specified", async () => {
104
+ const baz = {
105
+ columns: {
106
+ id: {
107
+ type: "uuid",
108
+ zodSchema: z.string().uuid(),
109
+ provided: true,
110
+ },
111
+ name: { type: "text", zodSchema: z.string() },
112
+ },
113
+ };
114
+ await orm({
115
+ schema: "casekit",
116
+ models: { baz },
117
+ relations: { baz: {} },
118
+ pool: new pg.Pool(),
119
+ middleware: [
120
+ {
121
+ create: {
122
+ values: (values) => ({ id: uuid.v4(), ...values }),
123
+ },
124
+ },
125
+ ],
126
+ }).transact(async (db) => {
127
+ await db.connection.query(createTableSql(db.models.baz));
128
+ await db.createOne("baz", {
129
+ values: { name: "hello" },
130
+ });
131
+ const rows = await db.findMany("baz", {
132
+ select: ["id", "name"],
133
+ });
134
+ expect(rows).toHaveLength(1);
135
+ expect(rows[0].id).toBeTypeOf("string");
136
+ expect(rows[0].name).toEqual("hello");
137
+ }, { rollback: true });
138
+ });
103
139
  });
104
140
  //# sourceMappingURL=createOne.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"createOne.test.js","sourceRoot":"","sources":["../../../../src/queries/create/tests/createOne.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createOne.test.js","sourceRoot":"","sources":["../../../../src/queries/create/tests/createOne.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"populateModel.d.ts","sourceRoot":"","sources":["../../../src/schema/populate/populateModel.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAE5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAGpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAG3E,eAAO,MAAM,aAAa,WACd,KAAK,iBAAiB,EAAE,QAAQ,GAAG,QAAQ,CAAC,QAC9C,MAAM,SACL,oBAAoB,KAC5B,SAmFF,CAAC"}
1
+ {"version":3,"file":"populateModel.d.ts","sourceRoot":"","sources":["../../../src/schema/populate/populateModel.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAE5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAGpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAG3E,eAAO,MAAM,aAAa,WACd,KAAK,iBAAiB,EAAE,QAAQ,GAAG,QAAQ,CAAC,QAC9C,MAAM,SACL,oBAAoB,KAC5B,SAoFF,CAAC"}
@@ -7,6 +7,7 @@ export const populateModel = (config, name, model) => {
7
7
  zodSchema: column.zodSchema ?? suggestedColumnSchema(column.type),
8
8
  nullable: column.nullable ?? false,
9
9
  default: column.default ?? null,
10
+ provided: column.provided ?? false,
10
11
  }));
11
12
  const primaryKey = model.primaryKey ??
12
13
  Object.entries(model.columns)
@@ -1 +1 @@
1
- {"version":3,"file":"populateModel.js","sourceRoot":"","sources":["../../../src/schema/populate/populateModel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAOtC,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,MAAM,CAAC,MAAM,aAAa,GAAG,CACzB,MAAoD,EACpD,IAAY,EACZ,KAA2B,EAClB,EAAE;IACX,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;QACxD,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;QAC/C,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,qBAAqB,CAAC,MAAM,CAAC,IAAI,CAAC;QACjE,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,KAAK;QAClC,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,IAAI;KAClC,CAAC,CAAC,CAAC;IAEJ,MAAM,UAAU,GACZ,KAAK,CAAC,UAAU;QAChB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;aACxB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC;aAC/B,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAElE,MAAM,iBAAiB,GAAG;QACtB,GAAG,CAAC,KAAK,CAAC,iBAAiB,IAAI,EAAE,CAAC;QAClC,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;aAC3B,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;aAC3B,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE;YACf,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;gBACpB,OAAO,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,CAAC;iBAAM,IAAI,CAAC,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;gBAC5B,MAAM,IAAI,KAAK,CACX,8CAA8C,CACjD,CAAC;YACN,CAAC;iBAAM,CAAC;gBACJ,OAAO;oBACH,OAAO,EAAE,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBAC7C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,KAAK;oBACtB,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,gBAAgB;iBAC/C,CAAC;YACN,CAAC;QACL,CAAC,CAAC;KACa,CAAC;IAExB,MAAM,WAAW,GAAG;QAChB,GAAG,CAAC,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YACtC,GAAG,EAAE;YACL,UAAU,EAAE;gBACR,GAAG,EAAE,CAAC,UAAU;gBAChB,MAAM,EACF,EAAE,CAAC,UAAU,CAAC,MAAM;oBACpB,KAAK,CAAC,MAAM;oBACZ,MAAM,CAAC,MAAM;oBACb,QAAQ;aACf;SACJ,CAAC,CAAC;QACH,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;aAC3B,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC;aAC/B,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE;YACf,IAAI,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;gBAChB,MAAM,IAAI,KAAK,CACX,8CAA8C,CACjD,CAAC;YACN,CAAC;iBAAM,CAAC;gBACJ,OAAO;oBACH,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBAC/C,UAAU,EAAE;wBACR,MAAM,EACF,CAAC,CAAC,UAAU,CAAC,MAAM;4BACnB,KAAK,CAAC,MAAM;4BACZ,MAAM,CAAC,MAAM;4BACb,QAAQ;wBACZ,KAAK,EAAE,CAAC,CAAC,UAAU,CAAC,KAAK;wBACzB,OAAO,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC;qBACjC;oBACD,QAAQ,EAAE,CAAC,CAAC,UAAU,CAAC,QAAQ;oBAC/B,QAAQ,EAAE,CAAC,CAAC,UAAU,CAAC,QAAQ;iBAClC,CAAC;YACN,CAAC;QACL,CAAC,CAAC;KACO,CAAC;IAElB,OAAO;QACH,GAAG,KAAK;QACR,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;QAC/C,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,IAAI,QAAQ;QACjD,OAAO;QACP,UAAU;QACV,iBAAiB;QACjB,WAAW;KACd,CAAC;AACN,CAAC,CAAC"}
1
+ {"version":3,"file":"populateModel.js","sourceRoot":"","sources":["../../../src/schema/populate/populateModel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAOtC,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,MAAM,CAAC,MAAM,aAAa,GAAG,CACzB,MAAoD,EACpD,IAAY,EACZ,KAA2B,EAClB,EAAE;IACX,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;QACxD,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;QAC/C,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,qBAAqB,CAAC,MAAM,CAAC,IAAI,CAAC;QACjE,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,KAAK;QAClC,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,IAAI;QAC/B,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,KAAK;KACrC,CAAC,CAAC,CAAC;IAEJ,MAAM,UAAU,GACZ,KAAK,CAAC,UAAU;QAChB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;aACxB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC;aAC/B,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAElE,MAAM,iBAAiB,GAAG;QACtB,GAAG,CAAC,KAAK,CAAC,iBAAiB,IAAI,EAAE,CAAC;QAClC,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;aAC3B,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;aAC3B,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE;YACf,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;gBACpB,OAAO,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,CAAC;iBAAM,IAAI,CAAC,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;gBAC5B,MAAM,IAAI,KAAK,CACX,8CAA8C,CACjD,CAAC;YACN,CAAC;iBAAM,CAAC;gBACJ,OAAO;oBACH,OAAO,EAAE,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBAC7C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,KAAK;oBACtB,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,gBAAgB;iBAC/C,CAAC;YACN,CAAC;QACL,CAAC,CAAC;KACa,CAAC;IAExB,MAAM,WAAW,GAAG;QAChB,GAAG,CAAC,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YACtC,GAAG,EAAE;YACL,UAAU,EAAE;gBACR,GAAG,EAAE,CAAC,UAAU;gBAChB,MAAM,EACF,EAAE,CAAC,UAAU,CAAC,MAAM;oBACpB,KAAK,CAAC,MAAM;oBACZ,MAAM,CAAC,MAAM;oBACb,QAAQ;aACf;SACJ,CAAC,CAAC;QACH,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;aAC3B,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC;aAC/B,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE;YACf,IAAI,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;gBAChB,MAAM,IAAI,KAAK,CACX,8CAA8C,CACjD,CAAC;YACN,CAAC;iBAAM,CAAC;gBACJ,OAAO;oBACH,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBAC/C,UAAU,EAAE;wBACR,MAAM,EACF,CAAC,CAAC,UAAU,CAAC,MAAM;4BACnB,KAAK,CAAC,MAAM;4BACZ,MAAM,CAAC,MAAM;4BACb,QAAQ;wBACZ,KAAK,EAAE,CAAC,CAAC,UAAU,CAAC,KAAK;wBACzB,OAAO,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC;qBACjC;oBACD,QAAQ,EAAE,CAAC,CAAC,UAAU,CAAC,QAAQ;oBAC/B,QAAQ,EAAE,CAAC,CAAC,UAAU,CAAC,QAAQ;iBAClC,CAAC;YACN,CAAC;QACL,CAAC,CAAC;KACO,CAAC;IAElB,OAAO;QACH,GAAG,KAAK;QACR,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;QAC/C,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,IAAI,QAAQ;QACjD,OAAO;QACP,UAAU;QACV,iBAAiB;QACjB,WAAW;KACd,CAAC;AACN,CAAC,CAAC"}
@@ -5,5 +5,6 @@ export type BaseColumn = {
5
5
  zodSchema: z.ZodType<unknown>;
6
6
  nullable: boolean;
7
7
  default?: unknown;
8
+ provided: boolean;
8
9
  };
9
10
  //# sourceMappingURL=BaseColumn.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BaseColumn.d.ts","sourceRoot":"","sources":["../../../../src/schema/types/base/BaseColumn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,MAAM,UAAU,GAAG;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9B,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC"}
1
+ {"version":3,"file":"BaseColumn.d.ts","sourceRoot":"","sources":["../../../../src/schema/types/base/BaseColumn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,MAAM,UAAU,GAAG;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9B,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;CACrB,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { LooseModelDefinitions } from "../loose/LooseModelDefinitions";
2
+ import { ColumnName } from "./ColumnName";
3
+ import { Columns } from "./Columns";
4
+ import { ModelName } from "./ModelName";
5
+ export type IsProvided<Models extends LooseModelDefinitions, M extends ModelName<Models>, C extends ColumnName<Models, M>> = Columns<Models, M>[C]["provided"];
6
+ //# sourceMappingURL=IsProvided.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IsProvided.d.ts","sourceRoot":"","sources":["../../../../src/schema/types/helpers/IsProvided.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,MAAM,UAAU,CAClB,MAAM,SAAS,qBAAqB,EACpC,CAAC,SAAS,SAAS,CAAC,MAAM,CAAC,EAC3B,CAAC,SAAS,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,IAC/B,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=IsProvided.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IsProvided.js","sourceRoot":"","sources":["../../../../src/schema/types/helpers/IsProvided.ts"],"names":[],"mappings":""}
@@ -65,5 +65,10 @@ export type LooseColumnDefinition<ColumnType = unknown> = {
65
65
  onUpdate?: SQLStatement;
66
66
  onDelete?: SQLStatement;
67
67
  };
68
+ /**
69
+ * Is this column provided by middleware? If so, it will not be included in
70
+ * the set of required columns for inserts and updates.
71
+ */
72
+ provided?: boolean;
68
73
  };
69
74
  //# sourceMappingURL=LooseColumnDefinition.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"LooseColumnDefinition.d.ts","sourceRoot":"","sources":["../../../../src/schema/types/loose/LooseColumnDefinition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,MAAM,MAAM,qBAAqB,CAAC,UAAU,GAAG,OAAO,IAAI;IACtD;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;;;OAKG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAElC;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,EAAE,UAAU,GAAG,YAAY,GAAG,IAAI,CAAC;IAE3C;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,GAAG;QAAE,KAAK,CAAC,EAAE,YAAY,CAAC;QAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAExE;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;OAGG;IACH,UAAU,CAAC,EAAE;QACT,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,YAAY,CAAC;QACxB,QAAQ,CAAC,EAAE,YAAY,CAAC;KAC3B,CAAC;CACL,CAAC"}
1
+ {"version":3,"file":"LooseColumnDefinition.d.ts","sourceRoot":"","sources":["../../../../src/schema/types/loose/LooseColumnDefinition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,MAAM,MAAM,qBAAqB,CAAC,UAAU,GAAG,OAAO,IAAI;IACtD;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;;;OAKG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAElC;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,EAAE,UAAU,GAAG,YAAY,GAAG,IAAI,CAAC;IAE3C;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,GAAG;QAAE,KAAK,CAAC,EAAE,YAAY,CAAC;QAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAExE;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;OAGG;IACH,UAAU,CAAC,EAAE;QACT,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,YAAY,CAAC;QACxB,QAAQ,CAAC,EAAE,YAAY,CAAC;KAC3B,CAAC;IAEF;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC"}
@@ -66,5 +66,10 @@ export type ColumnDefinition<ColumnType = unknown> = {
66
66
  onUpdate?: SQLStatement;
67
67
  onDelete?: SQLStatement;
68
68
  };
69
+ /**
70
+ * Is this column provided by middleware? If so, it will not be included in
71
+ * the set of required columns for inserts and updates.
72
+ */
73
+ provided?: boolean;
69
74
  };
70
75
  //# sourceMappingURL=ColumnDefinition.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ColumnDefinition.d.ts","sourceRoot":"","sources":["../../../../src/schema/types/strict/ColumnDefinition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,MAAM,MAAM,gBAAgB,CAAC,UAAU,GAAG,OAAO,IAAI;IACjD;;OAEG;IACH,IAAI,EAAE,QAAQ,CAAC;IAEf;;;;;OAKG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAElC;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,EAAE,UAAU,GAAG,YAAY,GAAG,IAAI,CAAC;IAE3C;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,GAAG;QAAE,KAAK,CAAC,EAAE,YAAY,CAAC;QAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAExE;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;OAGG;IACH,UAAU,CAAC,EAAE;QACT,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,YAAY,CAAC;QACxB,QAAQ,CAAC,EAAE,YAAY,CAAC;KAC3B,CAAC;CACL,CAAC"}
1
+ {"version":3,"file":"ColumnDefinition.d.ts","sourceRoot":"","sources":["../../../../src/schema/types/strict/ColumnDefinition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,MAAM,MAAM,gBAAgB,CAAC,UAAU,GAAG,OAAO,IAAI;IACjD;;OAEG;IACH,IAAI,EAAE,QAAQ,CAAC;IAEf;;;;;OAKG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAElC;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,EAAE,UAAU,GAAG,YAAY,GAAG,IAAI,CAAC;IAE3C;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,GAAG;QAAE,KAAK,CAAC,EAAE,YAAY,CAAC;QAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAExE;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;OAGG;IACH,UAAU,CAAC,EAAE;QACT,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,YAAY,CAAC;QACxB,QAAQ,CAAC,EAAE,YAAY,CAAC;KAC3B,CAAC;IAEF;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC"}
@@ -18,5 +18,6 @@ export declare const column: () => fc.Arbitrary<{
18
18
  onUpdate?: import("../..").SQLStatement | undefined;
19
19
  onDelete?: import("../..").SQLStatement | undefined;
20
20
  } | undefined;
21
+ provided?: boolean | undefined;
21
22
  }>;
22
23
  //# sourceMappingURL=column.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"column.d.ts","sourceRoot":"","sources":["../../../src/test/gen/column.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;EA+BlB,CAAC"}
1
+ {"version":3,"file":"column.d.ts","sourceRoot":"","sources":["../../../src/test/gen/column.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;EA+BlB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@casekit/orm",
3
- "version": "0.0.1-alpha.2",
3
+ "version": "0.0.1-alpha.3",
4
4
  "description": "A simple ORM",
5
5
  "type": "module",
6
6
  "main": "lib/index.js",
@@ -1,6 +1,7 @@
1
1
  import { ColumnName } from "../../../schema/types/helpers/ColumnName";
2
2
  import { HasDefault } from "../../../schema/types/helpers/HasDefault";
3
3
  import { IsNullable } from "../../../schema/types/helpers/IsNullable";
4
+ import { IsProvided } from "../../../schema/types/helpers/IsProvided";
4
5
  import { IsSerial } from "../../../schema/types/helpers/IsSerial";
5
6
  import { ModelName } from "../../../schema/types/helpers/ModelName";
6
7
  import { LooseModelDefinitions } from "../../../schema/types/loose/LooseModelDefinitions";
@@ -15,5 +16,7 @@ export type OptionalColumn<
15
16
  ? C
16
17
  : HasDefault<Models, M, C> extends true
17
18
  ? C
18
- : never;
19
+ : IsProvided<Models, M, C> extends true
20
+ ? C
21
+ : never;
19
22
  }[ColumnName<Models, M>];
@@ -124,4 +124,47 @@ describe("createOne", () => {
124
124
  { rollback: true },
125
125
  );
126
126
  });
127
+ test("columns that are provided by middleware do not need to be specified", async () => {
128
+ const baz = {
129
+ columns: {
130
+ id: {
131
+ type: "uuid",
132
+ zodSchema: z.string().uuid(),
133
+ provided: true,
134
+ },
135
+ name: { type: "text", zodSchema: z.string() },
136
+ },
137
+ } as const satisfies ModelDefinition;
138
+
139
+ await orm({
140
+ schema: "casekit",
141
+ models: { baz },
142
+ relations: { baz: {} },
143
+ pool: new pg.Pool(),
144
+ middleware: [
145
+ {
146
+ create: {
147
+ values: (values) => ({ id: uuid.v4(), ...values }),
148
+ },
149
+ },
150
+ ],
151
+ }).transact(
152
+ async (db) => {
153
+ await db.connection.query(createTableSql(db.models.baz));
154
+
155
+ await db.createOne("baz", {
156
+ values: { name: "hello" },
157
+ });
158
+
159
+ const rows = await db.findMany("baz", {
160
+ select: ["id", "name"],
161
+ });
162
+
163
+ expect(rows).toHaveLength(1);
164
+ expect(rows[0].id).toBeTypeOf("string");
165
+ expect(rows[0].name).toEqual("hello");
166
+ },
167
+ { rollback: true },
168
+ );
169
+ });
127
170
  });
@@ -18,6 +18,7 @@ export const populateModel = (
18
18
  zodSchema: column.zodSchema ?? suggestedColumnSchema(column.type),
19
19
  nullable: column.nullable ?? false,
20
20
  default: column.default ?? null,
21
+ provided: column.provided ?? false,
21
22
  }));
22
23
 
23
24
  const primaryKey =
@@ -6,4 +6,5 @@ export type BaseColumn = {
6
6
  zodSchema: z.ZodType<unknown>;
7
7
  nullable: boolean;
8
8
  default?: unknown;
9
+ provided: boolean;
9
10
  };
@@ -0,0 +1,10 @@
1
+ import { LooseModelDefinitions } from "../loose/LooseModelDefinitions";
2
+ import { ColumnName } from "./ColumnName";
3
+ import { Columns } from "./Columns";
4
+ import { ModelName } from "./ModelName";
5
+
6
+ export type IsProvided<
7
+ Models extends LooseModelDefinitions,
8
+ M extends ModelName<Models>,
9
+ C extends ColumnName<Models, M>,
10
+ > = Columns<Models, M>[C]["provided"];
@@ -71,4 +71,10 @@ export type LooseColumnDefinition<ColumnType = unknown> = {
71
71
  onUpdate?: SQLStatement;
72
72
  onDelete?: SQLStatement;
73
73
  };
74
+
75
+ /**
76
+ * Is this column provided by middleware? If so, it will not be included in
77
+ * the set of required columns for inserts and updates.
78
+ */
79
+ provided?: boolean;
74
80
  };
@@ -72,4 +72,10 @@ export type ColumnDefinition<ColumnType = unknown> = {
72
72
  onUpdate?: SQLStatement;
73
73
  onDelete?: SQLStatement;
74
74
  };
75
+
76
+ /**
77
+ * Is this column provided by middleware? If so, it will not be included in
78
+ * the set of required columns for inserts and updates.
79
+ */
80
+ provided?: boolean;
75
81
  };