@casekit/orm 0.0.1-alpha.1 → 0.0.1-alpha.10
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/migrate/commands/implode.js +1 -1
- package/lib/migrate/commands/implode.js.map +1 -1
- package/lib/migrate/sql/createTableSql.test.js +1 -0
- package/lib/migrate/sql/createTableSql.test.js.map +1 -1
- package/lib/orm.d.ts +2 -2
- package/lib/orm.d.ts.map +1 -1
- package/lib/orm.js +8 -0
- package/lib/orm.js.map +1 -1
- package/lib/queries/clauses/IncludeClause.d.ts +3 -3
- package/lib/queries/clauses/IncludeClause.d.ts.map +1 -1
- package/lib/queries/clauses/ReturningClause.d.ts +2 -3
- package/lib/queries/clauses/ReturningClause.d.ts.map +1 -1
- package/lib/queries/clauses/SelectClause.d.ts +2 -3
- package/lib/queries/clauses/SelectClause.d.ts.map +1 -1
- package/lib/queries/clauses/WhereClause.d.ts +1 -1
- package/lib/queries/clauses/WhereClause.d.ts.map +1 -1
- package/lib/queries/clauses/helpers/OptionalColumn.d.ts +5 -5
- package/lib/queries/clauses/helpers/OptionalColumn.d.ts.map +1 -1
- package/lib/queries/clauses/helpers/OptionalParams.d.ts +2 -2
- package/lib/queries/clauses/helpers/OptionalParams.d.ts.map +1 -1
- package/lib/queries/clauses/helpers/RequiredColumn.d.ts +2 -3
- package/lib/queries/clauses/helpers/RequiredColumn.d.ts.map +1 -1
- package/lib/queries/clauses/helpers/RequiredParams.d.ts +2 -2
- package/lib/queries/clauses/helpers/RequiredParams.d.ts.map +1 -1
- package/lib/queries/clauses/where/buildWhereClauses.d.ts +1 -1
- package/lib/queries/clauses/where/buildWhereClauses.d.ts.map +1 -1
- package/lib/queries/clauses/where/buildWhereClauses.js.map +1 -1
- package/lib/queries/clauses/where/buildWhereClauses.test.js +1 -1
- package/lib/queries/clauses/where/buildWhereClauses.test.js.map +1 -1
- package/lib/queries/clauses/where/types/WhereClauseValue.d.ts +1 -1
- package/lib/queries/clauses/where/types/WhereClauseValue.d.ts.map +1 -1
- package/lib/queries/count/buildCount.d.ts.map +1 -1
- package/lib/queries/count/buildCount.js +33 -29
- package/lib/queries/count/buildCount.js.map +1 -1
- package/lib/queries/count/countToSql.d.ts.map +1 -1
- package/lib/queries/count/countToSql.js +12 -17
- package/lib/queries/count/countToSql.js.map +1 -1
- package/lib/queries/count/types/CountBuilder.d.ts +12 -4
- package/lib/queries/count/types/CountBuilder.d.ts.map +1 -1
- package/lib/queries/count.d.ts.map +1 -1
- package/lib/queries/count.js +3 -1
- package/lib/queries/count.js.map +1 -1
- package/lib/queries/create/buildCreate.d.ts +4 -1
- package/lib/queries/create/buildCreate.d.ts.map +1 -1
- package/lib/queries/create/buildCreate.js +2 -1
- package/lib/queries/create/buildCreate.js.map +1 -1
- package/lib/queries/create/createResultSchema.d.ts.map +1 -1
- package/lib/queries/create/createResultSchema.js +3 -1
- package/lib/queries/create/createResultSchema.js.map +1 -1
- package/lib/queries/create/createToSql.d.ts.map +1 -1
- package/lib/queries/create/createToSql.js +5 -2
- package/lib/queries/create/createToSql.js.map +1 -1
- package/lib/queries/create/tests/createOne.test.js +53 -0
- package/lib/queries/create/tests/createOne.test.js.map +1 -1
- package/lib/queries/create/types/BaseCreateManyParams.d.ts +3 -0
- package/lib/queries/create/types/BaseCreateManyParams.d.ts.map +1 -1
- package/lib/queries/create/types/BaseCreateOneParams.d.ts +3 -0
- package/lib/queries/create/types/BaseCreateOneParams.d.ts.map +1 -1
- package/lib/queries/create/types/CreateManyParams.d.ts +4 -1
- package/lib/queries/create/types/CreateManyParams.d.ts.map +1 -1
- package/lib/queries/create/types/CreateManyResult.d.ts +1 -1
- package/lib/queries/create/types/CreateManyResult.d.ts.map +1 -1
- package/lib/queries/create/types/CreateOneParams.d.ts +4 -1
- package/lib/queries/create/types/CreateOneParams.d.ts.map +1 -1
- package/lib/queries/create/types/CreateOneResult.d.ts +1 -1
- package/lib/queries/create/types/CreateOneResult.d.ts.map +1 -1
- package/lib/queries/createMany.d.ts.map +1 -1
- package/lib/queries/createMany.js +3 -1
- package/lib/queries/createMany.js.map +1 -1
- package/lib/queries/createOne.d.ts.map +1 -1
- package/lib/queries/createOne.js +6 -0
- package/lib/queries/createOne.js.map +1 -1
- package/lib/queries/delete/buildDelete.d.ts +1 -1
- package/lib/queries/delete/buildDelete.d.ts.map +1 -1
- package/lib/queries/delete/buildDelete.js +1 -1
- package/lib/queries/delete/buildDelete.js.map +1 -1
- package/lib/queries/delete/deleteResultSchema.d.ts.map +1 -1
- package/lib/queries/delete/deleteResultSchema.js +3 -1
- package/lib/queries/delete/deleteResultSchema.js.map +1 -1
- package/lib/queries/delete/deleteToSql.js +1 -1
- package/lib/queries/delete/deleteToSql.js.map +1 -1
- package/lib/queries/delete/types/DeleteManyResult.d.ts +1 -1
- package/lib/queries/delete/types/DeleteManyResult.d.ts.map +1 -1
- package/lib/queries/delete/types/DeleteOneResult.d.ts +1 -1
- package/lib/queries/delete/types/DeleteOneResult.d.ts.map +1 -1
- package/lib/queries/delete/types/DeleteParams.d.ts +1 -1
- package/lib/queries/delete/types/DeleteParams.d.ts.map +1 -1
- package/lib/queries/deleteMany.d.ts.map +1 -1
- package/lib/queries/deleteMany.js +3 -1
- package/lib/queries/deleteMany.js.map +1 -1
- package/lib/queries/find/buildFind.d.ts.map +1 -1
- package/lib/queries/find/buildFind.js +35 -30
- package/lib/queries/find/buildFind.js.map +1 -1
- package/lib/queries/find/findResultSchema.d.ts.map +1 -1
- package/lib/queries/find/findResultSchema.js +9 -2
- package/lib/queries/find/findResultSchema.js.map +1 -1
- package/lib/queries/find/findToSql.d.ts.map +1 -1
- package/lib/queries/find/findToSql.js +15 -17
- package/lib/queries/find/findToSql.js.map +1 -1
- package/lib/queries/find/getIncludedManyToManyRelations.d.ts +17 -0
- package/lib/queries/find/getIncludedManyToManyRelations.d.ts.map +1 -0
- package/lib/queries/find/getIncludedManyToManyRelations.js +20 -0
- package/lib/queries/find/getIncludedManyToManyRelations.js.map +1 -0
- package/lib/queries/find/getIncludedOneToManyRelations.d.ts +12 -0
- package/lib/queries/find/getIncludedOneToManyRelations.d.ts.map +1 -0
- package/lib/queries/find/getIncludedOneToManyRelations.js +20 -0
- package/lib/queries/find/getIncludedOneToManyRelations.js.map +1 -0
- package/lib/queries/find/tests/findMany.include.test.d.ts +2 -0
- package/lib/queries/find/tests/findMany.include.test.d.ts.map +1 -0
- package/lib/queries/find/tests/findMany.include.test.js +93 -0
- package/lib/queries/find/tests/findMany.include.test.js.map +1 -0
- package/lib/queries/find/tests/findMany.nullable-relations.test.d.ts +2 -0
- package/lib/queries/find/tests/findMany.nullable-relations.test.d.ts.map +1 -0
- package/lib/queries/find/tests/findMany.nullable-relations.test.js +118 -0
- package/lib/queries/find/tests/findMany.nullable-relations.test.js.map +1 -0
- package/lib/queries/find/tests/middleware.find.where.test.js +12 -12
- package/lib/queries/find/tests/middleware.find.where.test.js.map +1 -1
- package/lib/queries/find/types/BaseFindParams.d.ts +2 -1
- package/lib/queries/find/types/BaseFindParams.d.ts.map +1 -1
- package/lib/queries/find/types/FindBuilder.d.ts +13 -4
- package/lib/queries/find/types/FindBuilder.d.ts.map +1 -1
- package/lib/queries/find/types/FindManyParams.d.ts +3 -2
- package/lib/queries/find/types/FindManyParams.d.ts.map +1 -1
- package/lib/queries/find/types/FindOneParams.d.ts +2 -1
- package/lib/queries/find/types/FindOneParams.d.ts.map +1 -1
- package/lib/queries/findMany.d.ts.map +1 -1
- package/lib/queries/findMany.js +59 -36
- package/lib/queries/findMany.js.map +1 -1
- package/lib/queries/middleware/Middleware.d.ts +1 -1
- package/lib/queries/middleware/Middleware.d.ts.map +1 -1
- package/lib/queries/update/buildUpdate.d.ts +2 -2
- package/lib/queries/update/buildUpdate.d.ts.map +1 -1
- package/lib/queries/update/buildUpdate.js +8 -8
- package/lib/queries/update/buildUpdate.js.map +1 -1
- package/lib/queries/update/tests/updateOne.test.js +3 -3
- package/lib/queries/update/tests/updateOne.test.js.map +1 -1
- package/lib/queries/update/types/BaseUpdateParams.d.ts +1 -1
- package/lib/queries/update/types/BaseUpdateParams.d.ts.map +1 -1
- package/lib/queries/update/types/UpdateManyResult.d.ts +1 -1
- package/lib/queries/update/types/UpdateManyResult.d.ts.map +1 -1
- package/lib/queries/update/types/UpdateOneResult.d.ts +1 -1
- package/lib/queries/update/types/UpdateOneResult.d.ts.map +1 -1
- package/lib/queries/update/types/UpdateParams.d.ts +2 -2
- package/lib/queries/update/types/UpdateParams.d.ts.map +1 -1
- package/lib/queries/update/types/UpdateValues.d.ts +1 -1
- package/lib/queries/update/types/UpdateValues.d.ts.map +1 -1
- package/lib/queries/update/updateResultSchema.d.ts.map +1 -1
- package/lib/queries/update/updateResultSchema.js +3 -1
- package/lib/queries/update/updateResultSchema.js.map +1 -1
- package/lib/queries/update/updateToSql.js +3 -3
- package/lib/queries/update/updateToSql.js.map +1 -1
- package/lib/queries/updateMany.d.ts.map +1 -1
- package/lib/queries/updateMany.js +3 -1
- package/lib/queries/updateMany.js.map +1 -1
- package/lib/queries/util/rowToObject.d.ts.map +1 -1
- package/lib/queries/util/rowToObject.js +1 -1
- package/lib/queries/util/rowToObject.js.map +1 -1
- package/lib/schema/populate/composeMiddleware.js +1 -1
- package/lib/schema/populate/composeMiddleware.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/base/BaseRelation.d.ts +1 -0
- package/lib/schema/types/base/BaseRelation.d.ts.map +1 -1
- package/lib/schema/types/helpers/ColumnName.d.ts +2 -3
- package/lib/schema/types/helpers/ColumnName.d.ts.map +1 -1
- package/lib/schema/types/helpers/ColumnType.d.ts +2 -2
- package/lib/schema/types/helpers/ColumnType.d.ts.map +1 -1
- package/lib/schema/types/helpers/Columns.d.ts +2 -3
- package/lib/schema/types/helpers/Columns.d.ts.map +1 -1
- package/lib/schema/types/helpers/HasDefault.d.ts +2 -3
- package/lib/schema/types/helpers/HasDefault.d.ts.map +1 -1
- package/lib/schema/types/helpers/IsNullable.d.ts +2 -3
- package/lib/schema/types/helpers/IsNullable.d.ts.map +1 -1
- package/lib/schema/types/helpers/IsProvided.d.ts +5 -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/helpers/IsSerial.d.ts +2 -3
- package/lib/schema/types/helpers/IsSerial.d.ts.map +1 -1
- 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/LooseRelationDefinition.d.ts +1 -0
- package/lib/schema/types/loose/LooseRelationDefinition.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/relations/ManyToManyRelation.d.ts +2 -2
- package/lib/schema/types/relations/ManyToManyRelation.d.ts.map +1 -1
- package/lib/schema/types/relations/ManyToOneRelation.d.ts +1 -1
- package/lib/schema/types/relations/ManyToOneRelation.d.ts.map +1 -1
- package/lib/schema/types/relations/OneToManyRelation.d.ts +2 -1
- package/lib/schema/types/relations/OneToManyRelation.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/index.d.ts +40 -0
- package/lib/test/db/index.d.ts.map +1 -1
- package/lib/test/db/models/post.model.d.ts +10 -1
- package/lib/test/db/models/post.model.d.ts.map +1 -1
- package/lib/test/db/models/post.model.js +6 -0
- package/lib/test/db/models/post.model.js.map +1 -1
- package/lib/test/db/models/post.relations.d.ts +6 -0
- package/lib/test/db/models/post.relations.d.ts.map +1 -1
- package/lib/test/db/models/post.relations.js +6 -0
- package/lib/test/db/models/post.relations.js.map +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 +11 -2
- package/lib/test/db/models/user.model.d.ts.map +1 -1
- package/lib/test/db/models/user.model.js +6 -0
- package/lib/test/db/models/user.model.js.map +1 -1
- package/lib/test/db/models/user.relations.d.ts +16 -0
- package/lib/test/db/models/user.relations.d.ts.map +1 -1
- package/lib/test/db/models/user.relations.js +16 -0
- package/lib/test/db/models/user.relations.js.map +1 -1
- package/lib/test/db/models.d.ts +18 -0
- package/lib/test/db/models.d.ts.map +1 -1
- package/lib/test/db/relations.d.ts +22 -0
- package/lib/test/db/relations.d.ts.map +1 -1
- package/lib/test/gen/column.d.ts +1 -0
- package/lib/test/gen/column.d.ts.map +1 -1
- package/lib/test/seed/index.d.ts +40 -0
- package/lib/test/seed/index.d.ts.map +1 -1
- package/lib/types/ModelType.d.ts +10 -3
- package/lib/types/ModelType.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/migrate/commands/implode.ts +1 -1
- package/src/migrate/sql/createTableSql.test.ts +1 -0
- package/src/orm.ts +10 -2
- package/src/queries/clauses/IncludeClause.ts +19 -3
- package/src/queries/clauses/ReturningClause.ts +4 -6
- package/src/queries/clauses/SelectClause.ts +4 -6
- package/src/queries/clauses/WhereClause.ts +1 -1
- package/src/queries/clauses/helpers/OptionalColumn.ts +10 -11
- package/src/queries/clauses/helpers/OptionalParams.ts +2 -2
- package/src/queries/clauses/helpers/RequiredColumn.ts +5 -6
- package/src/queries/clauses/helpers/RequiredParams.ts +2 -2
- package/src/queries/clauses/where/buildWhereClauses.test.ts +1 -1
- package/src/queries/clauses/where/buildWhereClauses.ts +1 -1
- package/src/queries/clauses/where/types/WhereClauseValue.ts +1 -1
- package/src/queries/count/buildCount.ts +39 -33
- package/src/queries/count/countToSql.ts +27 -32
- package/src/queries/count/types/CountBuilder.ts +23 -6
- package/src/queries/count.ts +3 -1
- package/src/queries/create/buildCreate.ts +5 -2
- package/src/queries/create/createResultSchema.ts +3 -1
- package/src/queries/create/createToSql.ts +10 -2
- package/src/queries/create/tests/createOne.test.ts +70 -0
- package/src/queries/create/types/BaseCreateManyParams.ts +1 -0
- package/src/queries/create/types/BaseCreateOneParams.ts +1 -0
- package/src/queries/create/types/CreateManyParams.ts +4 -1
- package/src/queries/create/types/CreateManyResult.ts +1 -1
- package/src/queries/create/types/CreateOneParams.ts +4 -1
- package/src/queries/create/types/CreateOneResult.ts +1 -1
- package/src/queries/createMany.ts +3 -1
- package/src/queries/createOne.ts +9 -0
- package/src/queries/delete/buildDelete.ts +2 -2
- package/src/queries/delete/deleteResultSchema.ts +3 -1
- package/src/queries/delete/deleteToSql.ts +1 -1
- package/src/queries/delete/types/DeleteManyResult.ts +1 -1
- package/src/queries/delete/types/DeleteOneResult.ts +1 -1
- package/src/queries/delete/types/DeleteParams.ts +1 -1
- package/src/queries/deleteMany.ts +3 -1
- package/src/queries/find/buildFind.ts +41 -34
- package/src/queries/find/findResultSchema.ts +9 -2
- package/src/queries/find/findToSql.ts +31 -32
- package/src/queries/find/getIncludedManyToManyRelations.ts +49 -0
- package/src/queries/find/getIncludedOneToManyRelations.ts +44 -0
- package/src/queries/find/tests/findMany.include.test.ts +107 -0
- package/src/queries/find/tests/findMany.nullable-relations.test.ts +127 -0
- package/src/queries/find/tests/middleware.find.where.test.ts +12 -12
- package/src/queries/find/types/BaseFindParams.ts +2 -1
- package/src/queries/find/types/FindBuilder.ts +25 -6
- package/src/queries/find/types/FindManyParams.ts +3 -2
- package/src/queries/find/types/FindOneParams.ts +2 -1
- package/src/queries/findMany.ts +87 -66
- package/src/queries/middleware/Middleware.ts +1 -1
- package/src/queries/update/buildUpdate.ts +10 -10
- package/src/queries/update/tests/updateOne.test.ts +3 -3
- package/src/queries/update/types/BaseUpdateParams.ts +1 -1
- package/src/queries/update/types/UpdateManyResult.ts +1 -1
- package/src/queries/update/types/UpdateOneResult.ts +1 -1
- package/src/queries/update/types/UpdateParams.ts +2 -2
- package/src/queries/update/types/UpdateValues.ts +1 -1
- package/src/queries/update/updateResultSchema.ts +3 -1
- package/src/queries/update/updateToSql.ts +3 -3
- package/src/queries/updateMany.ts +3 -1
- package/src/queries/util/rowToObject.ts +5 -1
- package/src/schema/populate/composeMiddleware.ts +1 -1
- package/src/schema/populate/populateModel.ts +1 -0
- package/src/schema/types/base/BaseColumn.ts +1 -0
- package/src/schema/types/base/BaseRelation.ts +1 -0
- package/src/schema/types/helpers/ColumnName.ts +5 -6
- package/src/schema/types/helpers/ColumnType.ts +2 -2
- package/src/schema/types/helpers/Columns.ts +2 -6
- package/src/schema/types/helpers/HasDefault.ts +5 -7
- package/src/schema/types/helpers/IsNullable.ts +4 -6
- package/src/schema/types/helpers/IsProvided.ts +8 -0
- package/src/schema/types/helpers/IsSerial.ts +4 -6
- package/src/schema/types/loose/LooseColumnDefinition.ts +6 -0
- package/src/schema/types/loose/LooseRelationDefinition.ts +1 -1
- package/src/schema/types/loose/LooseRelationsDefinition.ts +6 -1
- package/src/schema/types/loose/LooseRelationsDefinitions.ts +1 -1
- package/src/schema/types/relations/ManyToManyRelation.ts +2 -2
- package/src/schema/types/relations/ManyToOneRelation.ts +1 -1
- package/src/schema/types/relations/OneToManyRelation.ts +2 -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 +7 -1
- package/src/test/db/models/post.relations.ts +7 -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 +7 -1
- package/src/test/db/models/user.relations.ts +17 -1
- package/src/types/ModelType.ts +16 -3
- package/lib/queries/clauses/helpers/ModelValues.d.ts +0 -8
- package/lib/queries/clauses/helpers/ModelValues.d.ts.map +0 -1
- package/lib/queries/clauses/helpers/ModelValues.js +0 -2
- package/lib/queries/clauses/helpers/ModelValues.js.map +0 -1
- package/src/queries/clauses/helpers/ModelValues.ts +0 -9
|
@@ -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
|
};
|
|
@@ -8,8 +8,8 @@ export type ManyToManyRelation<Models extends LooseModelDefinitions> = {
|
|
|
8
8
|
model: M2;
|
|
9
9
|
through: J;
|
|
10
10
|
type: "N:N";
|
|
11
|
-
foreignKey: ColumnName<Models
|
|
12
|
-
otherKey: ColumnName<Models
|
|
11
|
+
foreignKey: ColumnName<Models[J]> | ColumnName<Models[J]>[];
|
|
12
|
+
otherKey: ColumnName<Models[J]> | ColumnName<Models[J]>[];
|
|
13
13
|
};
|
|
14
14
|
};
|
|
15
15
|
}[ModelName<Models>][ModelName<Models>];
|
|
@@ -6,6 +6,7 @@ export type OneToManyRelation<Models extends LooseModelDefinitions> = {
|
|
|
6
6
|
[M2 in ModelName<Models>]: {
|
|
7
7
|
model: M2;
|
|
8
8
|
type: "1:N";
|
|
9
|
-
foreignKey: ColumnName<Models
|
|
9
|
+
foreignKey: ColumnName<Models[M2]> | ColumnName<Models[M2]>[];
|
|
10
|
+
optional?: boolean;
|
|
10
11
|
};
|
|
11
12
|
}[ModelName<Models>];
|
|
@@ -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
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ModelDefinition } from "
|
|
1
|
+
import { ModelDefinition } from "../../..";
|
|
2
2
|
import { sql } from "../../../sql";
|
|
3
3
|
|
|
4
4
|
export const post = {
|
|
@@ -15,6 +15,12 @@ export const post = {
|
|
|
15
15
|
type: "uuid",
|
|
16
16
|
references: { table: "user", column: "id" },
|
|
17
17
|
},
|
|
18
|
+
reviewedById: {
|
|
19
|
+
name: "reviewed_by_id",
|
|
20
|
+
type: "uuid",
|
|
21
|
+
nullable: true,
|
|
22
|
+
references: { table: "user", column: "id" },
|
|
23
|
+
},
|
|
18
24
|
publishedAt: { type: "timestamp", nullable: true },
|
|
19
25
|
tags: { type: "text[][][][]", nullable: true },
|
|
20
26
|
tenantId: {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { RelationsDefinition } from "
|
|
1
|
+
import { RelationsDefinition } from "../../..";
|
|
2
2
|
import { Models } from "../models";
|
|
3
3
|
|
|
4
4
|
export const post = {
|
|
@@ -7,6 +7,12 @@ export const post = {
|
|
|
7
7
|
type: "N:1",
|
|
8
8
|
foreignKey: "authorId",
|
|
9
9
|
},
|
|
10
|
+
reviewedBy: {
|
|
11
|
+
model: "user",
|
|
12
|
+
type: "N:1",
|
|
13
|
+
foreignKey: "reviewedById",
|
|
14
|
+
optional: true,
|
|
15
|
+
},
|
|
10
16
|
tenant: {
|
|
11
17
|
model: "tenant",
|
|
12
18
|
type: "N:1",
|
|
@@ -1,12 +1,18 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
|
|
3
|
-
import { ModelDefinition } from "
|
|
3
|
+
import { ModelDefinition } from "../../..";
|
|
4
4
|
import { sql } from "../../../sql";
|
|
5
5
|
|
|
6
6
|
export const user = {
|
|
7
7
|
columns: {
|
|
8
8
|
id: { type: "uuid", default: sql`uuid_generate_v4()` },
|
|
9
9
|
username: { zodSchema: z.string(), type: "text" },
|
|
10
|
+
invitedById: {
|
|
11
|
+
name: "invited_by_id",
|
|
12
|
+
type: "uuid",
|
|
13
|
+
nullable: true,
|
|
14
|
+
references: { table: "user", column: "id" },
|
|
15
|
+
},
|
|
10
16
|
joinedAt: {
|
|
11
17
|
name: "created_at",
|
|
12
18
|
zodSchema: z.date(),
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { RelationsDefinition } from "
|
|
1
|
+
import { RelationsDefinition } from "../../..";
|
|
2
2
|
import { Models } from "../models";
|
|
3
3
|
|
|
4
4
|
export const user = {
|
|
@@ -7,6 +7,22 @@ export const user = {
|
|
|
7
7
|
model: "post",
|
|
8
8
|
foreignKey: "authorId",
|
|
9
9
|
},
|
|
10
|
+
reviewedPosts: {
|
|
11
|
+
type: "1:N",
|
|
12
|
+
model: "post",
|
|
13
|
+
foreignKey: "reviewedById",
|
|
14
|
+
},
|
|
15
|
+
invitedBy: {
|
|
16
|
+
type: "N:1",
|
|
17
|
+
model: "user",
|
|
18
|
+
foreignKey: "invitedById",
|
|
19
|
+
optional: true,
|
|
20
|
+
},
|
|
21
|
+
invitedUsers: {
|
|
22
|
+
type: "1:N",
|
|
23
|
+
model: "user",
|
|
24
|
+
foreignKey: "invitedById",
|
|
25
|
+
},
|
|
10
26
|
tenancies: {
|
|
11
27
|
type: "1:N",
|
|
12
28
|
model: "tenantUser",
|
package/src/types/ModelType.ts
CHANGED
|
@@ -1,7 +1,20 @@
|
|
|
1
|
+
import { IsNullable } from "../schema/types/helpers/IsNullable";
|
|
1
2
|
import { LooseModelDefinition } from "../schema/types/loose/LooseModelDefinition";
|
|
2
3
|
import { ColumnName } from "./ColumnName";
|
|
3
4
|
import { ColumnType } from "./ColumnType";
|
|
5
|
+
import { Simplify } from "./util/Simplify";
|
|
4
6
|
|
|
5
|
-
export type
|
|
6
|
-
[C in ColumnName<Model>]:
|
|
7
|
-
};
|
|
7
|
+
export type NullableColumn<Model extends LooseModelDefinition> = {
|
|
8
|
+
[C in ColumnName<Model>]: IsNullable<Model, C> extends true ? C : never;
|
|
9
|
+
}[ColumnName<Model>];
|
|
10
|
+
|
|
11
|
+
export type ModelType<Model extends LooseModelDefinition> = Simplify<
|
|
12
|
+
{
|
|
13
|
+
[C in Exclude<ColumnName<Model>, NullableColumn<Model>>]: ColumnType<
|
|
14
|
+
Model,
|
|
15
|
+
C
|
|
16
|
+
>;
|
|
17
|
+
} & {
|
|
18
|
+
[C in NullableColumn<Model>]?: ColumnType<Model, C>;
|
|
19
|
+
}
|
|
20
|
+
>;
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { ColumnName } from "../../../schema/types/helpers/ColumnName";
|
|
2
|
-
import { ColumnType } from "../../../schema/types/helpers/ColumnType";
|
|
3
|
-
import { ModelName } from "../../../schema/types/helpers/ModelName";
|
|
4
|
-
import { LooseModelDefinitions } from "../../../schema/types/loose/LooseModelDefinitions";
|
|
5
|
-
export type ModelValues<Models extends LooseModelDefinitions, M extends ModelName<Models>> = {
|
|
6
|
-
[C in ColumnName<Models, M>]: ColumnType<Models, M, C>;
|
|
7
|
-
};
|
|
8
|
-
//# sourceMappingURL=ModelValues.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ModelValues.d.ts","sourceRoot":"","sources":["../../../../src/queries/clauses/helpers/ModelValues.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0CAA0C,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,0CAA0C,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mDAAmD,CAAC;AAE1F,MAAM,MAAM,WAAW,CACnB,MAAM,SAAS,qBAAqB,EACpC,CAAC,SAAS,SAAS,CAAC,MAAM,CAAC,IAC3B;KAAG,CAAC,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;CAAE,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ModelValues.js","sourceRoot":"","sources":["../../../../src/queries/clauses/helpers/ModelValues.ts"],"names":[],"mappings":""}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { ColumnName } from "../../../schema/types/helpers/ColumnName";
|
|
2
|
-
import { ColumnType } from "../../../schema/types/helpers/ColumnType";
|
|
3
|
-
import { ModelName } from "../../../schema/types/helpers/ModelName";
|
|
4
|
-
import { LooseModelDefinitions } from "../../../schema/types/loose/LooseModelDefinitions";
|
|
5
|
-
|
|
6
|
-
export type ModelValues<
|
|
7
|
-
Models extends LooseModelDefinitions,
|
|
8
|
-
M extends ModelName<Models>,
|
|
9
|
-
> = { [C in ColumnName<Models, M>]: ColumnType<Models, M, C> };
|