pothos-drizzle-generator 0.1.30 → 0.2.0

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":"mutation.js","sourceRoot":"","sources":["../../../src/definers/mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import { type ModelData, DrizzleGenerator } from \"../generator.js\";\r\nimport { createWhereQuery } from \"../libs/drizzle.js\";\r\nimport { getQueryFields } from \"../libs/graphql.js\";\r\nimport { checkPermissionsAndGetParams } from \"../libs/permissions.js\";\r\nimport {\r\n getReturning,\r\n insertRelayValue,\r\n replaceColumnValues,\r\n separateInput,\r\n} from \"../libs/resolver-helpers.js\";\r\nimport type { SchemaTypes } from \"@pothos/core\";\r\nimport type { GraphQLResolveInfo } from \"graphql\";\r\n\r\nexport function defineCreateOne<Types extends SchemaTypes>(\r\n builder: PothosSchemaTypes.SchemaBuilder<Types>,\r\n generator: DrizzleGenerator<Types>,\r\n modelName: string,\r\n modelData: ModelData\r\n) {\r\n const { tableInfo, columns, table, relations, tableSingularAlias, operationAliases } = modelData;\r\n const inputCreate = generator.getInputCreate(modelName);\r\n const operationName = operationAliases.createOne ?? `createOne${tableSingularAlias}`;\r\n\r\n builder.mutationType({\r\n fields: (t) => ({\r\n [operationName]: t.drizzleField({\r\n type: modelName,\r\n nullable: false,\r\n args: { input: t.arg({ type: inputCreate, required: true }) },\r\n resolve: async (\r\n query: (selection: unknown) => unknown,\r\n _parent: unknown,\r\n args: { input: object },\r\n ctx: object,\r\n info: GraphQLResolveInfo\r\n ) => {\r\n const client = generator.getClient(ctx);\r\n const params = checkPermissionsAndGetParams(modelName, \"createOne\", ctx, info, modelData);\r\n const combinedInput = { ...args.input, ...params.input };\r\n const { dbColumnsInput, relationFieldsInput } = separateInput(combinedInput, columns);\r\n const hasRelationInput = relationFieldsInput.length > 0;\r\n const { returning, isRelay } = getReturning(info, columns, hasRelationInput);\r\n if (!isRelay) {\r\n query({});\r\n }\r\n if (!returning) {\r\n return client\r\n .insert(table as never)\r\n .values(dbColumnsInput as never)\r\n .then(() => ({}));\r\n }\r\n\r\n return client.transaction(async (tx) =>\r\n tx\r\n .insert(table as never)\r\n .values(dbColumnsInput as never)\r\n .returning(returning)\r\n .then(async (results) => {\r\n if (hasRelationInput) {\r\n await insertRelayValue({\r\n results,\r\n client: tx,\r\n relationInputs: [relationFieldsInput],\r\n relations,\r\n });\r\n }\r\n return results[0];\r\n })\r\n );\r\n },\r\n } as never),\r\n }),\r\n });\r\n}\r\n\r\nexport function defineCreateMany<Types extends SchemaTypes>(\r\n builder: PothosSchemaTypes.SchemaBuilder<Types>,\r\n generator: DrizzleGenerator<Types>,\r\n modelName: string,\r\n modelData: ModelData\r\n) {\r\n const { tableInfo, columns, table, relations, tableSingularAlias, operationAliases } = modelData;\r\n const inputCreate = generator.getInputCreate(modelName);\r\n const operationName = operationAliases.createMany ?? `createMany${tableSingularAlias}`;\r\n\r\n builder.mutationType({\r\n fields: (t) => ({\r\n [operationName]: t.drizzleField({\r\n type: [modelName],\r\n nullable: false,\r\n args: { input: t.arg({ type: [inputCreate], required: true }) },\r\n resolve: async (\r\n query: (selection: unknown) => object,\r\n _parent: unknown,\r\n args: { input: object[] },\r\n ctx: object,\r\n info: GraphQLResolveInfo\r\n ) => {\r\n const client = generator.getClient(ctx);\r\n const params = checkPermissionsAndGetParams(\r\n modelName,\r\n \"createMany\",\r\n ctx,\r\n info,\r\n modelData\r\n );\r\n if (!args.input.length) return [];\r\n const combinedInputs = args.input.map((v) => ({\r\n ...v,\r\n ...params.input,\r\n }));\r\n const separatedInputs = combinedInputs.map((input) => separateInput(input, columns));\r\n const dbColumnsInputs = separatedInputs.map((i) => i.dbColumnsInput);\r\n const relationFieldsInputs = separatedInputs.map((i) => i.relationFieldsInput);\r\n\r\n const hasRelationInput = relationFieldsInputs.some((v) => v.length > 0);\r\n const { returning, isRelay } = getReturning(info, columns, hasRelationInput);\r\n\r\n if (!isRelay) {\r\n query({});\r\n }\r\n if (!returning) {\r\n return client\r\n .insert(table as never)\r\n .values(dbColumnsInputs as never)\r\n .then((v) => Array(\"rowCount\" in v ? v.rowCount : v.rowsAffected).fill({}));\r\n }\r\n return client.transaction(async (tx) =>\r\n tx\r\n .insert(table as never)\r\n .values(dbColumnsInputs as never)\r\n .returning(returning)\r\n .then(async (results) => {\r\n if (hasRelationInput) {\r\n await insertRelayValue({\r\n results,\r\n client: tx,\r\n relationInputs: relationFieldsInputs,\r\n relations,\r\n });\r\n }\r\n return results;\r\n })\r\n );\r\n },\r\n } as never),\r\n }),\r\n });\r\n}\r\n\r\nexport function defineUpdate<Types extends SchemaTypes>(\r\n builder: PothosSchemaTypes.SchemaBuilder<Types>,\r\n generator: DrizzleGenerator<Types>,\r\n modelName: string,\r\n modelData: ModelData\r\n) {\r\n const { tableInfo, columns, table, relations, tableSingularAlias, operationAliases } = modelData;\r\n const inputUpdate = generator.getInputUpdate(modelName);\r\n const inputWhere = generator.getInputWhere(modelName);\r\n const operationName = operationAliases.update ?? `update${tableSingularAlias}`;\r\n\r\n builder.mutationType({\r\n fields: (t) => ({\r\n [operationName]: t.drizzleField({\r\n type: [modelName],\r\n nullable: false,\r\n args: {\r\n input: t.arg({ type: inputUpdate, required: true }),\r\n where: t.arg({ type: inputWhere }),\r\n },\r\n resolve: async (\r\n query: (selection: unknown) => object,\r\n _parent: unknown,\r\n args: { input: object; where?: object },\r\n ctx: object,\r\n info: GraphQLResolveInfo\r\n ) => {\r\n const client = generator.getClient(ctx);\r\n const params = checkPermissionsAndGetParams(modelName, \"update\", ctx, info, modelData);\r\n const combinedInput = { ...args.input, ...params.input };\r\n const { dbColumnsInput, relationFieldsInput } = separateInput(combinedInput, columns);\r\n const hasRelationInput = relationFieldsInput.length > 0;\r\n const { returning, isRelay } = getReturning(info, columns, hasRelationInput);\r\n\r\n if (!isRelay) {\r\n query({});\r\n }\r\n const whereQuery = createWhereQuery(table, {\r\n AND: [structuredClone(args.where), params.where].filter((v) => v),\r\n } as never);\r\n\r\n if (!returning) {\r\n return client\r\n .update(table as never)\r\n .set(dbColumnsInput as never)\r\n .where(whereQuery)\r\n .then((v) => Array(\"rowCount\" in v ? v.rowCount : v.rowsAffected).fill({}));\r\n }\r\n\r\n return client.transaction(async (tx) =>\r\n tx\r\n .update(table as never)\r\n .set(dbColumnsInput as never)\r\n .where(whereQuery)\r\n .returning(returning)\r\n .then(async (results) => {\r\n if (hasRelationInput) {\r\n await insertRelayValue({\r\n results,\r\n client: tx,\r\n relationInputs: Array(results.length).fill(relationFieldsInput),\r\n relations,\r\n });\r\n }\r\n return results;\r\n })\r\n );\r\n },\r\n } as never),\r\n }),\r\n });\r\n}\r\n\r\nexport function defineDelete<Types extends SchemaTypes>(\r\n builder: PothosSchemaTypes.SchemaBuilder<Types>,\r\n generator: DrizzleGenerator<Types>,\r\n modelName: string,\r\n modelData: ModelData,\r\n tables: Record<string, ModelData>\r\n) {\r\n const { tableInfo, columns, table, tableSingularAlias, operationAliases } = modelData;\r\n const inputWhere = generator.getInputWhere(modelName);\r\n const operationName = operationAliases.delete ?? `delete${tableSingularAlias}`;\r\n\r\n builder.mutationType({\r\n fields: (t) => ({\r\n [operationName]: t.drizzleField({\r\n type: [modelName],\r\n nullable: false,\r\n args: { where: t.arg({ type: inputWhere }) },\r\n resolve: async (\r\n query: (selection: unknown) => object,\r\n _parent: unknown,\r\n args: { where?: object },\r\n ctx: object,\r\n info: GraphQLResolveInfo\r\n ) => {\r\n const params = checkPermissionsAndGetParams(modelName, \"delete\", ctx, info, modelData);\r\n const { returning, isRelay } = getReturning(info, columns);\r\n const whereCondition = {\r\n AND: [structuredClone(args.where), params.where].filter((v) => v),\r\n };\r\n\r\n if (isRelay) {\r\n const result = await generator\r\n .getQueryTable(ctx, modelName)\r\n .findMany(\r\n replaceColumnValues(\r\n tables,\r\n modelName,\r\n getQueryFields(info),\r\n query({ ...args, where: whereCondition })\r\n ) as never\r\n );\r\n await generator\r\n .getClient(ctx)\r\n .delete(table as never)\r\n .where(createWhereQuery(table, whereCondition as never));\r\n return result;\r\n }\r\n\r\n query({});\r\n const whereQuery = createWhereQuery(table, whereCondition as never);\r\n\r\n return returning\r\n ? generator\r\n .getClient(ctx)\r\n .delete(table as never)\r\n .where(whereQuery)\r\n .returning(returning)\r\n : generator\r\n .getClient(ctx)\r\n .delete(table as never)\r\n .where(whereQuery)\r\n .then((v) => Array(\"rowCount\" in v ? v.rowCount : v.rowsAffected).fill({}));\r\n },\r\n } as never),\r\n }),\r\n });\r\n}"]}
1
+ {"version":3,"file":"mutation.js","sourceRoot":"","sources":["../../../src/definers/mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import { type ModelData, DrizzleGenerator } from \"../generator.js\";\r\nimport { createWhereQuery } from \"../libs/drizzle.js\";\r\nimport { getQueryFields } from \"../libs/graphql.js\";\r\nimport { checkPermissionsAndGetParams } from \"../libs/permissions.js\";\r\nimport {\r\n getReturning,\r\n insertRelayValue,\r\n replaceColumnValues,\r\n separateInput,\r\n} from \"../libs/resolver-helpers.js\";\r\nimport type { SchemaTypes } from \"@pothos/core\";\r\nimport type { GraphQLResolveInfo } from \"graphql\";\r\n\r\nexport function defineCreateOne<Types extends SchemaTypes>(\r\n builder: PothosSchemaTypes.SchemaBuilder<Types>,\r\n generator: DrizzleGenerator<Types>,\r\n modelName: string,\r\n modelData: ModelData\r\n) {\r\n const { columns, table, relations, tableSingularAlias, operationAliases } = modelData;\r\n const inputCreate = generator.getInputCreate(modelName);\r\n const operationName = operationAliases.createOne ?? `createOne${tableSingularAlias}`;\r\n\r\n builder.mutationType({\r\n fields: (t) => ({\r\n [operationName]: t.drizzleField({\r\n type: modelName,\r\n nullable: false,\r\n args: { input: t.arg({ type: inputCreate, required: true }) },\r\n resolve: async (\r\n query: (selection: unknown) => unknown,\r\n _parent: unknown,\r\n args: { input: object },\r\n ctx: object,\r\n info: GraphQLResolveInfo\r\n ) => {\r\n const client = generator.getClient(ctx);\r\n const params = checkPermissionsAndGetParams(modelName, \"createOne\", ctx, info, modelData);\r\n const combinedInput = { ...args.input, ...params.input };\r\n const { dbColumnsInput, relationFieldsInput } = separateInput(combinedInput, columns);\r\n const hasRelationInput = relationFieldsInput.length > 0;\r\n const { returning, isRelay } = getReturning(info, columns, hasRelationInput);\r\n if (!isRelay) {\r\n query({});\r\n }\r\n if (!returning) {\r\n return client\r\n .insert(table as never)\r\n .values(dbColumnsInput as never)\r\n .then(() => ({}));\r\n }\r\n\r\n return client.transaction(async (tx) =>\r\n tx\r\n .insert(table as never)\r\n .values(dbColumnsInput as never)\r\n .returning(returning)\r\n .then(async (results) => {\r\n if (hasRelationInput) {\r\n await insertRelayValue({\r\n results,\r\n client: tx,\r\n relationInputs: [relationFieldsInput],\r\n relations,\r\n });\r\n }\r\n return results[0];\r\n })\r\n );\r\n },\r\n } as never),\r\n }),\r\n });\r\n}\r\n\r\nexport function defineCreateMany<Types extends SchemaTypes>(\r\n builder: PothosSchemaTypes.SchemaBuilder<Types>,\r\n generator: DrizzleGenerator<Types>,\r\n modelName: string,\r\n modelData: ModelData\r\n) {\r\n const { columns, table, relations, tableSingularAlias, operationAliases } = modelData;\r\n const inputCreate = generator.getInputCreate(modelName);\r\n const operationName = operationAliases.createMany ?? `createMany${tableSingularAlias}`;\r\n\r\n builder.mutationType({\r\n fields: (t) => ({\r\n [operationName]: t.drizzleField({\r\n type: [modelName],\r\n nullable: false,\r\n args: { input: t.arg({ type: [inputCreate], required: true }) },\r\n resolve: async (\r\n query: (selection: unknown) => object,\r\n _parent: unknown,\r\n args: { input: object[] },\r\n ctx: object,\r\n info: GraphQLResolveInfo\r\n ) => {\r\n const client = generator.getClient(ctx);\r\n const params = checkPermissionsAndGetParams(\r\n modelName,\r\n \"createMany\",\r\n ctx,\r\n info,\r\n modelData\r\n );\r\n if (!args.input.length) return [];\r\n const combinedInputs = args.input.map((v) => ({\r\n ...v,\r\n ...params.input,\r\n }));\r\n const separatedInputs = combinedInputs.map((input) => separateInput(input, columns));\r\n const dbColumnsInputs = separatedInputs.map((i) => i.dbColumnsInput);\r\n const relationFieldsInputs = separatedInputs.map((i) => i.relationFieldsInput);\r\n\r\n const hasRelationInput = relationFieldsInputs.some((v) => v.length > 0);\r\n const { returning, isRelay } = getReturning(info, columns, hasRelationInput);\r\n\r\n if (!isRelay) {\r\n query({});\r\n }\r\n if (!returning) {\r\n return client\r\n .insert(table as never)\r\n .values(dbColumnsInputs as never)\r\n .then((v) => Array(\"rowCount\" in v ? v.rowCount : v.rowsAffected).fill({}));\r\n }\r\n return client.transaction(async (tx) =>\r\n tx\r\n .insert(table as never)\r\n .values(dbColumnsInputs as never)\r\n .returning(returning)\r\n .then(async (results) => {\r\n if (hasRelationInput) {\r\n await insertRelayValue({\r\n results,\r\n client: tx,\r\n relationInputs: relationFieldsInputs,\r\n relations,\r\n });\r\n }\r\n return results;\r\n })\r\n );\r\n },\r\n } as never),\r\n }),\r\n });\r\n}\r\n\r\nexport function defineUpdate<Types extends SchemaTypes>(\r\n builder: PothosSchemaTypes.SchemaBuilder<Types>,\r\n generator: DrizzleGenerator<Types>,\r\n modelName: string,\r\n modelData: ModelData\r\n) {\r\n const { columns, table, relations, tableSingularAlias, operationAliases } = modelData;\r\n const inputUpdate = generator.getInputUpdate(modelName);\r\n const inputWhere = generator.getInputWhere(modelName);\r\n const operationName = operationAliases.update ?? `update${tableSingularAlias}`;\r\n\r\n builder.mutationType({\r\n fields: (t) => ({\r\n [operationName]: t.drizzleField({\r\n type: [modelName],\r\n nullable: false,\r\n args: {\r\n input: t.arg({ type: inputUpdate, required: true }),\r\n where: t.arg({ type: inputWhere }),\r\n },\r\n resolve: async (\r\n query: (selection: unknown) => object,\r\n _parent: unknown,\r\n args: { input: object; where?: object },\r\n ctx: object,\r\n info: GraphQLResolveInfo\r\n ) => {\r\n const client = generator.getClient(ctx);\r\n const params = checkPermissionsAndGetParams(modelName, \"update\", ctx, info, modelData);\r\n const combinedInput = { ...args.input, ...params.input };\r\n const { dbColumnsInput, relationFieldsInput } = separateInput(combinedInput, columns);\r\n const hasRelationInput = relationFieldsInput.length > 0;\r\n const { returning, isRelay } = getReturning(info, columns, hasRelationInput);\r\n\r\n if (!isRelay) {\r\n query({});\r\n }\r\n const whereQuery = createWhereQuery(table, {\r\n AND: [structuredClone(args.where), params.where].filter((v) => v),\r\n } as never);\r\n\r\n if (!returning) {\r\n return client\r\n .update(table as never)\r\n .set(dbColumnsInput as never)\r\n .where(whereQuery)\r\n .then((v) => Array(\"rowCount\" in v ? v.rowCount : v.rowsAffected).fill({}));\r\n }\r\n\r\n return client.transaction(async (tx) =>\r\n tx\r\n .update(table as never)\r\n .set(dbColumnsInput as never)\r\n .where(whereQuery)\r\n .returning(returning)\r\n .then(async (results) => {\r\n if (hasRelationInput) {\r\n await insertRelayValue({\r\n results,\r\n client: tx,\r\n relationInputs: Array(results.length).fill(relationFieldsInput),\r\n relations,\r\n });\r\n }\r\n return results;\r\n })\r\n );\r\n },\r\n } as never),\r\n }),\r\n });\r\n}\r\n\r\nexport function defineDelete<Types extends SchemaTypes>(\r\n builder: PothosSchemaTypes.SchemaBuilder<Types>,\r\n generator: DrizzleGenerator<Types>,\r\n modelName: string,\r\n modelData: ModelData,\r\n tables: Record<string, ModelData>\r\n) {\r\n const { columns, table, tableSingularAlias, operationAliases } = modelData;\r\n const inputWhere = generator.getInputWhere(modelName);\r\n const operationName = operationAliases.delete ?? `delete${tableSingularAlias}`;\r\n\r\n builder.mutationType({\r\n fields: (t) => ({\r\n [operationName]: t.drizzleField({\r\n type: [modelName],\r\n nullable: false,\r\n args: { where: t.arg({ type: inputWhere }) },\r\n resolve: async (\r\n query: (selection: unknown) => object,\r\n _parent: unknown,\r\n args: { where?: object },\r\n ctx: object,\r\n info: GraphQLResolveInfo\r\n ) => {\r\n const params = checkPermissionsAndGetParams(modelName, \"delete\", ctx, info, modelData);\r\n const { returning, isRelay } = getReturning(info, columns);\r\n const whereCondition = {\r\n AND: [structuredClone(args.where), params.where].filter((v) => v),\r\n };\r\n\r\n if (isRelay) {\r\n const result = await generator\r\n .getQueryTable(ctx, modelName)\r\n .findMany(\r\n replaceColumnValues(\r\n tables,\r\n modelName,\r\n getQueryFields(info),\r\n query({ ...args, where: whereCondition })\r\n ) as never\r\n );\r\n await generator\r\n .getClient(ctx)\r\n .delete(table as never)\r\n .where(createWhereQuery(table, whereCondition as never));\r\n return result;\r\n }\r\n\r\n query({});\r\n const whereQuery = createWhereQuery(table, whereCondition as never);\r\n\r\n return returning\r\n ? generator\r\n .getClient(ctx)\r\n .delete(table as never)\r\n .where(whereQuery)\r\n .returning(returning)\r\n : generator\r\n .getClient(ctx)\r\n .delete(table as never)\r\n .where(whereQuery)\r\n .then((v) => Array(\"rowCount\" in v ? v.rowCount : v.rowsAffected).fill({}));\r\n },\r\n } as never),\r\n }),\r\n });\r\n}"]}
@@ -110,16 +110,7 @@ export declare class DrizzleGenerator<Types extends SchemaTypes> {
110
110
  constructor(builder: PothosSchemaTypes.SchemaBuilder<Types>);
111
111
  getTableConfig(): (param: SchemaEntry) => TableConfig;
112
112
  createTableInfo(): Record<string, ModelData>;
113
- getClient(ctx: object): {
114
- readonly _: {
115
- readonly schema: unknown;
116
- readonly fullSchema: Record<string, unknown>;
117
- readonly tableNamesMap: Record<string, string>;
118
- readonly relations: AnyRelations;
119
- };
120
- query: {};
121
- $count: (source: Types["DrizzleRelations"][keyof Types["DrizzleRelations"]]["table"] | import("drizzle-orm").SQL<unknown> | import("drizzle-orm").SQLWrapper<unknown>, filter?: import("drizzle-orm").SQL) => import("drizzle-orm").SQL<number>;
122
- } & DbClient;
113
+ getClient(ctx: object): DbClient;
123
114
  getQueryTable(ctx: object, modelName: string): RelationalQueryBuilderShim;
124
115
  getRelations(): AnyRelations;
125
116
  getTables(): Record<string, ModelData>;
@@ -1 +1 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../src/generator.ts"],"names":[],"mappings":"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","sourcesContent":["import {\r\n isTable,\r\n type AnyRelations,\r\n type Column,\r\n type RelationsRecord,\r\n type SchemaEntry,\r\n} from \"drizzle-orm\";\r\nimport {\r\n BigIntResolver,\r\n ByteResolver,\r\n DateResolver,\r\n DateTimeResolver,\r\n JSONResolver,\r\n} from \"graphql-scalars\";\r\nimport { expandOperations, OperationBasic } from \"./libs/operations.js\";\r\nimport { createInputOperator } from \"./libs/pothos.js\";\r\nimport type { SchemaTypes } from \"@pothos/core\";\r\nimport type { DrizzleClient } from \"@pothos/plugin-drizzle\";\r\n\r\ntype TableConfig = {\r\n columns: Column[];\r\n primaryKeys: { columns: Column[] }[];\r\n name: string;\r\n};\r\n\r\ntype RelationalQueryBuilderShim = {\r\n findFirst: (args: unknown) => Promise<unknown>;\r\n findMany: (args: unknown) => Promise<unknown[]>;\r\n};\r\n\r\nexport type DbClient = {\r\n query: Record<string, RelationalQueryBuilderShim>;\r\n select: (columns: Record<string, unknown>) => {\r\n from: (table: unknown) => {\r\n leftJoin: (\r\n table: unknown,\r\n condition: unknown\r\n ) => {\r\n where: (condition: unknown) => unknown;\r\n };\r\n where: (condition: unknown) => unknown;\r\n };\r\n };\r\n insert: (table: unknown) => {\r\n values: (values: unknown) => {\r\n returning: (returning: unknown) => Promise<Record<string, unknown>[]>;\r\n then: (\r\n onfulfilled: (value: { rowCount: number } | { rowsAffected: number }) => unknown\r\n ) => Promise<unknown>;\r\n };\r\n };\r\n update: (table: unknown) => {\r\n set: (values: unknown) => {\r\n where: (condition: unknown) => {\r\n returning: (returning: unknown) => Promise<Record<string, unknown>[]>;\r\n then: (\r\n onfulfilled: (value: { rowCount: number } | { rowsAffected: number }) => unknown\r\n ) => Promise<unknown>;\r\n };\r\n };\r\n };\r\n delete: (table: unknown) => {\r\n where: (condition: unknown) => {\r\n returning: (returning: unknown) => Promise<Record<string, unknown>[]>;\r\n then: (\r\n onfulfilled: (value: { rowCount: number } | { rowsAffected: number }) => unknown\r\n ) => Promise<unknown>;\r\n };\r\n };\r\n transaction: <T>(callback: (tx: DbClient) => Promise<T>) => Promise<T>;\r\n};\r\n\r\nexport type ModelData = {\r\n table: SchemaEntry;\r\n operations: (typeof OperationBasic)[number][];\r\n tableSingularAlias: string;\r\n tablePluralAlias: string;\r\n operationAliases: { [key in (typeof OperationBasic)[number]]?: string };\r\n filterColumns: string[];\r\n columns: Column[];\r\n primaryColumns: Column[];\r\n inputColumns: Column[];\r\n tableInfo: TableConfig;\r\n relations: RelationsRecord;\r\n executable?:\r\n | ((params: {\r\n ctx: object;\r\n modelName: string;\r\n operation: (typeof OperationBasic)[number];\r\n }) => boolean | undefined)\r\n | undefined;\r\n limit?:\r\n | ((params: {\r\n ctx: object;\r\n modelName: string;\r\n operation: (typeof OperationBasic)[number];\r\n }) => number | undefined)\r\n | undefined;\r\n orderBy?:\r\n | ((params: {\r\n ctx: object;\r\n modelName: string;\r\n operation: (typeof OperationBasic)[number];\r\n }) => object | undefined)\r\n | undefined;\r\n where?:\r\n | ((params: {\r\n ctx: object;\r\n modelName: string;\r\n operation: (typeof OperationBasic)[number];\r\n }) => object | undefined)\r\n | undefined;\r\n inputData?:\r\n | ((params: {\r\n ctx: object;\r\n modelName: string;\r\n operation: (typeof OperationBasic)[number];\r\n }) => object | undefined)\r\n | undefined;\r\n depthLimit?:\r\n | ((params: {\r\n ctx: object;\r\n modelName: string;\r\n operation: (typeof OperationBasic)[number];\r\n }) => number | undefined)\r\n | undefined;\r\n};\r\n\r\nexport class DrizzleGenerator<Types extends SchemaTypes> {\r\n enums: Record<string, PothosSchemaTypes.EnumRef<Types, unknown>> = {};\r\n inputOperators: Record<string, PothosSchemaTypes.InputObjectRef<Types, unknown>> = {};\r\n inputType: Record<string, Record<string, PothosSchemaTypes.InputObjectRef<Types, unknown>>> = {};\r\n tables?: Record<string, ModelData>;\r\n\r\n builder: PothosSchemaTypes.SchemaBuilder<Types>;\r\n constructor(builder: PothosSchemaTypes.SchemaBuilder<Types>) {\r\n this.builder = builder;\r\n this.createInputType();\r\n }\r\n getTableConfig() {\r\n const drizzleOption = this.builder.options.drizzle;\r\n return drizzleOption.getTableConfig as (param: SchemaEntry) => TableConfig;\r\n }\r\n createTableInfo(): Record<string, ModelData> {\r\n const options = this.builder.options.pothosDrizzleGenerator;\r\n const getConfig = this.getTableConfig();\r\n const relations = this.getRelations();\r\n const tables = Object.values(relations)\r\n .filter((t) => isTable(t.table))\r\n .map(({ name: modelName, table, relations }) => {\r\n const tableInfo = getConfig(table as never);\r\n const allOptions = options?.all;\r\n const modelOptions = options?.models?.[modelName];\r\n const columns = tableInfo.columns;\r\n const primaryColumns = Array.from(\r\n new Set([\r\n ...tableInfo.primaryKeys.flatMap((v) => v.columns),\r\n ...columns.filter((v) => v.primary),\r\n ])\r\n );\r\n\r\n const operationValue = (modelOptions?.operations ?? allOptions?.operations)?.({\r\n modelName,\r\n });\r\n const operationIncludes = expandOperations(operationValue?.include ?? OperationBasic);\r\n const operationExcludes = expandOperations(operationValue?.exclude ?? []);\r\n const operations = operationIncludes.filter((v) => !operationExcludes.includes(v));\r\n \r\n const aliasesValue = (modelOptions?.aliases ?? allOptions?.aliases)?.({\r\n modelName,\r\n });\r\n \r\n const operationAliasValue = (aliasesValue?.operations ?? {});\r\n const tableSingularAlias = aliasesValue?.singular ?? tableInfo.name;\r\n const tablePluralAlias = aliasesValue?.plural ?? `${tableInfo.name}s`;\r\n \r\n const columnValue = (modelOptions?.fields ?? allOptions?.fields)?.({\r\n modelName,\r\n });\r\n const include = (columnValue?.include as undefined | string[]) ?? [\r\n ...columns.map((c) => c.name),\r\n ...Object.keys(relations),\r\n ...Object.keys(relations).map((v) => `${v}Count`),\r\n ];\r\n const exclude = (columnValue?.exclude as undefined | string[]) ?? [];\r\n const filterColumns = include.filter((name) => !exclude.includes(name));\r\n\r\n const inputFieldValue = (modelOptions?.inputFields ?? allOptions?.inputFields)?.({\r\n modelName,\r\n });\r\n const includeInput = inputFieldValue?.include ?? columns.map((c) => c.name);\r\n const excludeInput = inputFieldValue?.exclude ?? [];\r\n const filterInputColumns = includeInput.filter((name) => !excludeInput.includes(name));\r\n return [\r\n modelName,\r\n {\r\n table,\r\n relations,\r\n columns,\r\n filterColumns,\r\n primaryColumns,\r\n operations,\r\n operationAliases: operationAliasValue,\r\n tableSingularAlias,\r\n tablePluralAlias,\r\n inputColumns: columns.filter((c) => filterInputColumns.includes(c.name)),\r\n tableInfo,\r\n executable: modelOptions?.executable ?? allOptions?.executable,\r\n limit: modelOptions?.limit ?? allOptions?.limit,\r\n orderBy: modelOptions?.orderBy ?? allOptions?.orderBy,\r\n where: modelOptions?.where ?? allOptions?.where,\r\n inputData: modelOptions?.inputData ?? allOptions?.inputData,\r\n depthLimit: modelOptions?.depthLimit ?? allOptions?.depthLimit,\r\n },\r\n ] as const;\r\n });\r\n const modelNames = tables.map(([name]) => name);\r\n\r\n const include = options?.use?.include ?? modelNames;\r\n const exclude = options?.use?.exclude ?? [];\r\n const filterTables = include.filter((name) => !exclude.includes(name));\r\n return Object.fromEntries(tables.filter(([name]) => filterTables.includes(name)));\r\n }\r\n getClient(ctx: object) {\r\n const options = this.builder.options;\r\n const drizzleOption = options.drizzle;\r\n const client =\r\n drizzleOption.client instanceof Function ? drizzleOption.client(ctx) : drizzleOption.client;\r\n return client as typeof client & DbClient;\r\n }\r\n getQueryTable(ctx: object, modelName: string) {\r\n return this.getClient(ctx).query[modelName as never] as RelationalQueryBuilderShim;\r\n }\r\n getRelations(): AnyRelations {\r\n const drizzleOption = this.builder.options.drizzle;\r\n const client = drizzleOption.client as DrizzleClient;\r\n return drizzleOption.relations ?? client._.relations;\r\n }\r\n getTables() {\r\n if (this.tables) return this.tables;\r\n const tables = this.createTableInfo();\r\n this.tables = tables;\r\n return tables;\r\n }\r\n getTable(table: SchemaEntry) {\r\n const result = Object.values(this.getTables()).find((v) => v.table === table);\r\n return result;\r\n }\r\n getInputType(\r\n modelName: string,\r\n type: string,\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n options: PothosSchemaTypes.InputObjectTypeOptions<any, any>\r\n ) {\r\n if (!this.inputType[modelName]) this.inputType[modelName] = {};\r\n if (this.inputType[modelName][type]) return this.inputType[modelName][type];\r\n const { tableSingularAlias } = this.getTables()[modelName]!;\r\n const input = this.builder.inputRef(`${tableSingularAlias}${type}`);\r\n input.implement(options);\r\n this.inputType[modelName][type] = input;\r\n return input;\r\n }\r\n getInputRelation(modelName: string) {\r\n const { relations } = this.getTables()[modelName]!;\r\n\r\n const relayFields = Object.entries(relations)\r\n .filter(([, relation]) => relation.through)\r\n .map(([relationName, relation]) => {\r\n const rowInputType = this.getInputType(modelName, `_${relationName}Set`, {\r\n fields: (t) =>\r\n Object.fromEntries(\r\n relation.targetColumns.map((col) => [\r\n col.name,\r\n t.field({\r\n type: this.getDataType(col),\r\n required: col.notNull && !col.hasDefault,\r\n }),\r\n ])\r\n ),\r\n });\r\n const relationInputType = this.getInputType(modelName, `_${relationName}`, {\r\n fields: (t) => ({\r\n set: t.field({ type: [rowInputType] }),\r\n }),\r\n });\r\n\r\n return [relationName, relationInputType] as const;\r\n });\r\n return relayFields;\r\n }\r\n getInputCreate(modelName: string) {\r\n const { inputColumns } = this.getTables()[modelName]!;\r\n\r\n return this.getInputType(modelName, \"Create\", {\r\n fields: (t) => {\r\n const dbFields = inputColumns.map((col: Column) => [\r\n col.name,\r\n t.field({\r\n type: this.getDataType(col),\r\n required: col.notNull && !col.hasDefault,\r\n }),\r\n ]);\r\n const relayFields = this.getInputRelation(modelName);\r\n\r\n return Object.fromEntries([\r\n ...dbFields,\r\n ...relayFields.map(([name, field]) => [name, t.field({ type: field })]),\r\n ]);\r\n },\r\n });\r\n }\r\n\r\n getInputUpdate(modelName: string) {\r\n const { inputColumns } = this.getTables()[modelName]!;\r\n return this.getInputType(modelName, \"Update\", {\r\n fields: (t) => {\r\n const dbFields = inputColumns.map((c: Column) => [\r\n c.name,\r\n t.field({\r\n type: this.getDataType(c),\r\n }),\r\n ]);\r\n const relayFields = this.getInputRelation(modelName);\r\n return Object.fromEntries([\r\n ...dbFields,\r\n ...relayFields.map(([name, field]) => [name, t.field({ type: field })]),\r\n ]);\r\n },\r\n });\r\n }\r\n getInputWhere(modelName: string) {\r\n const { tableInfo, relations } = this.getTables()[modelName]!;\r\n const inputWhere = this.getInputType(modelName, \"Where\", {\r\n fields: (t) => {\r\n return Object.fromEntries([\r\n [\"AND\", t.field({ type: [inputWhere] })],\r\n [\"OR\", t.field({ type: [inputWhere] })],\r\n [\"NOT\", t.field({ type: inputWhere })],\r\n ...tableInfo.columns.map((c: Column) => {\r\n return [\r\n c.name,\r\n t.field({\r\n type: this.getInputOperator(this.getDataType(c)),\r\n }),\r\n ];\r\n }),\r\n ...Object.entries(relations).map(([key, relay]) => {\r\n const table = this.getTable(relay.targetTable);\r\n if (!table) return [];\r\n const { tableSingularAlias } = table;\r\n return [\r\n key,\r\n t.field({\r\n type: `${tableSingularAlias}Where`,\r\n }),\r\n ];\r\n }),\r\n ]);\r\n },\r\n });\r\n return inputWhere;\r\n }\r\n getInputOrderBy(modelName: string) {\r\n const { tableInfo } = this.getTables()[modelName]!;\r\n const inputWhere = this.getInputType(modelName, \"OrderBy\", {\r\n fields: (t) => {\r\n return Object.fromEntries(\r\n tableInfo.columns.map((c: Column) => {\r\n return [\r\n c.name,\r\n t.field({\r\n type: this.enums[\"OrderBy\"]!,\r\n }),\r\n ];\r\n })\r\n );\r\n },\r\n });\r\n return inputWhere;\r\n }\r\n\r\n getInputOperator(type: string | [string]) {\r\n const typeName = Array.isArray(type) ? `Array${type[0]}` : type;\r\n const input = this.inputOperators[typeName] ?? createInputOperator(this.builder, type);\r\n this.inputOperators[typeName] = input;\r\n return input;\r\n }\r\n createInputType() {\r\n const builder: PothosSchemaTypes.SchemaBuilder<Types> = this.builder;\r\n\r\n const scalars = [\r\n [\"BigInt\", BigIntResolver],\r\n [\"Date\", DateResolver],\r\n [\"Bytes\", ByteResolver],\r\n [\"DateTime\", DateTimeResolver],\r\n [\"Json\", JSONResolver],\r\n ] as const;\r\n for (const [scalarName, scalarResolver] of scalars) {\r\n if (!builder.configStore.hasConfig(scalarName)) {\r\n builder.addScalarType(scalarName as never, scalarResolver, {});\r\n }\r\n }\r\n\r\n this.enums[\"OrderBy\"] = builder.enumType(\"OrderBy\", {\r\n values: {\r\n Asc: { value: \"asc\" },\r\n Desc: { value: \"desc\" },\r\n },\r\n });\r\n }\r\n getDataType(column: Column & { dimensions?: number }): string | [string] {\r\n const isArray = column.dimensions;\r\n const types = column.dataType.split(\" \");\r\n if (types[0] === \"string\" && types[1] !== \"enum\") {\r\n return isArray ? [\"String\"] : \"String\";\r\n }\r\n if (types[0] === \"bigint\") {\r\n return isArray ? [\"BigInt\"] : \"BigInt\";\r\n }\r\n switch (types[1] ?? types[0]) {\r\n case \"enum\": {\r\n const sqlType = column.getSQLType();\r\n const e = this.enums[sqlType];\r\n if (!e) {\r\n this.enums[sqlType] = this.builder.enumType(sqlType, {\r\n values: column.enumValues!,\r\n });\r\n }\r\n return isArray ? [sqlType] : sqlType;\r\n }\r\n case \"buffer\":\r\n return isArray ? [\"Bytes\"] : \"Bytes\";\r\n case \"json\":\r\n return isArray ? [\"Json\"] : \"Json\";\r\n case \"date\":\r\n return isArray ? [\"DateTime\"] : \"DateTime\";\r\n case \"boolean\":\r\n return isArray ? [\"Boolean\"] : \"Boolean\";\r\n case \"point\":\r\n case \"double\":\r\n return isArray ? [\"Float\"] : \"Float\";\r\n }\r\n if (types[1]?.startsWith(\"int\")) {\r\n return isArray ? [\"Int\"] : \"Int\";\r\n }\r\n const type = isArray ? types[1]! : types[0]!;\r\n const scalarMap: Record<string, string> = {\r\n number: \"Float\",\r\n string: \"String\",\r\n };\r\n const result = scalarMap[type] ?? \"String\";\r\n return isArray ? [result] : result;\r\n }\r\n}"]}
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../src/generator.ts"],"names":[],"mappings":"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","sourcesContent":["import {\r\n isTable,\r\n type AnyRelations,\r\n type Column,\r\n type RelationsRecord,\r\n type SchemaEntry,\r\n} from \"drizzle-orm\";\r\nimport {\r\n BigIntResolver,\r\n ByteResolver,\r\n DateResolver,\r\n DateTimeResolver,\r\n JSONResolver,\r\n} from \"graphql-scalars\";\r\nimport { expandOperations, OperationBasic } from \"./libs/operations.js\";\r\nimport { createInputOperator } from \"./libs/pothos.js\";\r\nimport type { SchemaTypes } from \"@pothos/core\";\r\nimport type { DrizzleClient } from \"@pothos/plugin-drizzle\";\r\n\r\ntype TableConfig = {\r\n columns: Column[];\r\n primaryKeys: { columns: Column[] }[];\r\n name: string;\r\n};\r\n\r\ntype RelationalQueryBuilderShim = {\r\n findFirst: (args: unknown) => Promise<unknown>;\r\n findMany: (args: unknown) => Promise<unknown[]>;\r\n};\r\n\r\nexport type DbClient = {\r\n query: Record<string, RelationalQueryBuilderShim>;\r\n select: (columns: Record<string, unknown>) => {\r\n from: (table: unknown) => {\r\n leftJoin: (\r\n table: unknown,\r\n condition: unknown\r\n ) => {\r\n where: (condition: unknown) => unknown;\r\n };\r\n where: (condition: unknown) => unknown;\r\n };\r\n };\r\n insert: (table: unknown) => {\r\n values: (values: unknown) => {\r\n returning: (returning: unknown) => Promise<Record<string, unknown>[]>;\r\n then: (\r\n onfulfilled: (value: { rowCount: number } | { rowsAffected: number }) => unknown\r\n ) => Promise<unknown>;\r\n };\r\n };\r\n update: (table: unknown) => {\r\n set: (values: unknown) => {\r\n where: (condition: unknown) => {\r\n returning: (returning: unknown) => Promise<Record<string, unknown>[]>;\r\n then: (\r\n onfulfilled: (value: { rowCount: number } | { rowsAffected: number }) => unknown\r\n ) => Promise<unknown>;\r\n };\r\n };\r\n };\r\n delete: (table: unknown) => {\r\n where: (condition: unknown) => {\r\n returning: (returning: unknown) => Promise<Record<string, unknown>[]>;\r\n then: (\r\n onfulfilled: (value: { rowCount: number } | { rowsAffected: number }) => unknown\r\n ) => Promise<unknown>;\r\n };\r\n };\r\n transaction: <T>(callback: (tx: DbClient) => Promise<T>) => Promise<T>;\r\n};\r\n\r\nexport type ModelData = {\r\n table: SchemaEntry;\r\n operations: (typeof OperationBasic)[number][];\r\n tableSingularAlias: string;\r\n tablePluralAlias: string;\r\n operationAliases: { [key in (typeof OperationBasic)[number]]?: string };\r\n filterColumns: string[];\r\n columns: Column[];\r\n primaryColumns: Column[];\r\n inputColumns: Column[];\r\n tableInfo: TableConfig;\r\n relations: RelationsRecord;\r\n executable?:\r\n | ((params: {\r\n ctx: object;\r\n modelName: string;\r\n operation: (typeof OperationBasic)[number];\r\n }) => boolean | undefined)\r\n | undefined;\r\n limit?:\r\n | ((params: {\r\n ctx: object;\r\n modelName: string;\r\n operation: (typeof OperationBasic)[number];\r\n }) => number | undefined)\r\n | undefined;\r\n orderBy?:\r\n | ((params: {\r\n ctx: object;\r\n modelName: string;\r\n operation: (typeof OperationBasic)[number];\r\n }) => object | undefined)\r\n | undefined;\r\n where?:\r\n | ((params: {\r\n ctx: object;\r\n modelName: string;\r\n operation: (typeof OperationBasic)[number];\r\n }) => object | undefined)\r\n | undefined;\r\n inputData?:\r\n | ((params: {\r\n ctx: object;\r\n modelName: string;\r\n operation: (typeof OperationBasic)[number];\r\n }) => object | undefined)\r\n | undefined;\r\n depthLimit?:\r\n | ((params: {\r\n ctx: object;\r\n modelName: string;\r\n operation: (typeof OperationBasic)[number];\r\n }) => number | undefined)\r\n | undefined;\r\n};\r\n\r\nexport class DrizzleGenerator<Types extends SchemaTypes> {\r\n enums: Record<string, PothosSchemaTypes.EnumRef<Types, unknown>> = {};\r\n inputOperators: Record<string, PothosSchemaTypes.InputObjectRef<Types, unknown>> = {};\r\n inputType: Record<string, Record<string, PothosSchemaTypes.InputObjectRef<Types, unknown>>> = {};\r\n tables?: Record<string, ModelData>;\r\n\r\n builder: PothosSchemaTypes.SchemaBuilder<Types>;\r\n constructor(builder: PothosSchemaTypes.SchemaBuilder<Types>) {\r\n this.builder = builder;\r\n this.createInputType();\r\n }\r\n getTableConfig() {\r\n const drizzleOption = this.builder.options.drizzle;\r\n return drizzleOption.getTableConfig as (param: SchemaEntry) => TableConfig;\r\n }\r\n createTableInfo(): Record<string, ModelData> {\r\n const options = this.builder.options.pothosDrizzleGenerator;\r\n const getConfig = this.getTableConfig();\r\n const relations = this.getRelations();\r\n const tables = Object.values(relations)\r\n .filter((t) => isTable(t.table))\r\n .map(({ name: modelName, table, relations }) => {\r\n const tableInfo = getConfig(table as never);\r\n const allOptions = options?.all;\r\n const modelOptions = options?.models?.[modelName];\r\n const columns = tableInfo.columns;\r\n const primaryColumns = Array.from(\r\n new Set([\r\n ...tableInfo.primaryKeys.flatMap((v) => v.columns),\r\n ...columns.filter((v) => v.primary),\r\n ])\r\n );\r\n\r\n const operationValue = (modelOptions?.operations ?? allOptions?.operations)?.({\r\n modelName,\r\n });\r\n const operationIncludes = expandOperations(operationValue?.include ?? OperationBasic);\r\n const operationExcludes = expandOperations(operationValue?.exclude ?? []);\r\n const operations = operationIncludes.filter((v) => !operationExcludes.includes(v));\r\n \r\n const aliasesValue = (modelOptions?.aliases ?? allOptions?.aliases)?.({\r\n modelName,\r\n });\r\n \r\n const operationAliasValue = (aliasesValue?.operations ?? {});\r\n const tableSingularAlias = aliasesValue?.singular ?? tableInfo.name;\r\n const tablePluralAlias = aliasesValue?.plural ?? `${tableInfo.name}s`;\r\n \r\n const columnValue = (modelOptions?.fields ?? allOptions?.fields)?.({\r\n modelName,\r\n });\r\n const include = (columnValue?.include as undefined | string[]) ?? [\r\n ...columns.map((c) => c.name),\r\n ...Object.keys(relations),\r\n ...Object.keys(relations).map((v) => `${v}Count`),\r\n ];\r\n const exclude = (columnValue?.exclude as undefined | string[]) ?? [];\r\n const filterColumns = include.filter((name) => !exclude.includes(name));\r\n\r\n const inputFieldValue = (modelOptions?.inputFields ?? allOptions?.inputFields)?.({\r\n modelName,\r\n });\r\n const includeInput = inputFieldValue?.include ?? columns.map((c) => c.name);\r\n const excludeInput = inputFieldValue?.exclude ?? [];\r\n const filterInputColumns = includeInput.filter((name) => !excludeInput.includes(name));\r\n return [\r\n modelName,\r\n {\r\n table,\r\n relations,\r\n columns,\r\n filterColumns,\r\n primaryColumns,\r\n operations,\r\n operationAliases: operationAliasValue,\r\n tableSingularAlias,\r\n tablePluralAlias,\r\n inputColumns: columns.filter((c) => filterInputColumns.includes(c.name)),\r\n tableInfo,\r\n executable: modelOptions?.executable ?? allOptions?.executable,\r\n limit: modelOptions?.limit ?? allOptions?.limit,\r\n orderBy: modelOptions?.orderBy ?? allOptions?.orderBy,\r\n where: modelOptions?.where ?? allOptions?.where,\r\n inputData: modelOptions?.inputData ?? allOptions?.inputData,\r\n depthLimit: modelOptions?.depthLimit ?? allOptions?.depthLimit,\r\n },\r\n ] as const;\r\n });\r\n const modelNames = tables.map(([name]) => name);\r\n\r\n const include = options?.use?.include ?? modelNames;\r\n const exclude = options?.use?.exclude ?? [];\r\n const filterTables = include.filter((name) => !exclude.includes(name));\r\n return Object.fromEntries(tables.filter(([name]) => filterTables.includes(name)));\r\n }\r\n getClient(ctx: object): DbClient {\r\n const options = this.builder.options;\r\n const drizzleOption = options.drizzle;\r\n const client =\r\n drizzleOption.client instanceof Function ? drizzleOption.client(ctx) : drizzleOption.client;\r\n return client as unknown as DbClient;\r\n }\r\n getQueryTable(ctx: object, modelName: string) {\r\n return this.getClient(ctx).query[modelName as never] as RelationalQueryBuilderShim;\r\n }\r\n getRelations(): AnyRelations {\r\n const drizzleOption = this.builder.options.drizzle;\r\n const client = drizzleOption.client as DrizzleClient;\r\n return drizzleOption.relations ?? client._.relations;\r\n }\r\n getTables() {\r\n if (this.tables) return this.tables;\r\n const tables = this.createTableInfo();\r\n this.tables = tables;\r\n return tables;\r\n }\r\n getTable(table: SchemaEntry) {\r\n const result = Object.values(this.getTables()).find((v) => v.table === table);\r\n return result;\r\n }\r\n getInputType(\r\n modelName: string,\r\n type: string,\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n options: PothosSchemaTypes.InputObjectTypeOptions<any, any>\r\n ) {\r\n if (!this.inputType[modelName]) this.inputType[modelName] = {};\r\n if (this.inputType[modelName][type]) return this.inputType[modelName][type];\r\n const { tableSingularAlias } = this.getTables()[modelName]!;\r\n const input = this.builder.inputRef(`${tableSingularAlias}${type}`);\r\n input.implement(options);\r\n this.inputType[modelName][type] = input;\r\n return input;\r\n }\r\n getInputRelation(modelName: string) {\r\n const { relations } = this.getTables()[modelName]!;\r\n\r\n const relayFields = Object.entries(relations)\r\n .filter(([, relation]) => relation.through)\r\n .map(([relationName, relation]) => {\r\n const rowInputType = this.getInputType(modelName, `_${relationName}Set`, {\r\n fields: (t) =>\r\n Object.fromEntries(\r\n relation.targetColumns.map((col) => [\r\n col.name,\r\n t.field({\r\n type: this.getDataType(col),\r\n required: col.notNull && !col.hasDefault,\r\n }),\r\n ])\r\n ),\r\n });\r\n const relationInputType = this.getInputType(modelName, `_${relationName}`, {\r\n fields: (t) => ({\r\n set: t.field({ type: [rowInputType] }),\r\n }),\r\n });\r\n\r\n return [relationName, relationInputType] as const;\r\n });\r\n return relayFields;\r\n }\r\n getInputCreate(modelName: string) {\r\n const { inputColumns } = this.getTables()[modelName]!;\r\n\r\n return this.getInputType(modelName, \"Create\", {\r\n fields: (t) => {\r\n const dbFields = inputColumns.map((col: Column) => [\r\n col.name,\r\n t.field({\r\n type: this.getDataType(col),\r\n required: col.notNull && !col.hasDefault,\r\n }),\r\n ]);\r\n const relayFields = this.getInputRelation(modelName);\r\n\r\n return Object.fromEntries([\r\n ...dbFields,\r\n ...relayFields.map(([name, field]) => [name, t.field({ type: field })]),\r\n ]);\r\n },\r\n });\r\n }\r\n\r\n getInputUpdate(modelName: string) {\r\n const { inputColumns } = this.getTables()[modelName]!;\r\n return this.getInputType(modelName, \"Update\", {\r\n fields: (t) => {\r\n const dbFields = inputColumns.map((c: Column) => [\r\n c.name,\r\n t.field({\r\n type: this.getDataType(c),\r\n }),\r\n ]);\r\n const relayFields = this.getInputRelation(modelName);\r\n return Object.fromEntries([\r\n ...dbFields,\r\n ...relayFields.map(([name, field]) => [name, t.field({ type: field })]),\r\n ]);\r\n },\r\n });\r\n }\r\n getInputWhere(modelName: string) {\r\n const { tableInfo, relations } = this.getTables()[modelName]!;\r\n const inputWhere = this.getInputType(modelName, \"Where\", {\r\n fields: (t) => {\r\n return Object.fromEntries([\r\n [\"AND\", t.field({ type: [inputWhere] })],\r\n [\"OR\", t.field({ type: [inputWhere] })],\r\n [\"NOT\", t.field({ type: inputWhere })],\r\n ...tableInfo.columns.map((c: Column) => {\r\n return [\r\n c.name,\r\n t.field({\r\n type: this.getInputOperator(this.getDataType(c)),\r\n }),\r\n ];\r\n }),\r\n ...Object.entries(relations).map(([key, relay]) => {\r\n const table = this.getTable(relay.targetTable);\r\n if (!table) return [];\r\n const { tableSingularAlias } = table;\r\n return [\r\n key,\r\n t.field({\r\n type: `${tableSingularAlias}Where`,\r\n }),\r\n ];\r\n }),\r\n ]);\r\n },\r\n });\r\n return inputWhere;\r\n }\r\n getInputOrderBy(modelName: string) {\r\n const { tableInfo } = this.getTables()[modelName]!;\r\n const inputWhere = this.getInputType(modelName, \"OrderBy\", {\r\n fields: (t) => {\r\n return Object.fromEntries(\r\n tableInfo.columns.map((c: Column) => {\r\n return [\r\n c.name,\r\n t.field({\r\n type: this.enums[\"OrderBy\"]!,\r\n }),\r\n ];\r\n })\r\n );\r\n },\r\n });\r\n return inputWhere;\r\n }\r\n\r\n getInputOperator(type: string | [string]) {\r\n const typeName = Array.isArray(type) ? `Array${type[0]}` : type;\r\n const input = this.inputOperators[typeName] ?? createInputOperator(this.builder, type);\r\n this.inputOperators[typeName] = input;\r\n return input;\r\n }\r\n createInputType() {\r\n const builder: PothosSchemaTypes.SchemaBuilder<Types> = this.builder;\r\n\r\n const scalars = [\r\n [\"BigInt\", BigIntResolver],\r\n [\"Date\", DateResolver],\r\n [\"Bytes\", ByteResolver],\r\n [\"DateTime\", DateTimeResolver],\r\n [\"Json\", JSONResolver],\r\n ] as const;\r\n for (const [scalarName, scalarResolver] of scalars) {\r\n if (!builder.configStore.hasConfig(scalarName)) {\r\n builder.addScalarType(scalarName as never, scalarResolver, {});\r\n }\r\n }\r\n\r\n this.enums[\"OrderBy\"] = builder.enumType(\"OrderBy\", {\r\n values: {\r\n Asc: { value: \"asc\" },\r\n Desc: { value: \"desc\" },\r\n },\r\n });\r\n }\r\n getDataType(column: Column & { dimensions?: number }): string | [string] {\r\n const isArray = column.dimensions;\r\n const types = column.dataType.split(\" \");\r\n if (types[0] === \"string\" && types[1] !== \"enum\") {\r\n return isArray ? [\"String\"] : \"String\";\r\n }\r\n if (types[0] === \"bigint\") {\r\n return isArray ? [\"BigInt\"] : \"BigInt\";\r\n }\r\n switch (types[1] ?? types[0]) {\r\n case \"enum\": {\r\n const sqlType = column.getSQLType();\r\n const e = this.enums[sqlType];\r\n if (!e) {\r\n this.enums[sqlType] = this.builder.enumType(sqlType, {\r\n values: column.enumValues!,\r\n });\r\n }\r\n return isArray ? [sqlType] : sqlType;\r\n }\r\n case \"buffer\":\r\n return isArray ? [\"Bytes\"] : \"Bytes\";\r\n case \"json\":\r\n return isArray ? [\"Json\"] : \"Json\";\r\n case \"date\":\r\n return isArray ? [\"DateTime\"] : \"DateTime\";\r\n case \"boolean\":\r\n return isArray ? [\"Boolean\"] : \"Boolean\";\r\n case \"point\":\r\n case \"double\":\r\n return isArray ? [\"Float\"] : \"Float\";\r\n }\r\n if (types[1]?.startsWith(\"int\")) {\r\n return isArray ? [\"Int\"] : \"Int\";\r\n }\r\n const type = isArray ? types[1]! : types[0]!;\r\n const scalarMap: Record<string, string> = {\r\n number: \"Float\",\r\n string: \"String\",\r\n };\r\n const result = scalarMap[type] ?? \"String\";\r\n return isArray ? [result] : result;\r\n }\r\n}"]}
@@ -1,4 +1,4 @@
1
- import { type Column, type RelationsRecord } from "drizzle-orm";
1
+ import { type Column, type RelationsRecord, type SQL } from "drizzle-orm";
2
2
  import { type FieldTree } from "./graphql.js";
