joist-graphql-codegen 2.3.0-next.41 → 2.3.0-next.43
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/build/_virtual/_rolldown/runtime.cjs +23 -0
- package/build/generateEnumDetailResolvers.cjs +40 -0
- package/build/generateEnumDetailResolvers.cjs.map +1 -0
- package/build/generateEnumDetailResolvers.d.cts +8 -0
- package/build/generateEnumDetailResolvers.d.cts.map +1 -0
- package/build/generateEnumDetailResolvers.d.mts +8 -0
- package/build/generateEnumDetailResolvers.d.mts.map +1 -0
- package/build/generateEnumDetailResolvers.js +23 -23
- package/build/generateEnumDetailResolvers.js.map +1 -1
- package/build/generateEnumsGraphql.cjs +29 -0
- package/build/generateEnumsGraphql.cjs.map +1 -0
- package/build/generateEnumsGraphql.d.cts +8 -0
- package/build/generateEnumsGraphql.d.cts.map +1 -0
- package/build/generateEnumsGraphql.d.mts +8 -0
- package/build/generateEnumsGraphql.d.mts.map +1 -0
- package/build/generateEnumsGraphql.js +24 -27
- package/build/generateEnumsGraphql.js.map +1 -1
- package/build/generateGraphqlCodegen.cjs +54 -0
- package/build/generateGraphqlCodegen.cjs.map +1 -0
- package/build/generateGraphqlCodegen.d.cts +8 -0
- package/build/generateGraphqlCodegen.d.cts.map +1 -0
- package/build/generateGraphqlCodegen.d.mts +8 -0
- package/build/generateGraphqlCodegen.d.mts.map +1 -0
- package/build/generateGraphqlCodegen.js +28 -30
- package/build/generateGraphqlCodegen.js.map +1 -1
- package/build/generateGraphqlSchemaFiles.cjs +491 -0
- package/build/generateGraphqlSchemaFiles.cjs.map +1 -0
- package/build/{generateGraphqlSchemaFiles.d.ts → generateGraphqlSchemaFiles.d.cts} +6 -2
- package/build/generateGraphqlSchemaFiles.d.cts.map +1 -0
- package/build/generateGraphqlSchemaFiles.d.mts +15 -0
- package/build/generateGraphqlSchemaFiles.d.mts.map +1 -0
- package/build/generateGraphqlSchemaFiles.js +444 -286
- package/build/generateGraphqlSchemaFiles.js.map +1 -1
- package/build/generateObjectResolvers.cjs +70 -0
- package/build/generateObjectResolvers.cjs.map +1 -0
- package/build/{generateObjectResolvers.d.ts → generateObjectResolvers.d.cts} +5 -1
- package/build/generateObjectResolvers.d.cts.map +1 -0
- package/build/generateObjectResolvers.d.mts +17 -0
- package/build/generateObjectResolvers.d.mts.map +1 -0
- package/build/generateObjectResolvers.js +48 -38
- package/build/generateObjectResolvers.js.map +1 -1
- package/build/generateQueryPageResolvers.cjs +51 -0
- package/build/generateQueryPageResolvers.cjs.map +1 -0
- package/build/generateQueryPageResolvers.d.cts +8 -0
- package/build/generateQueryPageResolvers.d.cts.map +1 -0
- package/build/generateQueryPageResolvers.d.mts +8 -0
- package/build/generateQueryPageResolvers.d.mts.map +1 -0
- package/build/generateQueryPageResolvers.js +31 -35
- package/build/generateQueryPageResolvers.js.map +1 -1
- package/build/generateQueryResolvers.cjs +55 -0
- package/build/generateQueryResolvers.cjs.map +1 -0
- package/build/generateQueryResolvers.d.cts +10 -0
- package/build/generateQueryResolvers.d.cts.map +1 -0
- package/build/generateQueryResolvers.d.mts +10 -0
- package/build/generateQueryResolvers.d.mts.map +1 -0
- package/build/generateQueryResolvers.js +38 -36
- package/build/generateQueryResolvers.js.map +1 -1
- package/build/generateResolverUtils.cjs +36 -0
- package/build/generateResolverUtils.cjs.map +1 -0
- package/build/generateResolverUtils.d.cts +8 -0
- package/build/generateResolverUtils.d.cts.map +1 -0
- package/build/generateResolverUtils.d.mts +8 -0
- package/build/generateResolverUtils.d.mts.map +1 -0
- package/build/generateResolverUtils.js +25 -26
- package/build/generateResolverUtils.js.map +1 -1
- package/build/generateSaveResolvers.cjs +57 -0
- package/build/generateSaveResolvers.cjs.map +1 -0
- package/build/{generateSaveResolvers.d.ts → generateSaveResolvers.d.cts} +5 -1
- package/build/generateSaveResolvers.d.cts.map +1 -0
- package/build/generateSaveResolvers.d.mts +17 -0
- package/build/generateSaveResolvers.d.mts.map +1 -0
- package/build/generateSaveResolvers.js +39 -40
- package/build/generateSaveResolvers.js.map +1 -1
- package/build/graphqlUtils.cjs +160 -0
- package/build/graphqlUtils.cjs.map +1 -0
- package/build/graphqlUtils.d.cts +31 -0
- package/build/graphqlUtils.d.cts.map +1 -0
- package/build/graphqlUtils.d.mts +31 -0
- package/build/graphqlUtils.d.mts.map +1 -0
- package/build/graphqlUtils.js +120 -218
- package/build/graphqlUtils.js.map +1 -1
- package/build/history.cjs +25 -0
- package/build/history.cjs.map +1 -0
- package/build/history.d.cts +9 -0
- package/build/history.d.cts.map +1 -0
- package/build/history.d.mts +9 -0
- package/build/history.d.mts.map +1 -0
- package/build/history.js +17 -14
- package/build/history.js.map +1 -1
- package/build/index.cjs +57 -0
- package/build/index.cjs.map +1 -0
- package/build/index.d.cts +7 -0
- package/build/index.d.cts.map +1 -0
- package/build/index.d.mts +7 -0
- package/build/index.d.mts.map +1 -0
- package/build/index.js +48 -54
- package/build/index.js.map +1 -1
- package/build/testUtils.cjs +181 -0
- package/build/testUtils.cjs.map +1 -0
- package/build/testUtils.d.cts +20 -0
- package/build/testUtils.d.cts.map +1 -0
- package/build/testUtils.d.mts +20 -0
- package/build/testUtils.d.mts.map +1 -0
- package/build/testUtils.js +152 -158
- package/build/testUtils.js.map +1 -1
- package/build/utils.cjs +51 -0
- package/build/utils.cjs.map +1 -0
- package/build/utils.d.cts +16 -0
- package/build/utils.d.cts.map +1 -0
- package/build/utils.d.mts +16 -0
- package/build/utils.d.mts.map +1 -0
- package/build/utils.js +37 -49
- package/build/utils.js.map +1 -1
- package/package.json +28 -5
- package/build/generateEnumDetailResolvers.d.ts +0 -4
- package/build/generateEnumsGraphql.d.ts +0 -4
- package/build/generateGraphqlCodegen.d.ts +0 -4
- package/build/generateQueryPageResolvers.d.ts +0 -4
- package/build/generateQueryResolvers.d.ts +0 -6
- package/build/generateResolverUtils.d.ts +0 -4
- package/build/graphqlUtils.d.ts +0 -27
- package/build/history.d.ts +0 -5
- package/build/index.d.ts +0 -3
- package/build/testUtils.d.ts +0 -24
- package/build/utils.d.ts +0 -12
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateGraphqlSchemaFiles.js","sourceRoot":"","sources":["../src/generateGraphqlSchemaFiles.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"generateGraphqlSchemaFiles.js","names":[],"sources":["../src/generateGraphqlSchemaFiles.ts"],"sourcesContent":["import { camelCase } from \"change-case\";\nimport { type Config, type DbMetadata, type EntityDbMetadata } from \"joist-codegen\";\nimport { groupBy } from \"joist-utils\";\nimport pluralize from \"pluralize\";\n\nimport { type GqlField, type GqlUnion, mapTypescriptTypeToGraphQLType, upsertIntoFile } from \"./graphqlUtils.ts\";\nimport { loadHistory, writeHistory } from \"./history.ts\";\nimport { type Fs } from \"./utils.ts\";\n\n/**\n * Generates `*.graphql` files based on the database schema.\n *\n * This follows an \"evergreen\" approach where we upsert changes into files that are also\n * hand-modified by the programmer. We remember what insertions we've made in a history file,\n * and will only do them once, which allows programmers to manually add/edit/remove fields\n * without this stomping over their changes.\n */\nexport async function generateGraphqlSchemaFiles(config: Config, fs: Fs, dbMeta: DbMetadata): Promise<void> {\n const { entities } = dbMeta;\n // Generate the \"ideal\" fields based solely on the domain model\n const fields = [\n ...createPageInfoFields(config),\n ...createQueryFields(config, entities),\n ...createSaveMutation(entities),\n ...createEntityFields(dbMeta),\n ...createFilterFields(dbMeta),\n ...createSaveEntityInputFields(dbMeta),\n ...createSaveEntityResultFields(entities),\n ];\n\n const unions = createPolymorphicUnions(entities);\n\n // Load the history and filter out only \"new\" / not-yet-added-to-.graphql fields\n const history = await loadHistory(fs);\n const newEntries = [\n ...fields.filter(({ objectName, fieldName }) => !history[objectName]?.includes(fieldName)),\n ...unions.filter(({ objectName, types }) => {\n const set = new Set(history[objectName] ?? []);\n return !(set.size === types.length && types.every((type) => set.has(type)));\n }),\n ];\n if (newEntries.length === 0) {\n return;\n }\n\n // Update the `.graphql` files with our new types/fields\n await Promise.all(\n Object.entries(groupBy(newEntries, (f) => f.file)).map(([file, fields]) => {\n return upsertIntoFile(fs, file, fields);\n }),\n );\n\n // Record the current batch of fields back to the history file\n newEntries.forEach((entry) => {\n if (entry.objectType === \"union\") {\n const { objectName, types } = entry;\n history[objectName] = types;\n } else {\n const { objectName, fieldName } = entry;\n const fields = (history[objectName] = history[objectName] || []);\n if (!fields.includes(fieldName)) {\n fields.push(fieldName);\n }\n }\n });\n await writeHistory(fs, history);\n}\n\n/** Makes the project's pagination metadata type. */\nfunction createPageInfoFields(config: Config): GqlField[] {\n const common = { file: \"pageInfo.graphql\", objectType: \"output\" as const, objectName: \"PageInfo\" };\n const shared = [\n { ...common, fieldName: \"hasNextPage\", fieldType: \"Boolean!\" },\n { ...common, fieldName: \"hasPreviousPage\", fieldType: \"Boolean!\" },\n { ...common, fieldName: \"totalCount\", fieldType: \"Int!\" },\n ];\n\n // Joist assumes each project uses either cursor or limit pagination, so the public GraphQL type is\n // always named `PageInfo` but contains the fields for the configured pagination style.\n if ((config.paginationStyle ?? \"cursor\") === \"limit\") {\n return [\n ...shared,\n { ...common, fieldName: \"nextPage\", fieldType: \"Int\" },\n { ...common, fieldName: \"currentPage\", fieldType: \"Int\" },\n ];\n }\n\n return [\n ...shared,\n { ...common, fieldName: \"startCursor\", fieldType: \"String\" },\n { ...common, fieldName: \"endCursor\", fieldType: \"String\" },\n ];\n}\n\n/** Make all the fields for `type Author`, `type Book`, etc. */\nfunction createPolymorphicUnions(entities: EntityDbMetadata[]): GqlUnion[] {\n return entities.flatMap((e) => {\n const file = fileName(e);\n return e.polymorphics.map(({ fieldType, components }) => {\n return { file, objectType: \"union\", objectName: fieldType, types: components.map((c) => c.otherEntity.name) };\n });\n });\n}\n\n/** Make all the fields for `type Author`, `type Book`, etc. */\nfunction createEntityFields(dbMeta: DbMetadata): GqlField[] {\n const { entities } = dbMeta;\n return entities.flatMap((e) => {\n const file = fileName(e);\n const objectType = \"output\" as const;\n const objectName = e.entity.name;\n const common = { file, objectType, objectName };\n\n const id: GqlField = { ...common, fieldName: \"id\", fieldType: \"ID!\" };\n\n const primitives = e.primitives.flatMap(({ fieldName, fieldType: tsType, isArray, notNull }) => {\n const fieldType = primitiveFieldType(fieldName, tsType, isArray, notNull);\n if (!fieldType) return [];\n return [{ ...common, fieldName, fieldType }];\n });\n\n const enums = e.enums.map(({ fieldName, enumType, notNull, isArray }) => {\n const fieldType = isArray ? `[${enumType.symbol}!]!` : `${enumType.symbol}Detail${maybeRequired(notNull)}`;\n return { ...common, fieldName, fieldType };\n });\n const pgEnums = e.pgEnums.map(({ fieldName, enumType, notNull }) => {\n const fieldType = `${enumType.symbol}${maybeRequired(notNull)}`;\n return { ...common, fieldName, fieldType };\n });\n\n const m2os = e.manyToOnes.map(({ fieldName, otherEntity, notNull }) => {\n const other = dbMeta.entitiesByName[otherEntity.name];\n const maybeLike = other.subTypes.length > 0 && !other.abstract ? \"Like\" : \"\";\n const fieldType = `${otherEntity.name}${maybeLike}${maybeRequired(notNull)}`;\n return { ...common, fieldName, fieldType };\n });\n\n const o2ms = e.oneToManys.map(({ fieldName, otherEntity }) => {\n const fieldType = `[${otherEntity.name}!]!`;\n return { ...common, fieldName, fieldType };\n });\n\n const m2ms = e.manyToManys.map(({ fieldName, otherEntity }) => {\n const fieldType = `[${otherEntity.name}!]!`;\n return { ...common, fieldName, fieldType };\n });\n\n const o2os = e.oneToOnes.map(({ fieldName, otherEntity }) => {\n return { ...common, fieldName, fieldType: otherEntity.name };\n });\n\n const polys = e.polymorphics.map(({ fieldName, fieldType }) => {\n return { ...common, fieldName, fieldType };\n });\n\n // GraphQL wants base fields copy/pasted onto subtypes, so re-run ourselves against just the base type\n const inheritedFields = e.baseClassName\n ? createEntityFields(findBaseEntity(dbMeta, e.baseClassName))\n .map((f) => ({ ...f, ...common }))\n .filter((f) => f.fieldName !== \"id\")\n : [];\n\n return [id, ...inheritedFields, ...primitives, ...enums, ...pgEnums, ...m2os, ...o2ms, ...m2ms, ...o2os, ...polys];\n });\n}\n\n/** Makes the `Mutations.save${entity}` placeholder. */\nfunction createSaveMutation(entities: EntityDbMetadata[]): GqlField[] {\n return entities.map((e) => {\n const file = fileName(e);\n const inputType = `Save${e.entity.name}Input`;\n const outputType = `Save${e.entity.name}Result`;\n return {\n file,\n objectType: \"output\",\n objectName: \"Mutation\",\n fieldName: `save${e.entity.name}`,\n fieldType: `${outputType}!`,\n argsString: `input: ${inputType}!`,\n extends: true,\n };\n });\n}\n\n/** Makes the `Query.${entity}` and `Query.${entity}s` placeholders. */\nfunction createQueryFields(config: Config, entities: EntityDbMetadata[]): GqlField[] {\n return entities.flatMap((e) => {\n const file = fileName(e);\n const { name } = e.entity;\n const pluralName = pluralize(name);\n const camelName = camelCase(name);\n const pluralCamelName = pluralize(camelName);\n const collectionType =\n (config.paginationStyle ?? \"cursor\") === \"limit\" ? `${pluralName}Page!` : `${pluralName}Connection!`;\n const collectionArgs =\n (config.paginationStyle ?? \"cursor\") === \"limit\"\n ? `filter: ${name}Filter, limit: Int, offset: Int`\n : `filter: ${name}Filter, first: Int, after: String, last: Int, before: String`;\n return [\n {\n file,\n objectType: \"output\",\n objectName: \"Query\",\n fieldName: camelName,\n fieldType: `${name}!`,\n argsString: `id: ID!`,\n extends: true,\n },\n {\n file,\n objectType: \"output\",\n objectName: \"Query\",\n fieldName: pluralCamelName,\n fieldType: collectionType,\n argsString: collectionArgs,\n extends: true,\n },\n ...createPaginationTypes(config, file, e),\n ];\n });\n}\n\n/** Makes the `AuthorFilter`, `BookFilter`, etc. input types. */\nfunction createFilterFields(dbMeta: DbMetadata): GqlField[] {\n const { entities } = dbMeta;\n return entities.flatMap((e) => {\n const file = fileName(e);\n const objectType = \"input\" as const;\n const objectName = `${e.entity.name}Filter`;\n const common = { file, objectType, objectName };\n\n const id: GqlField = { ...common, fieldName: \"id\", fieldType: filterListType(\"ID\") };\n\n const primitives = e.primitives.flatMap(({ fieldName, fieldType: tsType, isArray }) => {\n const fieldType = primitiveFieldType(fieldName, tsType, isArray);\n if (!fieldType) return [];\n return [{ ...common, fieldName, fieldType: filterListType(fieldType) }];\n });\n\n const enums = e.enums.map(({ fieldName, enumType, isArray }) => {\n const fieldType = isArray ? `[${enumType.symbol}!]` : enumType.symbol;\n return { ...common, fieldName, fieldType: filterListType(fieldType) };\n });\n const pgEnums = e.pgEnums.map(({ fieldName, enumType }) => {\n return { ...common, fieldName, fieldType: filterListType(enumType.symbol) };\n });\n\n const m2os = e.manyToOnes.map(({ fieldName }) => {\n return { ...common, fieldName: `${fieldName}Id`, fieldType: filterListType(\"ID\") };\n });\n\n const polys = e.polymorphics.map(({ fieldName }) => {\n return { ...common, fieldName: `${fieldName}Id`, fieldType: filterListType(\"ID\") };\n });\n\n const inherited = e.baseClassName\n ? createFilterFields(findBaseEntity(dbMeta, e.baseClassName))\n .map((f) => ({ ...f, ...common }))\n .filter((f) => f.fieldName !== \"id\")\n : [];\n\n return [id, ...inherited, ...primitives, ...enums, ...pgEnums, ...m2os, ...polys];\n });\n}\n\n/** Makes the page/connection types for `Query.authors`. */\nfunction createPaginationTypes(config: Config, file: string, e: EntityDbMetadata): GqlField[] {\n const { name } = e.entity;\n const pluralName = pluralize(name);\n const objectType = \"output\" as const;\n if ((config.paginationStyle ?? \"cursor\") === \"limit\") {\n return [\n { file, objectType, objectName: `${pluralName}Page`, fieldName: \"entities\", fieldType: `[${name}!]!` },\n { file, objectType, objectName: `${pluralName}Page`, fieldName: \"pageInfo\", fieldType: \"PageInfo!\" },\n ];\n }\n return [\n { file, objectType, objectName: `${pluralName}Connection`, fieldName: \"edges\", fieldType: `[${pluralName}Edge!]!` },\n { file, objectType, objectName: `${pluralName}Connection`, fieldName: \"nodes\", fieldType: `[${name}!]!` },\n { file, objectType, objectName: `${pluralName}Connection`, fieldName: \"pageInfo\", fieldType: \"PageInfo!\" },\n { file, objectType, objectName: `${pluralName}Edge`, fieldName: \"node\", fieldType: `${name}!` },\n { file, objectType, objectName: `${pluralName}Edge`, fieldName: \"cursor\", fieldType: \"String!\" },\n ];\n}\n\n/** Make all the fields for `type SaveAuthorInput`, `type SaveBookBook`, etc. */\nfunction createSaveEntityInputFields(dbMeta: DbMetadata): GqlField[] {\n const { entities } = dbMeta;\n return entities.flatMap((e) => {\n const file = fileName(e);\n const objectType = \"input\" as const;\n const objectName = `Save${e.entity.name}Input`;\n const common = { file, objectType, objectName };\n\n const id: GqlField = { ...common, fieldName: \"id\", fieldType: \"ID\" };\n\n const primitives = e.primitives\n .filter((f) => f.derived === false)\n .flatMap(({ fieldName, fieldType: tsType, isArray }) => {\n const fieldType = primitiveFieldType(fieldName, tsType, isArray);\n if (!fieldType) return [];\n return [{ ...common, fieldName, fieldType }];\n });\n\n const enums = e.enums.map(({ fieldName, enumType, isArray }) => {\n return { ...common, fieldName, fieldType: isArray ? `[${enumType.symbol}!]` : enumType.symbol };\n });\n const pgEnums = e.pgEnums.map(({ fieldName, enumType }) => {\n return { ...common, fieldName, fieldType: enumType.symbol };\n });\n\n const m2os = e.manyToOnes.map(({ fieldName }) => {\n return { ...common, fieldName: `${fieldName}Id`, fieldType: \"ID\" };\n });\n\n const polys = e.polymorphics.map(({ fieldName }) => {\n return { ...common, fieldName: `${fieldName}Id`, fieldType: \"ID\" };\n });\n\n const inherited = e.baseClassName\n ? createSaveEntityInputFields(findBaseEntity(dbMeta, e.baseClassName))\n .map((f) => ({ ...f, ...common }))\n .filter((f) => f.fieldName !== \"id\")\n : [];\n\n return [id, ...inherited, ...primitives, ...enums, ...pgEnums, ...m2os, ...polys];\n });\n}\n\n/** Makes the fields for `type SaveAuthorResult`, `type SaveBookResult`, etc. */\nfunction createSaveEntityResultFields(entities: EntityDbMetadata[]): GqlField[] {\n return entities.flatMap((e) => {\n const file = fileName(e);\n const {\n entity: { name },\n } = e;\n const objectType = \"output\" as const;\n const objectName = `Save${name}Result`;\n const fieldName = camelCase(name);\n const entity: GqlField = { file, objectType, objectName, fieldName, fieldType: `${name}!` };\n return [entity];\n });\n}\n\nfunction maybeRequired(notNull: boolean): string {\n return notNull ? \"!\" : \"\";\n}\n\n/** Returns the GraphQL type for primitive fields, including primitive arrays. */\nfunction primitiveFieldType(\n fieldName: string,\n tsType: Parameters<typeof mapTypescriptTypeToGraphQLType>[1],\n isArray: boolean,\n notNull = false,\n): string | undefined {\n const gqlType = mapTypescriptTypeToGraphQLType(fieldName, tsType);\n if (!gqlType) return undefined;\n const fieldType = isArray ? `[${gqlType}!]` : gqlType;\n return `${fieldType}${maybeRequired(notNull)}`;\n}\n\n/** Wraps filter fields in lists so GraphQL callers can pass one value or OR several values. */\nfunction filterListType(fieldType: string): string {\n return `[${fieldType}!]`;\n}\n\n/** I.e. `Book` --> `books.graphql`. */\nfunction fileName(e: EntityDbMetadata): string {\n return `${camelCase(e.entity.name)}.graphql`;\n}\n\nfunction findBaseEntity(dbMeta: DbMetadata, baseClassName: string): DbMetadata {\n return {\n ...dbMeta,\n entities: dbMeta.entities.filter((e) => e.entity.name === baseClassName),\n };\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_utils = require("./utils.cjs");
|
|
3
|
+
let change_case = require("change-case");
|
|
4
|
+
require("joist-codegen");
|
|
5
|
+
let ts_poet = require("ts-poet");
|
|
6
|
+
//#region src/generateObjectResolvers.ts
|
|
7
|
+
const entityResolver = (0, ts_poet.imp)("entityResolver@src/resolvers/utils.ts");
|
|
8
|
+
const makeRunObjectFields = (0, ts_poet.imp)("makeRunObjectFields@src/resolvers/testUtils.ts");
|
|
9
|
+
const makeRunObjectField = (0, ts_poet.imp)("makeRunObjectField@src/resolvers/testUtils.ts");
|
|
10
|
+
/**
|
|
11
|
+
* Generates a base resolver using the entityResolver utility.
|
|
12
|
+
*
|
|
13
|
+
* This also preempts our other Joist-agnostic resolver scaffolding [1] because b/c `joist-codegen`
|
|
14
|
+
* will run first and put these Joist-aware resolvers in place first.
|
|
15
|
+
*
|
|
16
|
+
* Then when [1] runs, it will only output resolver scaffolding for non-entity resolvers.
|
|
17
|
+
*
|
|
18
|
+
* [1]: https://github.com/homebound-team/graphql-typescript-resolver-scaffolding
|
|
19
|
+
*/
|
|
20
|
+
function generateObjectResolvers(config, entities) {
|
|
21
|
+
const entitiesPath = require_utils.getEntitiesImportPath(config);
|
|
22
|
+
const resolvers = entities.map((e) => {
|
|
23
|
+
const camelName = (0, change_case.camelCase)(e.name);
|
|
24
|
+
const type = (0, ts_poet.imp)(`${e.name}@${entitiesPath}`);
|
|
25
|
+
const resolverType = (0, ts_poet.imp)(`t:${e.name}Resolvers@src/generated/graphql-types.ts`);
|
|
26
|
+
const contents = ts_poet.code`
|
|
27
|
+
export const ${camelName}Resolvers: ${resolverType} = {
|
|
28
|
+
...${entityResolver}(${type}),
|
|
29
|
+
};
|
|
30
|
+
`;
|
|
31
|
+
return {
|
|
32
|
+
name: `resolvers/${camelName}/${camelName}Resolvers.ts`,
|
|
33
|
+
overwrite: false,
|
|
34
|
+
contents
|
|
35
|
+
};
|
|
36
|
+
});
|
|
37
|
+
const testFiles = entities.map((e) => {
|
|
38
|
+
const { name } = e;
|
|
39
|
+
const camelName = (0, change_case.camelCase)(name);
|
|
40
|
+
const factory = (0, ts_poet.imp)(`new${name}@${entitiesPath}`);
|
|
41
|
+
const resolverConst = (0, ts_poet.imp)(`${camelName}Resolvers@src/resolvers/${camelName}/${camelName}Resolvers.ts`);
|
|
42
|
+
const tagName = config.entities[name].tag || "entity";
|
|
43
|
+
const keys = e.primitives.map((field) => `"${field.fieldName}"`).join(", ");
|
|
44
|
+
const contents = ts_poet.code`
|
|
45
|
+
describe("${camelName}Resolvers", () => {
|
|
46
|
+
it.withCtx("can return", async (ctx) => {
|
|
47
|
+
const { em } = ctx;
|
|
48
|
+
// Given a ${(0, change_case.sentenceCase)(name)}
|
|
49
|
+
const ${tagName} = ${factory}(em);
|
|
50
|
+
// Then we can query it
|
|
51
|
+
const result = await runFields(ctx, ${tagName}, [${keys}]);
|
|
52
|
+
expect(result).toMatchEntity({});
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
const runFields = ${makeRunObjectFields}(${resolverConst});
|
|
57
|
+
const runField = ${makeRunObjectField}(${resolverConst});
|
|
58
|
+
`;
|
|
59
|
+
return {
|
|
60
|
+
name: `resolvers/${camelName}/${camelName}Resolvers.test.ts`,
|
|
61
|
+
overwrite: false,
|
|
62
|
+
contents
|
|
63
|
+
};
|
|
64
|
+
});
|
|
65
|
+
return [...resolvers, ...testFiles];
|
|
66
|
+
}
|
|
67
|
+
//#endregion
|
|
68
|
+
exports.generateObjectResolvers = generateObjectResolvers;
|
|
69
|
+
|
|
70
|
+
//# sourceMappingURL=generateObjectResolvers.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generateObjectResolvers.cjs","names":["imp","getEntitiesImportPath","camelCase","sentenceCase"],"sources":["../src/generateObjectResolvers.ts"],"sourcesContent":["import { camelCase, sentenceCase } from \"change-case\";\nimport { type Config, type EntityDbMetadata } from \"joist-codegen\";\nimport { type CodegenFile, code, imp } from \"ts-poet\";\n\nimport { getEntitiesImportPath } from \"./utils.ts\";\n\nconst entityResolver = imp(\"entityResolver@src/resolvers/utils.ts\");\nconst makeRunObjectFields = imp(\"makeRunObjectFields@src/resolvers/testUtils.ts\");\nconst makeRunObjectField = imp(\"makeRunObjectField@src/resolvers/testUtils.ts\");\n\n/**\n * Generates a base resolver using the entityResolver utility.\n *\n * This also preempts our other Joist-agnostic resolver scaffolding [1] because b/c `joist-codegen`\n * will run first and put these Joist-aware resolvers in place first.\n *\n * Then when [1] runs, it will only output resolver scaffolding for non-entity resolvers.\n *\n * [1]: https://github.com/homebound-team/graphql-typescript-resolver-scaffolding\n */\nexport function generateObjectResolvers(config: Config, entities: EntityDbMetadata[]): CodegenFile[] {\n const entitiesPath = getEntitiesImportPath(config);\n const resolvers = entities.map((e) => {\n const camelName = camelCase(e.name);\n const type = imp(`${e.name}@${entitiesPath}`);\n const resolverType = imp(`t:${e.name}Resolvers@src/generated/graphql-types.ts`);\n const contents = code`\n export const ${camelName}Resolvers: ${resolverType} = {\n ...${entityResolver}(${type}),\n };\n `;\n return { name: `resolvers/${camelName}/${camelName}Resolvers.ts`, overwrite: false, contents };\n });\n\n const testFiles = entities.map((e) => {\n const { name } = e;\n const camelName = camelCase(name);\n const factory = imp(`new${name}@${entitiesPath}`);\n const resolverConst = imp(`${camelName}Resolvers@src/resolvers/${camelName}/${camelName}Resolvers.ts`);\n\n const tagName = config.entities[name].tag || \"entity\";\n const keys = e.primitives.map((field) => `\"${field.fieldName}\"`).join(\", \");\n\n const contents = code`\n describe(\"${camelName}Resolvers\", () => {\n it.withCtx(\"can return\", async (ctx) => {\n const { em } = ctx;\n // Given a ${sentenceCase(name)}\n const ${tagName} = ${factory}(em);\n // Then we can query it\n const result = await runFields(ctx, ${tagName}, [${keys}]);\n expect(result).toMatchEntity({});\n });\n });\n\n const runFields = ${makeRunObjectFields}(${resolverConst});\n const runField = ${makeRunObjectField}(${resolverConst});\n `;\n return { name: `resolvers/${camelName}/${camelName}Resolvers.test.ts`, overwrite: false, contents };\n });\n\n return [...resolvers, ...testFiles];\n}\n"],"mappings":";;;;;;AAMA,MAAM,kBAAA,GAAiBA,QAAAA,IAAAA,CAAI,uCAAuC;AAClE,MAAM,uBAAA,GAAsBA,QAAAA,IAAAA,CAAI,gDAAgD;AAChF,MAAM,sBAAA,GAAqBA,QAAAA,IAAAA,CAAI,+CAA+C;;;;;;;;;;;AAY9E,SAAgB,wBAAwB,QAAgB,UAA6C;CACnG,MAAM,eAAeC,cAAAA,sBAAsB,MAAM;CACjD,MAAM,YAAY,SAAS,KAAK,MAAM;EACpC,MAAM,aAAA,GAAYC,YAAAA,UAAAA,CAAU,EAAE,IAAI;EAClC,MAAM,QAAA,GAAOF,QAAAA,IAAAA,CAAI,GAAG,EAAE,KAAK,GAAG,cAAc;EAC5C,MAAM,gBAAA,GAAeA,QAAAA,IAAAA,CAAI,KAAK,EAAE,KAAK,yCAAyC;EAC9E,MAAM,WAAW,QAAA,IAAI;qBACJ,UAAU,aAAa,aAAa;aAC5C,eAAe,GAAG,KAAK;;;EAGhC,OAAO;GAAE,MAAM,aAAa,UAAU,GAAG,UAAU;GAAe,WAAW;GAAO;EAAS;CAC/F,CAAC;CAED,MAAM,YAAY,SAAS,KAAK,MAAM;EACpC,MAAM,EAAE,SAAS;EACjB,MAAM,aAAA,GAAYE,YAAAA,UAAAA,CAAU,IAAI;EAChC,MAAM,WAAA,GAAUF,QAAAA,IAAAA,CAAI,MAAM,KAAK,GAAG,cAAc;EAChD,MAAM,iBAAA,GAAgBA,QAAAA,IAAAA,CAAI,GAAG,UAAU,0BAA0B,UAAU,GAAG,UAAU,aAAa;EAErG,MAAM,UAAU,OAAO,SAAS,KAAK,CAAC,OAAO;EAC7C,MAAM,OAAO,EAAE,WAAW,KAAK,UAAU,IAAI,MAAM,UAAU,EAAE,CAAC,CAAC,KAAK,IAAI;EAE1E,MAAM,WAAW,QAAA,IAAI;kBACP,UAAU;;;wBAGLG,GAAAA,YAAAA,aAAAA,CAAa,IAAI,EAAE;kBACxB,QAAQ,KAAK,QAAQ;;gDAES,QAAQ,KAAK,KAAK;;;;;0BAKxC,oBAAoB,GAAG,cAAc;yBACtC,mBAAmB,GAAG,cAAc;;EAEzD,OAAO;GAAE,MAAM,aAAa,UAAU,GAAG,UAAU;GAAoB,WAAW;GAAO;EAAS;CACpG,CAAC;CAED,OAAO,CAAC,GAAG,WAAW,GAAG,SAAS;AACpC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Config, EntityDbMetadata } from "joist-codegen";
|
|
2
2
|
import { CodegenFile } from "ts-poet";
|
|
3
|
+
//#region src/generateObjectResolvers.d.ts
|
|
3
4
|
/**
|
|
4
5
|
* Generates a base resolver using the entityResolver utility.
|
|
5
6
|
*
|
|
@@ -10,4 +11,7 @@ import { CodegenFile } from "ts-poet";
|
|
|
10
11
|
*
|
|
11
12
|
* [1]: https://github.com/homebound-team/graphql-typescript-resolver-scaffolding
|
|
12
13
|
*/
|
|
13
|
-
|
|
14
|
+
declare function generateObjectResolvers(config: Config, entities: EntityDbMetadata[]): CodegenFile[];
|
|
15
|
+
//#endregion
|
|
16
|
+
export { generateObjectResolvers };
|
|
17
|
+
//# sourceMappingURL=generateObjectResolvers.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generateObjectResolvers.d.cts","names":[],"sources":["../src/generateObjectResolvers.ts"],"mappings":";;;;;;;;;;;;;iBAoBgB,wBAAwB,QAAQ,QAAQ,UAAU,qBAAqB"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Config, EntityDbMetadata } from "joist-codegen";
|
|
2
|
+
import { CodegenFile } from "ts-poet";
|
|
3
|
+
//#region src/generateObjectResolvers.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* Generates a base resolver using the entityResolver utility.
|
|
6
|
+
*
|
|
7
|
+
* This also preempts our other Joist-agnostic resolver scaffolding [1] because b/c `joist-codegen`
|
|
8
|
+
* will run first and put these Joist-aware resolvers in place first.
|
|
9
|
+
*
|
|
10
|
+
* Then when [1] runs, it will only output resolver scaffolding for non-entity resolvers.
|
|
11
|
+
*
|
|
12
|
+
* [1]: https://github.com/homebound-team/graphql-typescript-resolver-scaffolding
|
|
13
|
+
*/
|
|
14
|
+
declare function generateObjectResolvers(config: Config, entities: EntityDbMetadata[]): CodegenFile[];
|
|
15
|
+
//#endregion
|
|
16
|
+
export { generateObjectResolvers };
|
|
17
|
+
//# sourceMappingURL=generateObjectResolvers.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generateObjectResolvers.d.mts","names":[],"sources":["../src/generateObjectResolvers.ts"],"mappings":";;;;;;;;;;;;;iBAoBgB,wBAAwB,QAAQ,QAAQ,UAAU,qBAAqB"}
|
|
@@ -1,47 +1,50 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
const makeRunObjectField = (0, ts_poet_1.imp)("makeRunObjectField@src/resolvers/testUtils.ts");
|
|
1
|
+
import { getEntitiesImportPath } from "./utils.js";
|
|
2
|
+
import { camelCase, sentenceCase } from "change-case";
|
|
3
|
+
import "joist-codegen";
|
|
4
|
+
import { code, imp } from "ts-poet";
|
|
5
|
+
//#region src/generateObjectResolvers.ts
|
|
6
|
+
const entityResolver = imp("entityResolver@src/resolvers/utils.ts");
|
|
7
|
+
const makeRunObjectFields = imp("makeRunObjectFields@src/resolvers/testUtils.ts");
|
|
8
|
+
const makeRunObjectField = imp("makeRunObjectField@src/resolvers/testUtils.ts");
|
|
10
9
|
/**
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
10
|
+
* Generates a base resolver using the entityResolver utility.
|
|
11
|
+
*
|
|
12
|
+
* This also preempts our other Joist-agnostic resolver scaffolding [1] because b/c `joist-codegen`
|
|
13
|
+
* will run first and put these Joist-aware resolvers in place first.
|
|
14
|
+
*
|
|
15
|
+
* Then when [1] runs, it will only output resolver scaffolding for non-entity resolvers.
|
|
16
|
+
*
|
|
17
|
+
* [1]: https://github.com/homebound-team/graphql-typescript-resolver-scaffolding
|
|
18
|
+
*/
|
|
20
19
|
function generateObjectResolvers(config, entities) {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
20
|
+
const entitiesPath = getEntitiesImportPath(config);
|
|
21
|
+
const resolvers = entities.map((e) => {
|
|
22
|
+
const camelName = camelCase(e.name);
|
|
23
|
+
const type = imp(`${e.name}@${entitiesPath}`);
|
|
24
|
+
const resolverType = imp(`t:${e.name}Resolvers@src/generated/graphql-types.ts`);
|
|
25
|
+
const contents = code`
|
|
27
26
|
export const ${camelName}Resolvers: ${resolverType} = {
|
|
28
27
|
...${entityResolver}(${type}),
|
|
29
28
|
};
|
|
30
29
|
`;
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
30
|
+
return {
|
|
31
|
+
name: `resolvers/${camelName}/${camelName}Resolvers.ts`,
|
|
32
|
+
overwrite: false,
|
|
33
|
+
contents
|
|
34
|
+
};
|
|
35
|
+
});
|
|
36
|
+
const testFiles = entities.map((e) => {
|
|
37
|
+
const { name } = e;
|
|
38
|
+
const camelName = camelCase(name);
|
|
39
|
+
const factory = imp(`new${name}@${entitiesPath}`);
|
|
40
|
+
const resolverConst = imp(`${camelName}Resolvers@src/resolvers/${camelName}/${camelName}Resolvers.ts`);
|
|
41
|
+
const tagName = config.entities[name].tag || "entity";
|
|
42
|
+
const keys = e.primitives.map((field) => `"${field.fieldName}"`).join(", ");
|
|
43
|
+
const contents = code`
|
|
41
44
|
describe("${camelName}Resolvers", () => {
|
|
42
45
|
it.withCtx("can return", async (ctx) => {
|
|
43
46
|
const { em } = ctx;
|
|
44
|
-
// Given a ${
|
|
47
|
+
// Given a ${sentenceCase(name)}
|
|
45
48
|
const ${tagName} = ${factory}(em);
|
|
46
49
|
// Then we can query it
|
|
47
50
|
const result = await runFields(ctx, ${tagName}, [${keys}]);
|
|
@@ -52,8 +55,15 @@ function generateObjectResolvers(config, entities) {
|
|
|
52
55
|
const runFields = ${makeRunObjectFields}(${resolverConst});
|
|
53
56
|
const runField = ${makeRunObjectField}(${resolverConst});
|
|
54
57
|
`;
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
+
return {
|
|
59
|
+
name: `resolvers/${camelName}/${camelName}Resolvers.test.ts`,
|
|
60
|
+
overwrite: false,
|
|
61
|
+
contents
|
|
62
|
+
};
|
|
63
|
+
});
|
|
64
|
+
return [...resolvers, ...testFiles];
|
|
58
65
|
}
|
|
66
|
+
//#endregion
|
|
67
|
+
export { generateObjectResolvers };
|
|
68
|
+
|
|
59
69
|
//# sourceMappingURL=generateObjectResolvers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateObjectResolvers.js","
|
|
1
|
+
{"version":3,"file":"generateObjectResolvers.js","names":[],"sources":["../src/generateObjectResolvers.ts"],"sourcesContent":["import { camelCase, sentenceCase } from \"change-case\";\nimport { type Config, type EntityDbMetadata } from \"joist-codegen\";\nimport { type CodegenFile, code, imp } from \"ts-poet\";\n\nimport { getEntitiesImportPath } from \"./utils.ts\";\n\nconst entityResolver = imp(\"entityResolver@src/resolvers/utils.ts\");\nconst makeRunObjectFields = imp(\"makeRunObjectFields@src/resolvers/testUtils.ts\");\nconst makeRunObjectField = imp(\"makeRunObjectField@src/resolvers/testUtils.ts\");\n\n/**\n * Generates a base resolver using the entityResolver utility.\n *\n * This also preempts our other Joist-agnostic resolver scaffolding [1] because b/c `joist-codegen`\n * will run first and put these Joist-aware resolvers in place first.\n *\n * Then when [1] runs, it will only output resolver scaffolding for non-entity resolvers.\n *\n * [1]: https://github.com/homebound-team/graphql-typescript-resolver-scaffolding\n */\nexport function generateObjectResolvers(config: Config, entities: EntityDbMetadata[]): CodegenFile[] {\n const entitiesPath = getEntitiesImportPath(config);\n const resolvers = entities.map((e) => {\n const camelName = camelCase(e.name);\n const type = imp(`${e.name}@${entitiesPath}`);\n const resolverType = imp(`t:${e.name}Resolvers@src/generated/graphql-types.ts`);\n const contents = code`\n export const ${camelName}Resolvers: ${resolverType} = {\n ...${entityResolver}(${type}),\n };\n `;\n return { name: `resolvers/${camelName}/${camelName}Resolvers.ts`, overwrite: false, contents };\n });\n\n const testFiles = entities.map((e) => {\n const { name } = e;\n const camelName = camelCase(name);\n const factory = imp(`new${name}@${entitiesPath}`);\n const resolverConst = imp(`${camelName}Resolvers@src/resolvers/${camelName}/${camelName}Resolvers.ts`);\n\n const tagName = config.entities[name].tag || \"entity\";\n const keys = e.primitives.map((field) => `\"${field.fieldName}\"`).join(\", \");\n\n const contents = code`\n describe(\"${camelName}Resolvers\", () => {\n it.withCtx(\"can return\", async (ctx) => {\n const { em } = ctx;\n // Given a ${sentenceCase(name)}\n const ${tagName} = ${factory}(em);\n // Then we can query it\n const result = await runFields(ctx, ${tagName}, [${keys}]);\n expect(result).toMatchEntity({});\n });\n });\n\n const runFields = ${makeRunObjectFields}(${resolverConst});\n const runField = ${makeRunObjectField}(${resolverConst});\n `;\n return { name: `resolvers/${camelName}/${camelName}Resolvers.test.ts`, overwrite: false, contents };\n });\n\n return [...resolvers, ...testFiles];\n}\n"],"mappings":";;;;;AAMA,MAAM,iBAAiB,IAAI,uCAAuC;AAClE,MAAM,sBAAsB,IAAI,gDAAgD;AAChF,MAAM,qBAAqB,IAAI,+CAA+C;;;;;;;;;;;AAY9E,SAAgB,wBAAwB,QAAgB,UAA6C;CACnG,MAAM,eAAe,sBAAsB,MAAM;CACjD,MAAM,YAAY,SAAS,KAAK,MAAM;EACpC,MAAM,YAAY,UAAU,EAAE,IAAI;EAClC,MAAM,OAAO,IAAI,GAAG,EAAE,KAAK,GAAG,cAAc;EAC5C,MAAM,eAAe,IAAI,KAAK,EAAE,KAAK,yCAAyC;EAC9E,MAAM,WAAW,IAAI;qBACJ,UAAU,aAAa,aAAa;aAC5C,eAAe,GAAG,KAAK;;;EAGhC,OAAO;GAAE,MAAM,aAAa,UAAU,GAAG,UAAU;GAAe,WAAW;GAAO;EAAS;CAC/F,CAAC;CAED,MAAM,YAAY,SAAS,KAAK,MAAM;EACpC,MAAM,EAAE,SAAS;EACjB,MAAM,YAAY,UAAU,IAAI;EAChC,MAAM,UAAU,IAAI,MAAM,KAAK,GAAG,cAAc;EAChD,MAAM,gBAAgB,IAAI,GAAG,UAAU,0BAA0B,UAAU,GAAG,UAAU,aAAa;EAErG,MAAM,UAAU,OAAO,SAAS,KAAK,CAAC,OAAO;EAC7C,MAAM,OAAO,EAAE,WAAW,KAAK,UAAU,IAAI,MAAM,UAAU,EAAE,CAAC,CAAC,KAAK,IAAI;EAE1E,MAAM,WAAW,IAAI;kBACP,UAAU;;;uBAGL,aAAa,IAAI,EAAE;kBACxB,QAAQ,KAAK,QAAQ;;gDAES,QAAQ,KAAK,KAAK;;;;;0BAKxC,oBAAoB,GAAG,cAAc;yBACtC,mBAAmB,GAAG,cAAc;;EAEzD,OAAO;GAAE,MAAM,aAAa,UAAU,GAAG,UAAU;GAAoB,WAAW;GAAO;EAAS;CACpG,CAAC;CAED,OAAO,CAAC,GAAG,WAAW,GAAG,SAAS;AACpC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_runtime = require("./_virtual/_rolldown/runtime.cjs");
|
|
3
|
+
const require_utils = require("./utils.cjs");
|
|
4
|
+
let change_case = require("change-case");
|
|
5
|
+
require("joist-codegen");
|
|
6
|
+
let pluralize = require("pluralize");
|
|
7
|
+
pluralize = require_runtime.__toESM(pluralize, 1);
|
|
8
|
+
let ts_poet = require("ts-poet");
|
|
9
|
+
//#region src/generateQueryPageResolvers.ts
|
|
10
|
+
const queryResolvers = (0, ts_poet.imp)("t:QueryResolvers@src/generated/graphql-types.ts");
|
|
11
|
+
const makeRunQuery = (0, ts_poet.imp)("makeRunQuery@src/resolvers/testUtils.ts");
|
|
12
|
+
/** Generates paginated top-level query resolvers. */
|
|
13
|
+
function generateQueryPageResolvers(config, db) {
|
|
14
|
+
const entitiesPath = require_utils.getEntitiesImportPath(config);
|
|
15
|
+
return db.entities.flatMap((e) => {
|
|
16
|
+
const { name } = e;
|
|
17
|
+
const camelName = (0, change_case.camelCase)(name);
|
|
18
|
+
const pluralName = (0, pluralize.default)(camelName);
|
|
19
|
+
const type = (0, ts_poet.imp)(`${name}@${entitiesPath}`);
|
|
20
|
+
const paginate = (0, ts_poet.imp)("paginate@src/resolvers/utils.ts");
|
|
21
|
+
const resolverConst = (0, ts_poet.imp)(`${pluralName}@src/resolvers/${camelName}/${pluralName}Query.ts`);
|
|
22
|
+
return [{
|
|
23
|
+
name: `resolvers/${camelName}/${pluralName}Query.ts`,
|
|
24
|
+
overwrite: false,
|
|
25
|
+
contents: ts_poet.code`
|
|
26
|
+
export const ${pluralName}: Pick<${queryResolvers}, "${pluralName}"> = {
|
|
27
|
+
async ${pluralName}(_, args, ctx) {
|
|
28
|
+
return ${paginate}(ctx, ${type}, args);
|
|
29
|
+
},
|
|
30
|
+
};
|
|
31
|
+
`
|
|
32
|
+
}, {
|
|
33
|
+
name: `resolvers/${camelName}/${pluralName}Query.test.ts`,
|
|
34
|
+
overwrite: false,
|
|
35
|
+
contents: ts_poet.code`
|
|
36
|
+
describe("${pluralName}", () => {
|
|
37
|
+
it.withCtx("returns ${pluralName}", async (ctx) => {
|
|
38
|
+
const result = await run(ctx);
|
|
39
|
+
expect(result).toBeDefined();
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
const run = ${makeRunQuery}(${resolverConst});
|
|
44
|
+
`
|
|
45
|
+
}];
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
//#endregion
|
|
49
|
+
exports.generateQueryPageResolvers = generateQueryPageResolvers;
|
|
50
|
+
|
|
51
|
+
//# sourceMappingURL=generateQueryPageResolvers.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generateQueryPageResolvers.cjs","names":["imp","getEntitiesImportPath","camelCase"],"sources":["../src/generateQueryPageResolvers.ts"],"sourcesContent":["import { camelCase } from \"change-case\";\nimport { type Config, type DbMetadata } from \"joist-codegen\";\nimport pluralize from \"pluralize\";\nimport { type CodegenFile, code, imp } from \"ts-poet\";\n\nimport { getEntitiesImportPath } from \"./utils.ts\";\n\nconst queryResolvers = imp(\"t:QueryResolvers@src/generated/graphql-types.ts\");\nconst makeRunQuery = imp(\"makeRunQuery@src/resolvers/testUtils.ts\");\n\n/** Generates paginated top-level query resolvers. */\nexport function generateQueryPageResolvers(config: Config, db: DbMetadata): CodegenFile[] {\n const entitiesPath = getEntitiesImportPath(config);\n return db.entities.flatMap((e) => {\n const { name } = e;\n const camelName = camelCase(name);\n const pluralName = pluralize(camelName);\n const type = imp(`${name}@${entitiesPath}`);\n const paginate = imp(\"paginate@src/resolvers/utils.ts\");\n const resolverConst = imp(`${pluralName}@src/resolvers/${camelName}/${pluralName}Query.ts`);\n return [\n {\n name: `resolvers/${camelName}/${pluralName}Query.ts`,\n overwrite: false,\n contents: code`\n export const ${pluralName}: Pick<${queryResolvers}, \"${pluralName}\"> = {\n async ${pluralName}(_, args, ctx) {\n return ${paginate}(ctx, ${type}, args);\n },\n };\n `,\n },\n {\n name: `resolvers/${camelName}/${pluralName}Query.test.ts`,\n overwrite: false,\n contents: code`\n describe(\"${pluralName}\", () => {\n it.withCtx(\"returns ${pluralName}\", async (ctx) => {\n const result = await run(ctx);\n expect(result).toBeDefined();\n });\n });\n\n const run = ${makeRunQuery}(${resolverConst});\n `,\n },\n ];\n });\n}\n"],"mappings":";;;;;;;;;AAOA,MAAM,kBAAA,GAAiBA,QAAAA,IAAAA,CAAI,iDAAiD;AAC5E,MAAM,gBAAA,GAAeA,QAAAA,IAAAA,CAAI,yCAAyC;;AAGlE,SAAgB,2BAA2B,QAAgB,IAA+B;CACxF,MAAM,eAAeC,cAAAA,sBAAsB,MAAM;CACjD,OAAO,GAAG,SAAS,SAAS,MAAM;EAChC,MAAM,EAAE,SAAS;EACjB,MAAM,aAAA,GAAYC,YAAAA,UAAAA,CAAU,IAAI;EAChC,MAAM,cAAA,GAAa,UAAA,QAAA,CAAU,SAAS;EACtC,MAAM,QAAA,GAAOF,QAAAA,IAAAA,CAAI,GAAG,KAAK,GAAG,cAAc;EAC1C,MAAM,YAAA,GAAWA,QAAAA,IAAAA,CAAI,iCAAiC;EACtD,MAAM,iBAAA,GAAgBA,QAAAA,IAAAA,CAAI,GAAG,WAAW,iBAAiB,UAAU,GAAG,WAAW,SAAS;EAC1F,OAAO,CACL;GACE,MAAM,aAAa,UAAU,GAAG,WAAW;GAC3C,WAAW;GACX,UAAU,QAAA,IAAI;yBACG,WAAW,SAAS,eAAe,KAAK,WAAW;oBACxD,WAAW;uBACR,SAAS,QAAQ,KAAK;;;;EAIvC,GACA;GACE,MAAM,aAAa,UAAU,GAAG,WAAW;GAC3C,WAAW;GACX,UAAU,QAAA,IAAI;sBACA,WAAW;kCACC,WAAW;;;;;;wBAMrB,aAAa,GAAG,cAAc;;EAEhD,CACF;CACF,CAAC;AACH"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Config, DbMetadata } from "joist-codegen";
|
|
2
|
+
import { CodegenFile } from "ts-poet";
|
|
3
|
+
//#region src/generateQueryPageResolvers.d.ts
|
|
4
|
+
/** Generates paginated top-level query resolvers. */
|
|
5
|
+
declare function generateQueryPageResolvers(config: Config, db: DbMetadata): CodegenFile[];
|
|
6
|
+
//#endregion
|
|
7
|
+
export { generateQueryPageResolvers };
|
|
8
|
+
//# sourceMappingURL=generateQueryPageResolvers.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generateQueryPageResolvers.d.cts","names":[],"sources":["../src/generateQueryPageResolvers.ts"],"mappings":";;;;iBAWgB,2BAA2B,QAAQ,QAAQ,IAAI,aAAa"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Config, DbMetadata } from "joist-codegen";
|
|
2
|
+
import { CodegenFile } from "ts-poet";
|
|
3
|
+
//#region src/generateQueryPageResolvers.d.ts
|
|
4
|
+
/** Generates paginated top-level query resolvers. */
|
|
5
|
+
declare function generateQueryPageResolvers(config: Config, db: DbMetadata): CodegenFile[];
|
|
6
|
+
//#endregion
|
|
7
|
+
export { generateQueryPageResolvers };
|
|
8
|
+
//# sourceMappingURL=generateQueryPageResolvers.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generateQueryPageResolvers.d.mts","names":[],"sources":["../src/generateQueryPageResolvers.ts"],"mappings":";;;;iBAWgB,2BAA2B,QAAQ,QAAQ,IAAI,aAAa"}
|
|
@@ -1,41 +1,35 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
const ts_poet_1 = require("ts-poet");
|
|
10
|
-
const utils_1 = require("./utils");
|
|
11
|
-
const queryResolvers = (0, ts_poet_1.imp)("t:QueryResolvers@src/generated/graphql-types.ts");
|
|
12
|
-
const makeRunQuery = (0, ts_poet_1.imp)("makeRunQuery@src/resolvers/testUtils.ts");
|
|
1
|
+
import { getEntitiesImportPath } from "./utils.js";
|
|
2
|
+
import { camelCase } from "change-case";
|
|
3
|
+
import "joist-codegen";
|
|
4
|
+
import pluralize from "pluralize";
|
|
5
|
+
import { code, imp } from "ts-poet";
|
|
6
|
+
//#region src/generateQueryPageResolvers.ts
|
|
7
|
+
const queryResolvers = imp("t:QueryResolvers@src/generated/graphql-types.ts");
|
|
8
|
+
const makeRunQuery = imp("makeRunQuery@src/resolvers/testUtils.ts");
|
|
13
9
|
/** Generates paginated top-level query resolvers. */
|
|
14
10
|
function generateQueryPageResolvers(config, db) {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
contents: (0, ts_poet_1.code) `
|
|
11
|
+
const entitiesPath = getEntitiesImportPath(config);
|
|
12
|
+
return db.entities.flatMap((e) => {
|
|
13
|
+
const { name } = e;
|
|
14
|
+
const camelName = camelCase(name);
|
|
15
|
+
const pluralName = pluralize(camelName);
|
|
16
|
+
const type = imp(`${name}@${entitiesPath}`);
|
|
17
|
+
const paginate = imp("paginate@src/resolvers/utils.ts");
|
|
18
|
+
const resolverConst = imp(`${pluralName}@src/resolvers/${camelName}/${pluralName}Query.ts`);
|
|
19
|
+
return [{
|
|
20
|
+
name: `resolvers/${camelName}/${pluralName}Query.ts`,
|
|
21
|
+
overwrite: false,
|
|
22
|
+
contents: code`
|
|
28
23
|
export const ${pluralName}: Pick<${queryResolvers}, "${pluralName}"> = {
|
|
29
24
|
async ${pluralName}(_, args, ctx) {
|
|
30
25
|
return ${paginate}(ctx, ${type}, args);
|
|
31
26
|
},
|
|
32
27
|
};
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
contents: (0, ts_poet_1.code) `
|
|
28
|
+
`
|
|
29
|
+
}, {
|
|
30
|
+
name: `resolvers/${camelName}/${pluralName}Query.test.ts`,
|
|
31
|
+
overwrite: false,
|
|
32
|
+
contents: code`
|
|
39
33
|
describe("${pluralName}", () => {
|
|
40
34
|
it.withCtx("returns ${pluralName}", async (ctx) => {
|
|
41
35
|
const result = await run(ctx);
|
|
@@ -44,9 +38,11 @@ function generateQueryPageResolvers(config, db) {
|
|
|
44
38
|
});
|
|
45
39
|
|
|
46
40
|
const run = ${makeRunQuery}(${resolverConst});
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
});
|
|
41
|
+
`
|
|
42
|
+
}];
|
|
43
|
+
});
|
|
51
44
|
}
|
|
45
|
+
//#endregion
|
|
46
|
+
export { generateQueryPageResolvers };
|
|
47
|
+
|
|
52
48
|
//# sourceMappingURL=generateQueryPageResolvers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateQueryPageResolvers.js","
|
|
1
|
+
{"version":3,"file":"generateQueryPageResolvers.js","names":[],"sources":["../src/generateQueryPageResolvers.ts"],"sourcesContent":["import { camelCase } from \"change-case\";\nimport { type Config, type DbMetadata } from \"joist-codegen\";\nimport pluralize from \"pluralize\";\nimport { type CodegenFile, code, imp } from \"ts-poet\";\n\nimport { getEntitiesImportPath } from \"./utils.ts\";\n\nconst queryResolvers = imp(\"t:QueryResolvers@src/generated/graphql-types.ts\");\nconst makeRunQuery = imp(\"makeRunQuery@src/resolvers/testUtils.ts\");\n\n/** Generates paginated top-level query resolvers. */\nexport function generateQueryPageResolvers(config: Config, db: DbMetadata): CodegenFile[] {\n const entitiesPath = getEntitiesImportPath(config);\n return db.entities.flatMap((e) => {\n const { name } = e;\n const camelName = camelCase(name);\n const pluralName = pluralize(camelName);\n const type = imp(`${name}@${entitiesPath}`);\n const paginate = imp(\"paginate@src/resolvers/utils.ts\");\n const resolverConst = imp(`${pluralName}@src/resolvers/${camelName}/${pluralName}Query.ts`);\n return [\n {\n name: `resolvers/${camelName}/${pluralName}Query.ts`,\n overwrite: false,\n contents: code`\n export const ${pluralName}: Pick<${queryResolvers}, \"${pluralName}\"> = {\n async ${pluralName}(_, args, ctx) {\n return ${paginate}(ctx, ${type}, args);\n },\n };\n `,\n },\n {\n name: `resolvers/${camelName}/${pluralName}Query.test.ts`,\n overwrite: false,\n contents: code`\n describe(\"${pluralName}\", () => {\n it.withCtx(\"returns ${pluralName}\", async (ctx) => {\n const result = await run(ctx);\n expect(result).toBeDefined();\n });\n });\n\n const run = ${makeRunQuery}(${resolverConst});\n `,\n },\n ];\n });\n}\n"],"mappings":";;;;;;AAOA,MAAM,iBAAiB,IAAI,iDAAiD;AAC5E,MAAM,eAAe,IAAI,yCAAyC;;AAGlE,SAAgB,2BAA2B,QAAgB,IAA+B;CACxF,MAAM,eAAe,sBAAsB,MAAM;CACjD,OAAO,GAAG,SAAS,SAAS,MAAM;EAChC,MAAM,EAAE,SAAS;EACjB,MAAM,YAAY,UAAU,IAAI;EAChC,MAAM,aAAa,UAAU,SAAS;EACtC,MAAM,OAAO,IAAI,GAAG,KAAK,GAAG,cAAc;EAC1C,MAAM,WAAW,IAAI,iCAAiC;EACtD,MAAM,gBAAgB,IAAI,GAAG,WAAW,iBAAiB,UAAU,GAAG,WAAW,SAAS;EAC1F,OAAO,CACL;GACE,MAAM,aAAa,UAAU,GAAG,WAAW;GAC3C,WAAW;GACX,UAAU,IAAI;yBACG,WAAW,SAAS,eAAe,KAAK,WAAW;oBACxD,WAAW;uBACR,SAAS,QAAQ,KAAK;;;;EAIvC,GACA;GACE,MAAM,aAAa,UAAU,GAAG,WAAW;GAC3C,WAAW;GACX,UAAU,IAAI;sBACA,WAAW;kCACC,WAAW;;;;;;wBAMrB,aAAa,GAAG,cAAc;;EAEhD,CACF;CACF,CAAC;AACH"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_utils = require("./utils.cjs");
|
|
3
|
+
let change_case = require("change-case");
|
|
4
|
+
require("joist-codegen");
|
|
5
|
+
let ts_poet = require("ts-poet");
|
|
6
|
+
//#region src/generateQueryResolvers.ts
|
|
7
|
+
const queryResolvers = (0, ts_poet.imp)("t:QueryResolvers@src/generated/graphql-types.ts");
|
|
8
|
+
const makeRunQuery = (0, ts_poet.imp)("makeRunQuery@src/resolvers/testUtils.ts");
|
|
9
|
+
/**
|
|
10
|
+
* Generates top-level query resolvers.
|
|
11
|
+
*/
|
|
12
|
+
function generateQueryResolvers(config, db) {
|
|
13
|
+
const entitiesPath = require_utils.getEntitiesImportPath(config);
|
|
14
|
+
const resolvers = db.entities.map((e) => {
|
|
15
|
+
const { name } = e;
|
|
16
|
+
const camelName = (0, change_case.camelCase)(name);
|
|
17
|
+
const type = (0, ts_poet.imp)(`${name}@${entitiesPath}`);
|
|
18
|
+
return {
|
|
19
|
+
name: `resolvers/${camelName}/${camelName}Query.ts`,
|
|
20
|
+
overwrite: false,
|
|
21
|
+
contents: ts_poet.code`
|
|
22
|
+
export const ${camelName}: Pick<${queryResolvers}, "${camelName}"> = {
|
|
23
|
+
async ${camelName}(_, args, ctx) {
|
|
24
|
+
return ctx.em.load(${type}, args.id);
|
|
25
|
+
},
|
|
26
|
+
};
|
|
27
|
+
`
|
|
28
|
+
};
|
|
29
|
+
});
|
|
30
|
+
const testFiles = db.entities.map((e) => {
|
|
31
|
+
const { name, tagName } = e;
|
|
32
|
+
const camelName = (0, change_case.camelCase)(name);
|
|
33
|
+
const resolverConst = (0, ts_poet.imp)(`${camelName}@src/resolvers/${camelName}/${camelName}Query.ts`);
|
|
34
|
+
return {
|
|
35
|
+
name: `resolvers/${camelName}/${camelName}Query.test.ts`,
|
|
36
|
+
overwrite: false,
|
|
37
|
+
contents: ts_poet.code`
|
|
38
|
+
describe("${camelName}", () => {
|
|
39
|
+
it.withCtx("returns a ${(0, change_case.sentenceCase)(name)}", async (ctx) => {
|
|
40
|
+
const ${tagName} = ${(0, ts_poet.imp)(`new${name}@${entitiesPath}`)}(ctx.em);
|
|
41
|
+
const result = await run(ctx, () => ({ id: ${tagName}.id }));
|
|
42
|
+
expect(result).toMatchEntity(${tagName});
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
const run = ${makeRunQuery}(${resolverConst});
|
|
47
|
+
`
|
|
48
|
+
};
|
|
49
|
+
});
|
|
50
|
+
return [...resolvers, ...testFiles];
|
|
51
|
+
}
|
|
52
|
+
//#endregion
|
|
53
|
+
exports.generateQueryResolvers = generateQueryResolvers;
|
|
54
|
+
|
|
55
|
+
//# sourceMappingURL=generateQueryResolvers.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generateQueryResolvers.cjs","names":["imp","getEntitiesImportPath","camelCase","sentenceCase"],"sources":["../src/generateQueryResolvers.ts"],"sourcesContent":["import { camelCase, sentenceCase } from \"change-case\";\nimport { type Config, type DbMetadata } from \"joist-codegen\";\nimport { type CodegenFile, code, imp } from \"ts-poet\";\n\nimport { getEntitiesImportPath } from \"./utils.ts\";\n\nconst queryResolvers = imp(\"t:QueryResolvers@src/generated/graphql-types.ts\");\nconst makeRunQuery = imp(\"makeRunQuery@src/resolvers/testUtils.ts\");\n\n/**\n * Generates top-level query resolvers.\n */\nexport function generateQueryResolvers(config: Config, db: DbMetadata): CodegenFile[] {\n const entitiesPath = getEntitiesImportPath(config);\n const resolvers = db.entities.map((e) => {\n const { name } = e;\n const camelName = camelCase(name);\n const type = imp(`${name}@${entitiesPath}`);\n return {\n name: `resolvers/${camelName}/${camelName}Query.ts`,\n overwrite: false,\n contents: code`\n export const ${camelName}: Pick<${queryResolvers}, \"${camelName}\"> = {\n async ${camelName}(_, args, ctx) {\n return ctx.em.load(${type}, args.id);\n },\n };\n `,\n };\n });\n\n const testFiles = db.entities.map((e) => {\n const { name, tagName } = e;\n const camelName = camelCase(name);\n const resolverConst = imp(`${camelName}@src/resolvers/${camelName}/${camelName}Query.ts`);\n return {\n name: `resolvers/${camelName}/${camelName}Query.test.ts`,\n overwrite: false,\n contents: code`\n describe(\"${camelName}\", () => {\n it.withCtx(\"returns a ${sentenceCase(name)}\", async (ctx) => {\n const ${tagName} = ${imp(`new${name}@${entitiesPath}`)}(ctx.em);\n const result = await run(ctx, () => ({ id: ${tagName}.id }));\n expect(result).toMatchEntity(${tagName});\n });\n });\n\n const run = ${makeRunQuery}(${resolverConst});\n `,\n };\n });\n\n return [...resolvers, ...testFiles];\n}\n"],"mappings":";;;;;;AAMA,MAAM,kBAAA,GAAiBA,QAAAA,IAAAA,CAAI,iDAAiD;AAC5E,MAAM,gBAAA,GAAeA,QAAAA,IAAAA,CAAI,yCAAyC;;;;AAKlE,SAAgB,uBAAuB,QAAgB,IAA+B;CACpF,MAAM,eAAeC,cAAAA,sBAAsB,MAAM;CACjD,MAAM,YAAY,GAAG,SAAS,KAAK,MAAM;EACvC,MAAM,EAAE,SAAS;EACjB,MAAM,aAAA,GAAYC,YAAAA,UAAAA,CAAU,IAAI;EAChC,MAAM,QAAA,GAAOF,QAAAA,IAAAA,CAAI,GAAG,KAAK,GAAG,cAAc;EAC1C,OAAO;GACL,MAAM,aAAa,UAAU,GAAG,UAAU;GAC1C,WAAW;GACX,UAAU,QAAA,IAAI;yBACK,UAAU,SAAS,eAAe,KAAK,UAAU;oBACtD,UAAU;mCACK,KAAK;;;;EAIpC;CACF,CAAC;CAED,MAAM,YAAY,GAAG,SAAS,KAAK,MAAM;EACvC,MAAM,EAAE,MAAM,YAAY;EAC1B,MAAM,aAAA,GAAYE,YAAAA,UAAAA,CAAU,IAAI;EAChC,MAAM,iBAAA,GAAgBF,QAAAA,IAAAA,CAAI,GAAG,UAAU,iBAAiB,UAAU,GAAG,UAAU,SAAS;EACxF,OAAO;GACL,MAAM,aAAa,UAAU,GAAG,UAAU;GAC1C,WAAW;GACX,UAAU,QAAA,IAAI;oBACA,UAAU;mCACIG,GAAAA,YAAAA,aAAAA,CAAa,IAAI,EAAE;oBACjC,QAAQ,MAAA,GAAKH,QAAAA,IAAAA,CAAI,MAAM,KAAK,GAAG,cAAc,EAAE;yDACV,QAAQ;2CACtB,QAAQ;;;;sBAI7B,aAAa,GAAG,cAAc;;EAEhD;CACF,CAAC;CAED,OAAO,CAAC,GAAG,WAAW,GAAG,SAAS;AACpC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Config, DbMetadata } from "joist-codegen";
|
|
2
|
+
import { CodegenFile } from "ts-poet";
|
|
3
|
+
//#region src/generateQueryResolvers.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* Generates top-level query resolvers.
|
|
6
|
+
*/
|
|
7
|
+
declare function generateQueryResolvers(config: Config, db: DbMetadata): CodegenFile[];
|
|
8
|
+
//#endregion
|
|
9
|
+
export { generateQueryResolvers };
|
|
10
|
+
//# sourceMappingURL=generateQueryResolvers.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generateQueryResolvers.d.cts","names":[],"sources":["../src/generateQueryResolvers.ts"],"mappings":";;;;;;iBAYgB,uBAAuB,QAAQ,QAAQ,IAAI,aAAa"}
|