@casekit/orm 0.0.1-alpha.1 → 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.
- package/.github/workflows/ci.yml +2 -0
- package/lib/queries/clauses/helpers/OptionalColumn.d.ts +2 -1
- package/lib/queries/clauses/helpers/OptionalColumn.d.ts.map +1 -1
- package/lib/queries/create/tests/createOne.test.js +36 -0
- package/lib/queries/create/tests/createOne.test.js.map +1 -1
- package/lib/schema/populate/populateModel.d.ts.map +1 -1
- package/lib/schema/populate/populateModel.js +1 -0
- package/lib/schema/populate/populateModel.js.map +1 -1
- package/lib/schema/types/base/BaseColumn.d.ts +1 -0
- package/lib/schema/types/base/BaseColumn.d.ts.map +1 -1
- package/lib/schema/types/helpers/IsProvided.d.ts +6 -0
- package/lib/schema/types/helpers/IsProvided.d.ts.map +1 -0
- package/lib/schema/types/helpers/IsProvided.js +2 -0
- package/lib/schema/types/helpers/IsProvided.js.map +1 -0
- package/lib/schema/types/loose/LooseColumnDefinition.d.ts +5 -0
- package/lib/schema/types/loose/LooseColumnDefinition.d.ts.map +1 -1
- package/lib/schema/types/loose/LooseRelationsDefinition.d.ts +3 -1
- package/lib/schema/types/loose/LooseRelationsDefinition.d.ts.map +1 -1
- package/lib/schema/types/loose/LooseRelationsDefinitions.d.ts +1 -1
- package/lib/schema/types/loose/LooseRelationsDefinitions.d.ts.map +1 -1
- package/lib/schema/types/strict/ColumnDefinition.d.ts +5 -0
- package/lib/schema/types/strict/ColumnDefinition.d.ts.map +1 -1
- package/lib/test/db/models/post.model.d.ts +1 -1
- package/lib/test/db/models/tenant.model.d.ts +2 -2
- package/lib/test/db/models/tenantUser.model.d.ts +2 -2
- package/lib/test/db/models/user.model.d.ts +2 -2
- package/lib/test/gen/column.d.ts +1 -0
- package/lib/test/gen/column.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/queries/clauses/helpers/OptionalColumn.ts +4 -1
- package/src/queries/create/tests/createOne.test.ts +43 -0
- package/src/schema/populate/populateModel.ts +1 -0
- package/src/schema/types/base/BaseColumn.ts +1 -0
- package/src/schema/types/helpers/IsProvided.ts +10 -0
- package/src/schema/types/loose/LooseColumnDefinition.ts +6 -0
- package/src/schema/types/loose/LooseRelationsDefinition.ts +6 -1
- package/src/schema/types/loose/LooseRelationsDefinitions.ts +1 -1
- package/src/schema/types/strict/ColumnDefinition.ts +6 -0
- package/src/test/db/models/foo.relations.ts +1 -1
- package/src/test/db/models/post.model.ts +1 -1
- package/src/test/db/models/post.relations.ts +1 -1
- package/src/test/db/models/tenant.model.ts +1 -1
- package/src/test/db/models/tenant.relations.ts +1 -1
- package/src/test/db/models/tenantUser.model.ts +1 -1
- package/src/test/db/models/tenantUser.relations.ts +1 -1
- package/src/test/db/models/user.model.ts +1 -1
- package/src/test/db/models/user.relations.ts +1 -1
package/.github/workflows/ci.yml
CHANGED
|
@@ -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;
|
|
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":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAmB,GAAG,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAEtC,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACvB,IAAI,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;QACpD,MAAM,EAAE,CAAC,QAAQ,CACb,KAAK,EAAE,EAAE,EAAE,EAAE;YACT,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;YAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;YACzB,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE;gBACzB,MAAM,EAAE;oBACJ,EAAE,EAAE,QAAQ;oBACZ,IAAI,EAAE,YAAY;iBACrB;aACJ,CAAC,CAAC;YACH,MAAM,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE;gBACvB,MAAM,EAAE;oBACJ,EAAE,EAAE,MAAM;oBACV,QAAQ,EAAE,SAAS;iBACtB;aACJ,CAAC,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE;gBACtC,MAAM,EAAE;oBACJ,EAAE,EAAE,MAAM;oBACV,QAAQ,EAAE,MAAM;oBAChB,QAAQ,EAAE,QAAQ;oBAClB,KAAK,EAAE,aAAa;oBACpB,OAAO,EAAE,oBAAoB;iBAChC;aACJ,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAE1B,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE;gBACnC,MAAM,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC;aAC1B,CAAC,CAAC;YAEH,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CACnB,MAAM,CAAC,gBAAgB,CAAC;gBACpB,EAAE,EAAE,MAAM;gBACV,KAAK,EAAE,aAAa;aACvB,CAAC,CACL,CAAC;QACN,CAAC,EACD,EAAE,QAAQ,EAAE,IAAI,EAAE,CACrB,CAAC;IACN,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;QAClE,MAAM,GAAG,GAAG;YACR,OAAO,EAAE;gBACL,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE;gBACpD,GAAG,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE;gBACxD,KAAK,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE;aAC/D;SAC+B,CAAC;QACrC,MAAM,GAAG,CAAC;YACN,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,EAAE,GAAG,EAAE;YACf,SAAS,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;YACtB,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE;SACtB,CAAC,CAAC,QAAQ,CACP,KAAK,EAAE,EAAE,EAAE,EAAE;YACT,MAAM,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAEzD,MAAM,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE;gBACtB,MAAM,EAAE,EAAE;aACb,CAAC,CAAC;YAEH,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE;gBAClC,MAAM,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC;aACjC,CAAC,CAAC;YAEH,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACxC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACzC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC/C,CAAC,EACD,EAAE,QAAQ,EAAE,IAAI,EAAE,CACrB,CAAC;IACN,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;QACvE,MAAM,GAAG,GAAG;YACR,OAAO,EAAE;gBACL,EAAE,EAAE;oBACA,IAAI,EAAE,MAAM;oBACZ,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;oBAC5B,OAAO,EAAE,GAAG,CAAA,oBAAoB;iBACnC;gBACD,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE;aAChD;SAC+B,CAAC;QACrC,MAAM,GAAG,CAAC;YACN,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,EAAE,GAAG,EAAE;YACf,SAAS,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;YACtB,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE;SACtB,CAAC,CAAC,QAAQ,CACP,KAAK,EAAE,EAAE,EAAE,EAAE;YACT,MAAM,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAEzD,MAAM,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE;gBACtB,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;aAC5B,CAAC,CAAC;YAEH,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE;gBAClC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC;aACzB,CAAC,CAAC;YAEH,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACxC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC1C,CAAC,EACD,EAAE,QAAQ,EAAE,IAAI,EAAE,CACrB,CAAC;IACN,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"createOne.test.js","sourceRoot":"","sources":["../../../../src/queries/create/tests/createOne.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAmB,GAAG,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAEtC,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACvB,IAAI,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;QACpD,MAAM,EAAE,CAAC,QAAQ,CACb,KAAK,EAAE,EAAE,EAAE,EAAE;YACT,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;YAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;YACzB,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE;gBACzB,MAAM,EAAE;oBACJ,EAAE,EAAE,QAAQ;oBACZ,IAAI,EAAE,YAAY;iBACrB;aACJ,CAAC,CAAC;YACH,MAAM,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE;gBACvB,MAAM,EAAE;oBACJ,EAAE,EAAE,MAAM;oBACV,QAAQ,EAAE,SAAS;iBACtB;aACJ,CAAC,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE;gBACtC,MAAM,EAAE;oBACJ,EAAE,EAAE,MAAM;oBACV,QAAQ,EAAE,MAAM;oBAChB,QAAQ,EAAE,QAAQ;oBAClB,KAAK,EAAE,aAAa;oBACpB,OAAO,EAAE,oBAAoB;iBAChC;aACJ,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAE1B,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE;gBACnC,MAAM,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC;aAC1B,CAAC,CAAC;YAEH,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CACnB,MAAM,CAAC,gBAAgB,CAAC;gBACpB,EAAE,EAAE,MAAM;gBACV,KAAK,EAAE,aAAa;aACvB,CAAC,CACL,CAAC;QACN,CAAC,EACD,EAAE,QAAQ,EAAE,IAAI,EAAE,CACrB,CAAC;IACN,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;QAClE,MAAM,GAAG,GAAG;YACR,OAAO,EAAE;gBACL,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE;gBACpD,GAAG,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE;gBACxD,KAAK,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE;aAC/D;SAC+B,CAAC;QACrC,MAAM,GAAG,CAAC;YACN,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,EAAE,GAAG,EAAE;YACf,SAAS,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;YACtB,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE;SACtB,CAAC,CAAC,QAAQ,CACP,KAAK,EAAE,EAAE,EAAE,EAAE;YACT,MAAM,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAEzD,MAAM,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE;gBACtB,MAAM,EAAE,EAAE;aACb,CAAC,CAAC;YAEH,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE;gBAClC,MAAM,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC;aACjC,CAAC,CAAC;YAEH,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACxC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACzC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC/C,CAAC,EACD,EAAE,QAAQ,EAAE,IAAI,EAAE,CACrB,CAAC;IACN,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;QACvE,MAAM,GAAG,GAAG;YACR,OAAO,EAAE;gBACL,EAAE,EAAE;oBACA,IAAI,EAAE,MAAM;oBACZ,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;oBAC5B,OAAO,EAAE,GAAG,CAAA,oBAAoB;iBACnC;gBACD,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE;aAChD;SAC+B,CAAC;QACrC,MAAM,GAAG,CAAC;YACN,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,EAAE,GAAG,EAAE;YACf,SAAS,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;YACtB,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE;SACtB,CAAC,CAAC,QAAQ,CACP,KAAK,EAAE,EAAE,EAAE,EAAE;YACT,MAAM,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAEzD,MAAM,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE;gBACtB,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;aAC5B,CAAC,CAAC;YAEH,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE;gBAClC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC;aACzB,CAAC,CAAC;YAEH,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACxC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC1C,CAAC,EACD,EAAE,QAAQ,EAAE,IAAI,EAAE,CACrB,CAAC;IACN,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,qEAAqE,EAAE,KAAK,IAAI,EAAE;QACnF,MAAM,GAAG,GAAG;YACR,OAAO,EAAE;gBACL,EAAE,EAAE;oBACA,IAAI,EAAE,MAAM;oBACZ,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;oBAC5B,QAAQ,EAAE,IAAI;iBACjB;gBACD,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE;aAChD;SAC+B,CAAC;QAErC,MAAM,GAAG,CAAC;YACN,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,EAAE,GAAG,EAAE;YACf,SAAS,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;YACtB,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE;YACnB,UAAU,EAAE;gBACR;oBACI,MAAM,EAAE;wBACJ,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,MAAM,EAAE,CAAC;qBACrD;iBACJ;aACJ;SACJ,CAAC,CAAC,QAAQ,CACP,KAAK,EAAE,EAAE,EAAE,EAAE;YACT,MAAM,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAEzD,MAAM,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE;gBACtB,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;aAC5B,CAAC,CAAC;YAEH,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE;gBAClC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC;aACzB,CAAC,CAAC;YAEH,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACxC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC1C,CAAC,EACD,EAAE,QAAQ,EAAE,IAAI,EAAE,CACrB,CAAC;IACN,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -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,
|
|
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;
|
|
1
|
+
{"version":3,"file":"populateModel.js","sourceRoot":"","sources":["../../../src/schema/populate/populateModel.ts"],"names":[],"mappings":"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"}
|
|
@@ -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 @@
|
|
|
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;
|
|
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"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { ModelName } from "../helpers/ModelName";
|
|
2
|
+
import { LooseModelDefinitions } from "./LooseModelDefinitions";
|
|
1
3
|
import { LooseRelationDefinition } from "./LooseRelationDefinition";
|
|
2
|
-
export type LooseRelationsDefinition = Record<string, LooseRelationDefinition>;
|
|
4
|
+
export type LooseRelationsDefinition<Models extends LooseModelDefinitions, _M extends ModelName<Models>> = Record<string, LooseRelationDefinition>;
|
|
3
5
|
//# sourceMappingURL=LooseRelationsDefinition.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LooseRelationsDefinition.d.ts","sourceRoot":"","sources":["../../../../src/schema/types/loose/LooseRelationsDefinition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,MAAM,MAAM,wBAAwB,
|
|
1
|
+
{"version":3,"file":"LooseRelationsDefinition.d.ts","sourceRoot":"","sources":["../../../../src/schema/types/loose/LooseRelationsDefinition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,MAAM,MAAM,wBAAwB,CAChC,MAAM,SAAS,qBAAqB,EACpC,EAAE,SAAS,SAAS,CAAC,MAAM,CAAC,IAC5B,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC"}
|
|
@@ -2,6 +2,6 @@ import { ModelName } from "../helpers/ModelName";
|
|
|
2
2
|
import { LooseModelDefinitions } from "./LooseModelDefinitions";
|
|
3
3
|
import { LooseRelationsDefinition } from "./LooseRelationsDefinition";
|
|
4
4
|
export type LooseRelationsDefinitions<Models extends LooseModelDefinitions> = {
|
|
5
|
-
[M in ModelName<Models>]?: LooseRelationsDefinition
|
|
5
|
+
[M in ModelName<Models>]?: LooseRelationsDefinition<Models, M>;
|
|
6
6
|
};
|
|
7
7
|
//# sourceMappingURL=LooseRelationsDefinitions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LooseRelationsDefinitions.d.ts","sourceRoot":"","sources":["../../../../src/schema/types/loose/LooseRelationsDefinitions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,MAAM,MAAM,yBAAyB,CAAC,MAAM,SAAS,qBAAqB,IAAI;KACzE,CAAC,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,wBAAwB;
|
|
1
|
+
{"version":3,"file":"LooseRelationsDefinitions.d.ts","sourceRoot":"","sources":["../../../../src/schema/types/loose/LooseRelationsDefinitions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,MAAM,MAAM,yBAAyB,CAAC,MAAM,SAAS,qBAAqB,IAAI;KACzE,CAAC,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,wBAAwB,CAAC,MAAM,EAAE,CAAC,CAAC;CACjE,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;
|
|
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"}
|
|
@@ -2,7 +2,7 @@ export declare const tenant: {
|
|
|
2
2
|
readonly columns: {
|
|
3
3
|
readonly id: {
|
|
4
4
|
readonly type: "uuid";
|
|
5
|
-
readonly default: import("
|
|
5
|
+
readonly default: import("../../..").SQLStatement;
|
|
6
6
|
readonly primaryKey: true;
|
|
7
7
|
};
|
|
8
8
|
readonly name: {
|
|
@@ -10,7 +10,7 @@ export declare const tenant: {
|
|
|
10
10
|
};
|
|
11
11
|
readonly createdAt: {
|
|
12
12
|
readonly type: "timestamp";
|
|
13
|
-
readonly default: import("
|
|
13
|
+
readonly default: import("../../..").SQLStatement;
|
|
14
14
|
};
|
|
15
15
|
};
|
|
16
16
|
};
|
|
@@ -3,7 +3,7 @@ export declare const tenantUser: {
|
|
|
3
3
|
readonly columns: {
|
|
4
4
|
readonly id: {
|
|
5
5
|
readonly type: "uuid";
|
|
6
|
-
readonly default: import("
|
|
6
|
+
readonly default: import("../../..").SQLStatement;
|
|
7
7
|
readonly primaryKey: true;
|
|
8
8
|
};
|
|
9
9
|
readonly tenantId: {
|
|
@@ -22,7 +22,7 @@ export declare const tenantUser: {
|
|
|
22
22
|
};
|
|
23
23
|
readonly createdAt: {
|
|
24
24
|
readonly type: "timestamp with time zone";
|
|
25
|
-
readonly default: import("
|
|
25
|
+
readonly default: import("../../..").SQLStatement;
|
|
26
26
|
};
|
|
27
27
|
readonly deletedAt: {
|
|
28
28
|
readonly type: "timestamp with time zone";
|
|
@@ -3,7 +3,7 @@ export declare const user: {
|
|
|
3
3
|
readonly columns: {
|
|
4
4
|
readonly id: {
|
|
5
5
|
readonly type: "uuid";
|
|
6
|
-
readonly default: import("
|
|
6
|
+
readonly default: import("../../..").SQLStatement;
|
|
7
7
|
};
|
|
8
8
|
readonly username: {
|
|
9
9
|
readonly zodSchema: z.ZodString;
|
|
@@ -28,7 +28,7 @@ export declare const user: {
|
|
|
28
28
|
readonly primaryKey: ["id"];
|
|
29
29
|
readonly uniqueConstraints: [{
|
|
30
30
|
readonly columns: ["username"];
|
|
31
|
-
readonly where: import("
|
|
31
|
+
readonly where: import("../../..").SQLStatement;
|
|
32
32
|
}];
|
|
33
33
|
};
|
|
34
34
|
//# sourceMappingURL=user.model.d.ts.map
|
package/lib/test/gen/column.d.ts
CHANGED
|
@@ -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
|
|
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,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
|
-
:
|
|
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
|
});
|
|
@@ -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
|
};
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
import { ModelName } from "../helpers/ModelName";
|
|
2
|
+
import { LooseModelDefinitions } from "./LooseModelDefinitions";
|
|
1
3
|
import { LooseRelationDefinition } from "./LooseRelationDefinition";
|
|
2
4
|
|
|
3
|
-
export type LooseRelationsDefinition
|
|
5
|
+
export type LooseRelationsDefinition<
|
|
6
|
+
Models extends LooseModelDefinitions,
|
|
7
|
+
_M extends ModelName<Models>,
|
|
8
|
+
> = Record<string, LooseRelationDefinition>;
|
|
@@ -3,5 +3,5 @@ import { LooseModelDefinitions } from "./LooseModelDefinitions";
|
|
|
3
3
|
import { LooseRelationsDefinition } from "./LooseRelationsDefinition";
|
|
4
4
|
|
|
5
5
|
export type LooseRelationsDefinitions<Models extends LooseModelDefinitions> = {
|
|
6
|
-
[M in ModelName<Models>]?: LooseRelationsDefinition
|
|
6
|
+
[M in ModelName<Models>]?: LooseRelationsDefinition<Models, M>;
|
|
7
7
|
};
|
|
@@ -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
|
};
|