3
3
  import type { DbClient, ModelData } from "../generator.js";
4
4
  import type { ResolvedOperationParams } from "./permissions.js";
@@ -29,20 +29,14 @@ interface QueryDataType {
29
29
  _name?: string;
30
30
  }
31
31
  export declare const replaceColumnValues: (tables: Record<string, ModelData>, tableName: string, tree: FieldTree, queryData: QueryDataType) => QueryDataType | {
32
- columns: {};
32
+ columns: Record<string, boolean>;
33
33
  extras: {
34
- _: import("drizzle-orm").SQL<unknown>;
34
+ _: SQL;
35
35
  };
36
36
  };
37
37
  export declare const getReturning: (info: GraphQLResolveInfo, columns: Column[], primary?: boolean) => {
38
38
  isRelay: boolean;
39
39
  queryFields: FieldTree;
40
- returning: undefined;
41
- } | {
42
- isRelay: boolean;
43
- queryFields: FieldTree;
44
- returning: {
45
- [k: string]: Column<import("drizzle-orm").ColumnBaseConfig<import("drizzle-orm").ColumnType>, object>;
46
- };
40
+ returning: Record<string, Column> | undefined;
47
41
  };
48
42
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"resolver-helpers.js","sourceRoot":"","sources":["../../../src/libs/resolver-helpers.ts"],"names":[],"mappings":"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","sourcesContent":["import { and, eq, sql, type Column, type RelationsRecord } from \"drizzle-orm\";\nimport { getQueryFields, type FieldTree } from \"./graphql.js\";\nimport type { DbClient, ModelData } from \"../generator.js\";\nimport type { ResolvedOperationParams } from \"./permissions.js\";\nimport type { GraphQLResolveInfo } from \"graphql\";\n\ntype QueryArgs = {\n offset?: number;\n limit?: number;\n where?: object;\n orderBy?: object[];\n};\n\nexport function prepareQueryOptions(\n args: QueryArgs,\n params: ResolvedOperationParams,\n isMany: boolean\n) {\n const where = {\n AND: [structuredClone(args.where), params.where].filter((v) => v),\n };\n\n const orderBy =\n args.orderBy && Object.keys(args.orderBy).length\n ? Object.fromEntries(args.orderBy.flatMap((v) => Object.entries(v)))\n : params.orderBy;\n\n const queryOptions: Omit<QueryArgs, \"orderBy\"> & { where: object; orderBy?: object } = {\n ...args,\n where,\n orderBy,\n };\n\n if (isMany) {\n queryOptions.limit =\n params.limit != null && args.limit != null\n ? Math.min(params.limit, args.limit)\n : (params.limit ?? args.limit);\n }\n\n return queryOptions;\n}\n\nexport function separateInput(input: object, columns: Pick<Column, \"name\">[]) {\n const dbColumnsInput: Record<string, unknown> = {};\n const relationFieldsInput: [string, unknown][] = [];\n\n for (const [key, value] of Object.entries(input)) {\n if (columns.some((col) => col.name === key)) {\n dbColumnsInput[key] = value;\n } else {\n relationFieldsInput.push([key, value]);\n }\n }\n\n return { dbColumnsInput, relationFieldsInput };\n}\n\nexport async function insertRelayValue({\n results,\n client,\n relationInputs,\n relations,\n}: {\n results: Record<string, unknown>[];\n client: DbClient;\n relationInputs: [string, unknown][][];\n relations: RelationsRecord;\n}) {\n for (const index in results) {\n const result = results[index];\n const relationInput = relationInputs[index];\n if (!result || !relationInput?.length) continue;\n for (const [relationName, value] of relationInput) {\n const inputPayload = value as { set?: Record<string, unknown>[] };\n const itemsToSet = inputPayload.set;\n\n const relay = relations[relationName];\n if (!itemsToSet || !relay?.through || !relay.throughTable) continue;\n\n const { throughTable } = relay;\n\n const sourceToThroughMap = Object.fromEntries(\n relay.sourceColumns.map((v, i) => [v.name, relay.through!.source[i]!._.key])\n );\n const targetToThroughMap = Object.fromEntries(\n relay.targetColumns.map((v, i) => [v.name, relay.through!.target[i]!._.key])\n );\n\n const sourceFilters = relay.sourceColumns.map(\n (v) => [sourceToThroughMap[v.name], result[v.name]] as const\n );\n await client\n .delete(throughTable as never)\n .where(\n and(...sourceFilters.map(([key, val]) => eq(relay.throughTable![key as never], val)))\n );\n\n const insertRows = itemsToSet.map((item) => {\n const targetValues = Object.entries(item).map(([key, val]) => [\n targetToThroughMap[key],\n val,\n ]);\n return Object.fromEntries([...targetValues, ...sourceFilters]);\n });\n\n if (insertRows.length > 0) {\n await client.insert(throughTable as never).values(insertRows);\n }\n }\n }\n}\n\ninterface QueryDataType {\n columns?: Record<string, boolean>;\n with?: Record<string, QueryDataType>;\n _name?: string;\n}\n\nexport const replaceColumnValues = (\n tables: Record<string, ModelData>,\n tableName: string,\n tree: FieldTree,\n queryData: QueryDataType\n) => {\n if (Object.keys(tree).every((v) => v === \"__typename\")) {\n return {\n columns: {},\n extras: { _: sql`0` },\n };\n }\n const info = tables[tableName]!;\n const columns = info?.columns;\n if (columns) {\n queryData.columns = Object.fromEntries(\n Object.entries(tree).flatMap(([name, value]) =>\n value === true && columns.find((v) => v.name === name) ? [[name, true]] : []\n )\n );\n }\n if (queryData.with) {\n Object.entries(queryData.with).forEach(([name, query]) => {\n if (typeof tree[name] === \"object\") {\n replaceColumnValues(tables, (query as { _name: string })._name, tree[name], query);\n }\n });\n }\n return queryData;\n};\n\nexport const getReturning = (info: GraphQLResolveInfo, columns: Column[], primary?: boolean) => {\n const queryFields = getQueryFields(info);\n const isRelay = Object.keys(queryFields).some((v) => !columns.find((c) => c.name === v));\n const returningColumns = columns.filter(\n (v) => queryFields[v.name] || ((primary || isRelay) && v.primary)\n );\n if (!returningColumns.length) return { isRelay, queryFields, returning: undefined };\n const returning = Object.fromEntries(returningColumns.map((v) => [v.name, v]));\n return {\n isRelay,\n queryFields,\n returning,\n };\n};\n"]}
1
+ {"version":3,"file":"resolver-helpers.js","sourceRoot":"","sources":["../../../src/libs/resolver-helpers.ts"],"names":[],"mappings":"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","sourcesContent":["import { and, eq, sql, type Column, type RelationsRecord, type SQL } from \"drizzle-orm\";\nimport { getQueryFields, type FieldTree } from \"./graphql.js\";\nimport type { DbClient, ModelData } from \"../generator.js\";\nimport type { ResolvedOperationParams } from \"./permissions.js\";\nimport type { GraphQLResolveInfo } from \"graphql\";\n\ntype QueryArgs = {\n offset?: number;\n limit?: number;\n where?: object;\n orderBy?: object[];\n};\n\nexport function prepareQueryOptions(\n args: QueryArgs,\n params: ResolvedOperationParams,\n isMany: boolean\n) {\n const where = {\n AND: [structuredClone(args.where), params.where].filter((v) => v),\n };\n\n const orderBy =\n args.orderBy && Object.keys(args.orderBy).length\n ? Object.fromEntries(args.orderBy.flatMap((v) => Object.entries(v)))\n : params.orderBy;\n\n const queryOptions: Omit<QueryArgs, \"orderBy\"> & { where: object; orderBy?: object } = {\n ...args,\n where,\n orderBy,\n };\n\n if (isMany) {\n queryOptions.limit =\n params.limit != null && args.limit != null\n ? Math.min(params.limit, args.limit)\n : (params.limit ?? args.limit);\n }\n\n return queryOptions;\n}\n\nexport function separateInput(input: object, columns: Pick<Column, \"name\">[]) {\n const dbColumnsInput: Record<string, unknown> = {};\n const relationFieldsInput: [string, unknown][] = [];\n\n for (const [key, value] of Object.entries(input)) {\n if (columns.some((col) => col.name === key)) {\n dbColumnsInput[key] = value;\n } else {\n relationFieldsInput.push([key, value]);\n }\n }\n\n return { dbColumnsInput, relationFieldsInput };\n}\n\nexport async function insertRelayValue({\n results,\n client,\n relationInputs,\n relations,\n}: {\n results: Record<string, unknown>[];\n client: DbClient;\n relationInputs: [string, unknown][][];\n relations: RelationsRecord;\n}) {\n for (const index in results) {\n const result = results[index];\n const relationInput = relationInputs[index];\n if (!result || !relationInput?.length) continue;\n for (const [relationName, value] of relationInput) {\n const inputPayload = value as { set?: Record<string, unknown>[] };\n const itemsToSet = inputPayload.set;\n\n const relay = relations[relationName];\n if (!itemsToSet || !relay?.through || !relay.throughTable) continue;\n\n const { throughTable } = relay;\n\n const sourceToThroughMap = Object.fromEntries(\n relay.sourceColumns.map((v, i) => [v.name, relay.through!.source[i]!._.key])\n );\n const targetToThroughMap = Object.fromEntries(\n relay.targetColumns.map((v, i) => [v.name, relay.through!.target[i]!._.key])\n );\n\n const sourceFilters = relay.sourceColumns.map(\n (v) => [sourceToThroughMap[v.name], result[v.name]] as const\n );\n await client\n .delete(throughTable as never)\n .where(\n and(...sourceFilters.map(([key, val]) => eq(relay.throughTable![key as never], val)))\n );\n\n const insertRows = itemsToSet.map((item) => {\n const targetValues = Object.entries(item).map(([key, val]) => [\n targetToThroughMap[key],\n val,\n ]);\n return Object.fromEntries([...targetValues, ...sourceFilters]);\n });\n\n if (insertRows.length > 0) {\n await client.insert(throughTable as never).values(insertRows);\n }\n }\n }\n}\n\ninterface QueryDataType {\n columns?: Record<string, boolean>;\n with?: Record<string, QueryDataType>;\n _name?: string;\n}\n\nexport const replaceColumnValues = (\n tables: Record<string, ModelData>,\n tableName: string,\n tree: FieldTree,\n queryData: QueryDataType\n): QueryDataType | { columns: Record<string, boolean>; extras: { _: SQL } } => {\n if (Object.keys(tree).every((v) => v === \"__typename\")) {\n return {\n columns: {},\n extras: { _: sql`0` },\n };\n }\n const info = tables[tableName]!;\n const columns = info?.columns;\n if (columns) {\n queryData.columns = Object.fromEntries(\n Object.entries(tree).flatMap(([name, value]) =>\n value === true && columns.find((v) => v.name === name) ? [[name, true]] : []\n )\n );\n }\n if (queryData.with) {\n Object.entries(queryData.with).forEach(([name, query]) => {\n if (typeof tree[name] === \"object\") {\n replaceColumnValues(tables, (query as { _name: string })._name, tree[name], query);\n }\n });\n }\n return queryData;\n};\n\nexport const getReturning = (\n info: GraphQLResolveInfo,\n columns: Column[],\n primary?: boolean\n): {\n isRelay: boolean;\n queryFields: FieldTree;\n returning: Record<string, Column> | undefined;\n} => {\n const queryFields = getQueryFields(info);\n const isRelay = Object.keys(queryFields).some((v) => !columns.find((c) => c.name === v));\n const returningColumns = columns.filter(\n (v) => queryFields[v.name] || ((primary || isRelay) && v.primary)\n );\n if (!returningColumns.length) return { isRelay, queryFields, returning: undefined };\n const returning = Object.fromEntries(returningColumns.map((v) => [v.name, v]));\n return {\n isRelay,\n queryFields,\n returning,\n };\n};\n"]}
package/package.json CHANGED
@@ -1,61 +1,62 @@
1
- {
2
- "name": "pothos-drizzle-generator",
3
- "version": "0.1.30",
4
- "main": "./dist/cjs/index.js",
5
- "types": "./dist/cjs/index.d.ts",
6
- "exports": {
7
- ".": {
8
- "require": "./dist/cjs/index.js",
9
- "import": "./dist/esm/index.js"
10
- }
11
- },
12
- "scripts": {
13
- "build": "tsc && tsc -p ./tsconfig.esm.json && cpy esm dist",
14
- "lint": "eslint ./src",
15
- "lint:fix": "eslint --fix ./src ./test",
16
- "test:actions": "vitest run --coverage",
17
- "test:watch": "vitest --coverage",
18
- "test:docker": "docker compose -f test/docker/docker-compose.yml up -d",
19
- "test:generate": "drizzle-kit generate --config test/drizzle.config.ts",
20
- "test:migrate": "drizzle-kit migrate --config test/drizzle.config.ts",
21
- "test:seed": "tsx test/tools/seed",
22
- "test:reset": "tsx test/tools/reset && pnpm run test:migrate",
23
- "explorer": "tsx --watch test/tools/explorer"
24
- },
25
- "dependencies": {
26
- "graphql": "^16.12.0",
27
- "graphql-scalars": "^1.25.0"
28
- },
29
- "devDependencies": {
30
- "@eslint/js": "^9.39.2",
31
- "@hono/graphql-server": "^0.7.0",
32
- "@hono/node-server": "1.19.7",
33
- "@pothos/core": "^4.12.0",
34
- "@pothos/plugin-drizzle": "^0.16.2",
35
- "@types/graphql": "^14.5.0",
36
- "@urql/core": "6.0.1",
37
- "@vitest/coverage-v8": "4.0.16",
38
- "apollo-explorer": "1.1.3",
39
- "cpy-cli": "^6.0.0",
40
- "dotenv": "17.2.3",
41
- "drizzle-kit": "1.0.0-beta.10-4a43a22",
42
- "drizzle-orm": "1.0.0-beta.10-4a43a22",
43
- "drizzle-seed": "1.0.0-beta.10-4a43a22",
44
- "eslint": "^9.39.2",
45
- "eslint-config-prettier": "^10.1.8",
46
- "eslint-import-resolver-typescript": "^4.4.4",
47
- "eslint-plugin-import": "^2.32.0",
48
- "eslint-plugin-prettier": "5.5.4",
49
- "graphql-auto-query": "1.0.4",
50
- "hono": "^4.11.3",
51
- "jose": "6.1.3",
52
- "prettier": "3.7.4",
53
- "tsx": "4.21.0",
54
- "typescript": "^5.9.3",
55
- "typescript-eslint": "^8.52.0",
56
- "vitest": "4.0.16"
57
- },
58
- "repository": "https://github.com/node-libraries/pothos-drizzle-generator",
59
- "author": "SoraKumo <info@croud.jp>",
60
- "license": "MIT"
61
- }
1
+ {
2
+ "name": "pothos-drizzle-generator",
3
+ "version": "0.2.0",
4
+ "main": "./dist/cjs/index.js",
5
+ "types": "./dist/cjs/index.d.ts",
6
+ "exports": {
7
+ ".": {
8
+ "require": "./dist/cjs/index.js",
9
+ "import": "./dist/esm/index.js"
10
+ }
11
+ },
12
+ "scripts": {
13
+ "build": "tsc && tsc -p ./tsconfig.esm.json && cpy esm dist",
14
+ "lint": "eslint ./src",
15
+ "lint:fix": "eslint --fix ./src ./test",
16
+ "test:actions": "vitest run --coverage",
17
+ "test:watch": "vitest --coverage",
18
+ "test:docker": "docker compose -f test/docker/docker-compose.yml up -d",
19
+ "test:generate": "drizzle-kit generate --config test/drizzle.config.ts",
20
+ "test:migrate": "drizzle-kit migrate --config test/drizzle.config.ts",
21
+ "test:seed": "tsx test/tools/seed",
22
+ "test:reset": "tsx test/tools/reset && pnpm run test:migrate",
23
+ "explorer": "tsx --watch test/tools/explorer",
24
+ "update:drizzle": "pnpm install -D drizzle-orm@rc drizzle-kit@rc drizzle-seed@rc"
25
+ },
26
+ "dependencies": {
27
+ "graphql": "^16.14.0",
28
+ "graphql-scalars": "^1.25.0"
29
+ },
30
+ "devDependencies": {
31
+ "@eslint/js": "^10.0.1",
32
+ "@hono/graphql-server": "^0.7.0",
33
+ "@hono/node-server": "2.0.3",
34
+ "@pothos/core": "^4.12.0",
35
+ "@pothos/plugin-drizzle": "^0.17.4",
36
+ "@types/graphql": "^14.5.0",
37
+ "@urql/core": "6.0.1",
38
+ "@vitest/coverage-v8": "4.1.7",
39
+ "apollo-explorer": "1.1.3",
40
+ "cpy-cli": "^7.0.0",
41
+ "dotenv": "17.4.2",
42
+ "drizzle-kit": "1.0.0-rc.3",
43
+ "drizzle-orm": "1.0.0-rc.3",
44
+ "drizzle-seed": "1.0.0-rc.3",
45
+ "eslint": "^10.4.0",
46
+ "eslint-config-prettier": "^10.1.8",
47
+ "eslint-import-resolver-typescript": "^4.4.4",
48
+ "eslint-plugin-import": "^2.32.0",
49
+ "eslint-plugin-prettier": "5.5.5",
50
+ "graphql-auto-query": "1.1.1",
51
+ "hono": "^4.12.22",
52
+ "jose": "6.2.3",
53
+ "prettier": "3.8.3",
54
+ "tsx": "4.22.3",
55
+ "typescript": "^6.0.3",
56
+ "typescript-eslint": "^8.59.4",
57
+ "vitest": "4.1.7"
58
+ },
59
+ "repository": "https://github.com/node-libraries/pothos-drizzle-generator",
60
+ "author": "SoraKumo <info@croud.jp>",
61
+ "license": "MIT"
62
+ }
@@ -1,40 +0,0 @@
1
- import { type Column } from "drizzle-orm";
2
- import type { SchemaTypes } from "@pothos/core";
3
- import type { ModelData } from "./generator.js";
4
- export declare class InputBuilder<Types extends SchemaTypes> {
5
- enums: Record<string, PothosSchemaTypes.EnumRef<Types, unknown>>;
6
- inputOperators: Record<string, PothosSchemaTypes.InputObjectRef<Types, unknown>>;
7
- inputType: Record<string, Record<string, PothosSchemaTypes.InputObjectRef<Types, unknown>>>;
8
- builder: PothosSchemaTypes.SchemaBuilder<Types>;
9
- getTables: () => Record<string, ModelData>;
10
- constructor(builder: PothosSchemaTypes.SchemaBuilder<Types>, getTables: () => Record<string, ModelData>);
11
- getInputType(modelName: string, type: string, options: PothosSchemaTypes.InputObjectTypeOptions<any, any>): PothosSchemaTypes.InputObjectRef<Types, unknown>;
12
- getInputRelation(modelName: string): (readonly [string, PothosSchemaTypes.InputObjectRef<Types, unknown>])[];
13
- getInputCreate(modelName: string): PothosSchemaTypes.InputObjectRef<Types, unknown>;
14
- getInputUpdate(modelName: string): PothosSchemaTypes.InputObjectRef<Types, unknown>;
15
- getInputWhere(modelName: string): PothosSchemaTypes.InputObjectRef<Types, unknown>;
16
- getInputOrderBy(modelName: string): PothosSchemaTypes.InputObjectRef<Types, unknown>;
17
- getInputOperator(type: string | [string]): PothosSchemaTypes.InputObjectRef<any, {
18
- eq?: any;
19
- ne?: any;
20
- gt?: any;
21
- gte?: any;
22
- lt?: any;
23
- lte?: any;
24
- like?: any;
25
- notLike?: any;
26
- ilike?: any;
27
- notIlike?: any;
28
- isNull?: any;
29
- isNotNull?: any;
30
- in: never;
31
- notIn: never;
32
- arrayContained: never;
33
- arrayOverlaps: never;
34
- arrayContains: never;
35
- }> | PothosSchemaTypes.InputObjectRef<Types, unknown>;
36
- createInputTypeScalarsAndEnums(): void;
37
- getDataType(column: Column & {
38
- dimensions?: number;
39
- }): string | [string];
40
- }