@baeta/plugin-pagination 0.0.12 → 0.1.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # @baeta/plugin-pagination
2
2
 
3
+ ## 0.1.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#156](https://github.com/andreisergiu98/baeta/pull/156) [`01f3c20`](https://github.com/andreisergiu98/baeta/commit/01f3c20365539fad6e8a8694c59a8e86c95784e8) Thanks [@andreisergiu98](https://github.com/andreisergiu98)! - raise engine requirement to node >= 22
8
+
9
+ ### Patch Changes
10
+
11
+ - [#152](https://github.com/andreisergiu98/baeta/pull/152) [`d538c79`](https://github.com/andreisergiu98/baeta/commit/d538c7905e6ba96d9f294e2d528f9252e83acbe7) Thanks [@andreisergiu98](https://github.com/andreisergiu98)! - update formatter
12
+
13
+ - [#145](https://github.com/andreisergiu98/baeta/pull/145) [`08428d4`](https://github.com/andreisergiu98/baeta/commit/08428d4f03b79cab9c116ff7b3a3cf9a0b2620f2) Thanks [@andreisergiu98](https://github.com/andreisergiu98)! - update dependencies
14
+
15
+ - Updated dependencies [[`01f3c20`](https://github.com/andreisergiu98/baeta/commit/01f3c20365539fad6e8a8694c59a8e86c95784e8), [`d538c79`](https://github.com/andreisergiu98/baeta/commit/d538c7905e6ba96d9f294e2d528f9252e83acbe7), [`08428d4`](https://github.com/andreisergiu98/baeta/commit/08428d4f03b79cab9c116ff7b3a3cf9a0b2620f2)]:
16
+ - @baeta/generator-sdk@0.1.0
17
+ - @baeta/util-path@0.1.0
18
+
3
19
  ## 0.0.12
4
20
 
5
21
  ### Patch Changes
@@ -1 +1 @@
1
- {"version":3,"sources":["../index.ts"],"names":[],"mappings":"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","sourcesContent":["import { createPluginV1, getModuleGetName, getModuleVariableName } from '@baeta/generator-sdk';\nimport { join, parse } from '@baeta/util-path';\n\ninterface TypeOptions {\n nodeType?: string;\n cursorType?: string;\n edgeFields?: string[];\n connectionFields?: string[];\n}\n\ninterface PaginationOptions {\n types: Record<string, boolean | TypeOptions>;\n nullableNode?: boolean;\n pageInfoFields?: string[];\n moduleName?: string;\n createExport?: boolean;\n}\n\nfunction printFields(fields: string[]) {\n return fields.map((field) => ` ${field}`).join('\\n');\n}\n\nfunction printType(name: string, fields: string[]) {\n return `type ${name} {\n${printFields(fields)}\n}`;\n}\n\nfunction printTypes(types: string[]) {\n return `${types.join('\\n\\n')}\\n`;\n}\n\nfunction printPageInfo(addFields: string[] = []) {\n return printType('PageInfo', [\n ...addFields,\n 'hasPreviousPage: Boolean!',\n 'hasNextPage: Boolean!',\n ]);\n}\n\nfunction printExport(moduleDefinitionName: string, moduleName: string) {\n const parsed = parse(moduleDefinitionName);\n const method = getModuleGetName(moduleName);\n const importName = parsed.ext === '.ts' ? parsed.name : moduleDefinitionName;\n\n return `import { ${method} } from \"./${importName}\";\n\nexport const ${getModuleVariableName(moduleName)} = ${method}();\n`;\n}\n\nfunction printConnectionTypes(name: string, typeOptions: TypeOptions, options: PaginationOptions) {\n const {\n cursorType = 'String!',\n nodeType = name,\n connectionFields = [],\n edgeFields = [],\n } = typeOptions;\n\n const connection = printType(`${name}Connection`, [\n ...connectionFields,\n 'pageInfo: PageInfo!',\n `edges: [${name}Edge]`,\n ]);\n\n const edge = printType(`${name}Edge`, [\n ...edgeFields,\n `cursor: ${cursorType}`,\n `node: ${nodeType}${options.nullableNode === false ? '!' : ''}`,\n ]);\n\n return [connection, edge];\n}\n\nfunction createConnectionModuleDir(modulesDir: string, moduleName: string) {\n return join(modulesDir, moduleName);\n}\n\nfunction createGqlFilename(moduleDir: string) {\n return `${moduleDir}/connections.gql`;\n}\n\nfunction createExportFilename(moduleDir: string) {\n return `${moduleDir}/index.ts`;\n}\n\nexport function paginationPlugin(options: PaginationOptions) {\n const { moduleName = 'baeta-pagination' } = options;\n\n return createPluginV1({\n name: 'pagination',\n actionName: 'pagination connections',\n watch: (generatorOptions, watcher) => {\n watcher.ignore(`${createConnectionModuleDir(generatorOptions.modulesDir, moduleName)}/**`);\n },\n generate: async (ctx, next) => {\n const types: string[] = [printPageInfo(options.pageInfoFields)];\n\n for (const name in options.types) {\n const typeOptions = options.types[name];\n\n if (typeOptions === false) {\n continue;\n }\n\n const connectionTypes = printConnectionTypes(\n name,\n typeOptions === true ? {} : typeOptions,\n options,\n );\n\n types.push(...connectionTypes);\n }\n\n const moduleDir = createConnectionModuleDir(ctx.generatorOptions.modulesDir, moduleName);\n\n const definitionFile = ctx.fileManager.createAndAdd(\n createGqlFilename(moduleDir),\n printTypes(types),\n 'pagination',\n );\n await definitionFile.write();\n\n ctx.fileManager.add(definitionFile);\n\n if (options.createExport === false) {\n return next();\n }\n\n ctx.fileManager.createAndAdd(\n createExportFilename(moduleDir),\n printExport(ctx.generatorOptions.moduleDefinitionName, moduleName),\n 'pagination',\n );\n\n return next();\n },\n });\n}\n"]}
1
+ {"version":3,"sources":["/home/runner/work/baeta/baeta/packages/plugin-pagination/dist/index.cjs","../index.ts"],"names":[],"mappings":"AAAA;ACAA,oDAAwE;AACxE,4CAA4B;AAiB5B,SAAS,WAAA,CAAY,MAAA,EAAkB;AACtC,EAAA,OAAO,MAAA,CAAO,GAAA,CAAI,CAAC,KAAA,EAAA,GAAU,CAAA,EAAA,EAAK,KAAK,CAAA,CAAA;AACxC;AAEmD;AAC/B,EAAA;AACC;AAAA,CAAA;AAErB;AAEqC;AACR,EAAA;AAAA;AAC7B;AAEiD;AACnB,EAAA;AACzB,IAAA;AACH,IAAA;AACA,IAAA;AACA,EAAA;AACF;AAEqB;AACC,EAAA;AACW,EAAA;AACE,EAAA;AAEK,EAAA;AAAU;AAEb,aAAA;AAAuB;AAE5D;AAE4C;AACrC,EAAA;AACQ,IAAA;AACF,IAAA;AACS,IAAA;AACN,IAAA;AACX,EAAA;AAEgC,EAAA;AAChC,IAAA;AACH,IAAA;AACe,IAAA;AACf,EAAA;AAEqC,EAAA;AAClC,IAAA;AACkB,IAAA;AACO,IAAA;AAC5B,EAAA;AAEuB,EAAA;AACzB;AAEmC;AACA,EAAA;AACnC;AAE8C;AAC1B,EAAA;AACpB;AAEiD;AAC7B,EAAA;AACpB;AAE6D;AACpB,EAAA;AAElB,EAAA;AACf,IAAA;AACM,IAAA;AAC0B,IAAA;AACnB,MAAA;AACnB,IAAA;AAC+B,IAAA;AACS,MAAA;AAEL,MAAA;AACC,QAAA;AAEP,QAAA;AAC1B,UAAA;AACD,QAAA;AAEwB,QAAA;AACvB,UAAA;AAC4B,UAAA;AAC5B,UAAA;AACD,QAAA;AAE6B,QAAA;AAC9B,MAAA;AAEkB,MAAA;AAES,MAAA;AACC,QAAA;AACX,QAAA;AAChB,QAAA;AACD,MAAA;AAC2B,MAAA;AAEO,MAAA;AAEE,MAAA;AACvB,QAAA;AACb,MAAA;AAEgB,MAAA;AACe,QAAA;AACG,QAAA;AACjC,QAAA;AACD,MAAA;AAEY,MAAA;AACb,IAAA;AACA,EAAA;AACF;ADrC0C;AACA;AACA","file":"/home/runner/work/baeta/baeta/packages/plugin-pagination/dist/index.cjs","sourcesContent":[null,"import { createPluginV1, getModuleGetName, getModuleVariableName } from '@baeta/generator-sdk';\nimport { join, parse } from '@baeta/util-path';\n\ninterface TypeOptions {\n\tnodeType?: string;\n\tcursorType?: string;\n\tedgeFields?: string[];\n\tconnectionFields?: string[];\n}\n\ninterface PaginationOptions {\n\ttypes: Record<string, boolean | TypeOptions>;\n\tnullableNode?: boolean;\n\tpageInfoFields?: string[];\n\tmoduleName?: string;\n\tcreateExport?: boolean;\n}\n\nfunction printFields(fields: string[]) {\n\treturn fields.map((field) => ` ${field}`).join('\\n');\n}\n\nfunction printType(name: string, fields: string[]) {\n\treturn `type ${name} {\n${printFields(fields)}\n}`;\n}\n\nfunction printTypes(types: string[]) {\n\treturn `${types.join('\\n\\n')}\\n`;\n}\n\nfunction printPageInfo(addFields: string[] = []) {\n\treturn printType('PageInfo', [\n\t\t...addFields,\n\t\t'hasPreviousPage: Boolean!',\n\t\t'hasNextPage: Boolean!',\n\t]);\n}\n\nfunction printExport(moduleDefinitionName: string, moduleName: string) {\n\tconst parsed = parse(moduleDefinitionName);\n\tconst method = getModuleGetName(moduleName);\n\tconst importName = parsed.ext === '.ts' ? parsed.name : moduleDefinitionName;\n\n\treturn `import { ${method} } from \"./${importName}\";\n\nexport const ${getModuleVariableName(moduleName)} = ${method}();\n`;\n}\n\nfunction printConnectionTypes(name: string, typeOptions: TypeOptions, options: PaginationOptions) {\n\tconst {\n\t\tcursorType = 'String!',\n\t\tnodeType = name,\n\t\tconnectionFields = [],\n\t\tedgeFields = [],\n\t} = typeOptions;\n\n\tconst connection = printType(`${name}Connection`, [\n\t\t...connectionFields,\n\t\t'pageInfo: PageInfo!',\n\t\t`edges: [${name}Edge]`,\n\t]);\n\n\tconst edge = printType(`${name}Edge`, [\n\t\t...edgeFields,\n\t\t`cursor: ${cursorType}`,\n\t\t`node: ${nodeType}${options.nullableNode === false ? '!' : ''}`,\n\t]);\n\n\treturn [connection, edge];\n}\n\nfunction createConnectionModuleDir(modulesDir: string, moduleName: string) {\n\treturn join(modulesDir, moduleName);\n}\n\nfunction createGqlFilename(moduleDir: string) {\n\treturn `${moduleDir}/connections.gql`;\n}\n\nfunction createExportFilename(moduleDir: string) {\n\treturn `${moduleDir}/index.ts`;\n}\n\nexport function paginationPlugin(options: PaginationOptions) {\n\tconst { moduleName = 'baeta-pagination' } = options;\n\n\treturn createPluginV1({\n\t\tname: 'pagination',\n\t\tactionName: 'pagination connections',\n\t\twatch: (generatorOptions, watcher) => {\n\t\t\twatcher.ignore(`${createConnectionModuleDir(generatorOptions.modulesDir, moduleName)}/**`);\n\t\t},\n\t\tgenerate: async (ctx, next) => {\n\t\t\tconst types: string[] = [printPageInfo(options.pageInfoFields)];\n\n\t\t\tfor (const name in options.types) {\n\t\t\t\tconst typeOptions = options.types[name];\n\n\t\t\t\tif (typeOptions === false) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tconst connectionTypes = printConnectionTypes(\n\t\t\t\t\tname,\n\t\t\t\t\ttypeOptions === true ? {} : typeOptions,\n\t\t\t\t\toptions,\n\t\t\t\t);\n\n\t\t\t\ttypes.push(...connectionTypes);\n\t\t\t}\n\n\t\t\tconst moduleDir = createConnectionModuleDir(ctx.generatorOptions.modulesDir, moduleName);\n\n\t\t\tconst definitionFile = ctx.fileManager.createAndAdd(\n\t\t\t\tcreateGqlFilename(moduleDir),\n\t\t\t\tprintTypes(types),\n\t\t\t\t'pagination',\n\t\t\t);\n\t\t\tawait definitionFile.write();\n\n\t\t\tctx.fileManager.add(definitionFile);\n\n\t\t\tif (options.createExport === false) {\n\t\t\t\treturn next();\n\t\t\t}\n\n\t\t\tctx.fileManager.createAndAdd(\n\t\t\t\tcreateExportFilename(moduleDir),\n\t\t\t\tprintExport(ctx.generatorOptions.moduleDefinitionName, moduleName),\n\t\t\t\t'pagination',\n\t\t\t);\n\n\t\t\treturn next();\n\t\t},\n\t});\n}\n"]}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../index.ts"],"sourcesContent":["import { createPluginV1, getModuleGetName, getModuleVariableName } from '@baeta/generator-sdk';\nimport { join, parse } from '@baeta/util-path';\n\ninterface TypeOptions {\n nodeType?: string;\n cursorType?: string;\n edgeFields?: string[];\n connectionFields?: string[];\n}\n\ninterface PaginationOptions {\n types: Record<string, boolean | TypeOptions>;\n nullableNode?: boolean;\n pageInfoFields?: string[];\n moduleName?: string;\n createExport?: boolean;\n}\n\nfunction printFields(fields: string[]) {\n return fields.map((field) => ` ${field}`).join('\\n');\n}\n\nfunction printType(name: string, fields: string[]) {\n return `type ${name} {\n${printFields(fields)}\n}`;\n}\n\nfunction printTypes(types: string[]) {\n return `${types.join('\\n\\n')}\\n`;\n}\n\nfunction printPageInfo(addFields: string[] = []) {\n return printType('PageInfo', [\n ...addFields,\n 'hasPreviousPage: Boolean!',\n 'hasNextPage: Boolean!',\n ]);\n}\n\nfunction printExport(moduleDefinitionName: string, moduleName: string) {\n const parsed = parse(moduleDefinitionName);\n const method = getModuleGetName(moduleName);\n const importName = parsed.ext === '.ts' ? parsed.name : moduleDefinitionName;\n\n return `import { ${method} } from \"./${importName}\";\n\nexport const ${getModuleVariableName(moduleName)} = ${method}();\n`;\n}\n\nfunction printConnectionTypes(name: string, typeOptions: TypeOptions, options: PaginationOptions) {\n const {\n cursorType = 'String!',\n nodeType = name,\n connectionFields = [],\n edgeFields = [],\n } = typeOptions;\n\n const connection = printType(`${name}Connection`, [\n ...connectionFields,\n 'pageInfo: PageInfo!',\n `edges: [${name}Edge]`,\n ]);\n\n const edge = printType(`${name}Edge`, [\n ...edgeFields,\n `cursor: ${cursorType}`,\n `node: ${nodeType}${options.nullableNode === false ? '!' : ''}`,\n ]);\n\n return [connection, edge];\n}\n\nfunction createConnectionModuleDir(modulesDir: string, moduleName: string) {\n return join(modulesDir, moduleName);\n}\n\nfunction createGqlFilename(moduleDir: string) {\n return `${moduleDir}/connections.gql`;\n}\n\nfunction createExportFilename(moduleDir: string) {\n return `${moduleDir}/index.ts`;\n}\n\nexport function paginationPlugin(options: PaginationOptions) {\n const { moduleName = 'baeta-pagination' } = options;\n\n return createPluginV1({\n name: 'pagination',\n actionName: 'pagination connections',\n watch: (generatorOptions, watcher) => {\n watcher.ignore(`${createConnectionModuleDir(generatorOptions.modulesDir, moduleName)}/**`);\n },\n generate: async (ctx, next) => {\n const types: string[] = [printPageInfo(options.pageInfoFields)];\n\n for (const name in options.types) {\n const typeOptions = options.types[name];\n\n if (typeOptions === false) {\n continue;\n }\n\n const connectionTypes = printConnectionTypes(\n name,\n typeOptions === true ? {} : typeOptions,\n options,\n );\n\n types.push(...connectionTypes);\n }\n\n const moduleDir = createConnectionModuleDir(ctx.generatorOptions.modulesDir, moduleName);\n\n const definitionFile = ctx.fileManager.createAndAdd(\n createGqlFilename(moduleDir),\n printTypes(types),\n 'pagination',\n );\n await definitionFile.write();\n\n ctx.fileManager.add(definitionFile);\n\n if (options.createExport === false) {\n return next();\n }\n\n ctx.fileManager.createAndAdd(\n createExportFilename(moduleDir),\n printExport(ctx.generatorOptions.moduleDefinitionName, moduleName),\n 'pagination',\n );\n\n return next();\n },\n });\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../index.ts"],"sourcesContent":["import { createPluginV1, getModuleGetName, getModuleVariableName } from '@baeta/generator-sdk';\nimport { join, parse } from '@baeta/util-path';\n\ninterface TypeOptions {\n\tnodeType?: string;\n\tcursorType?: string;\n\tedgeFields?: string[];\n\tconnectionFields?: string[];\n}\n\ninterface PaginationOptions {\n\ttypes: Record<string, boolean | TypeOptions>;\n\tnullableNode?: boolean;\n\tpageInfoFields?: string[];\n\tmoduleName?: string;\n\tcreateExport?: boolean;\n}\n\nfunction printFields(fields: string[]) {\n\treturn fields.map((field) => ` ${field}`).join('\\n');\n}\n\nfunction printType(name: string, fields: string[]) {\n\treturn `type ${name} {\n${printFields(fields)}\n}`;\n}\n\nfunction printTypes(types: string[]) {\n\treturn `${types.join('\\n\\n')}\\n`;\n}\n\nfunction printPageInfo(addFields: string[] = []) {\n\treturn printType('PageInfo', [\n\t\t...addFields,\n\t\t'hasPreviousPage: Boolean!',\n\t\t'hasNextPage: Boolean!',\n\t]);\n}\n\nfunction printExport(moduleDefinitionName: string, moduleName: string) {\n\tconst parsed = parse(moduleDefinitionName);\n\tconst method = getModuleGetName(moduleName);\n\tconst importName = parsed.ext === '.ts' ? parsed.name : moduleDefinitionName;\n\n\treturn `import { ${method} } from \"./${importName}\";\n\nexport const ${getModuleVariableName(moduleName)} = ${method}();\n`;\n}\n\nfunction printConnectionTypes(name: string, typeOptions: TypeOptions, options: PaginationOptions) {\n\tconst {\n\t\tcursorType = 'String!',\n\t\tnodeType = name,\n\t\tconnectionFields = [],\n\t\tedgeFields = [],\n\t} = typeOptions;\n\n\tconst connection = printType(`${name}Connection`, [\n\t\t...connectionFields,\n\t\t'pageInfo: PageInfo!',\n\t\t`edges: [${name}Edge]`,\n\t]);\n\n\tconst edge = printType(`${name}Edge`, [\n\t\t...edgeFields,\n\t\t`cursor: ${cursorType}`,\n\t\t`node: ${nodeType}${options.nullableNode === false ? '!' : ''}`,\n\t]);\n\n\treturn [connection, edge];\n}\n\nfunction createConnectionModuleDir(modulesDir: string, moduleName: string) {\n\treturn join(modulesDir, moduleName);\n}\n\nfunction createGqlFilename(moduleDir: string) {\n\treturn `${moduleDir}/connections.gql`;\n}\n\nfunction createExportFilename(moduleDir: string) {\n\treturn `${moduleDir}/index.ts`;\n}\n\nexport function paginationPlugin(options: PaginationOptions) {\n\tconst { moduleName = 'baeta-pagination' } = options;\n\n\treturn createPluginV1({\n\t\tname: 'pagination',\n\t\tactionName: 'pagination connections',\n\t\twatch: (generatorOptions, watcher) => {\n\t\t\twatcher.ignore(`${createConnectionModuleDir(generatorOptions.modulesDir, moduleName)}/**`);\n\t\t},\n\t\tgenerate: async (ctx, next) => {\n\t\t\tconst types: string[] = [printPageInfo(options.pageInfoFields)];\n\n\t\t\tfor (const name in options.types) {\n\t\t\t\tconst typeOptions = options.types[name];\n\n\t\t\t\tif (typeOptions === false) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tconst connectionTypes = printConnectionTypes(\n\t\t\t\t\tname,\n\t\t\t\t\ttypeOptions === true ? {} : typeOptions,\n\t\t\t\t\toptions,\n\t\t\t\t);\n\n\t\t\t\ttypes.push(...connectionTypes);\n\t\t\t}\n\n\t\t\tconst moduleDir = createConnectionModuleDir(ctx.generatorOptions.modulesDir, moduleName);\n\n\t\t\tconst definitionFile = ctx.fileManager.createAndAdd(\n\t\t\t\tcreateGqlFilename(moduleDir),\n\t\t\t\tprintTypes(types),\n\t\t\t\t'pagination',\n\t\t\t);\n\t\t\tawait definitionFile.write();\n\n\t\t\tctx.fileManager.add(definitionFile);\n\n\t\t\tif (options.createExport === false) {\n\t\t\t\treturn next();\n\t\t\t}\n\n\t\t\tctx.fileManager.createAndAdd(\n\t\t\t\tcreateExportFilename(moduleDir),\n\t\t\t\tprintExport(ctx.generatorOptions.moduleDefinitionName, moduleName),\n\t\t\t\t'pagination',\n\t\t\t);\n\n\t\t\treturn next();\n\t\t},\n\t});\n}\n"],"mappings":"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","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@baeta/plugin-pagination",
3
- "version": "0.0.12",
3
+ "version": "0.1.0",
4
4
  "keywords": [
5
5
  "baeta",
6
6
  "graphql",
@@ -44,23 +44,32 @@
44
44
  "types": "tsc --noEmit"
45
45
  },
46
46
  "dependencies": {
47
- "@baeta/generator-sdk": "^0.0.14",
48
- "@baeta/util-path": "^0.0.6"
47
+ "@baeta/generator-sdk": "^0.1.0",
48
+ "@baeta/util-path": "^0.1.0"
49
49
  },
50
50
  "devDependencies": {
51
51
  "@baeta/builder": "^0.0.0",
52
52
  "@baeta/tsconfig": "^0.0.0",
53
- "@types/node": "^20.14.10",
53
+ "@types/node": "^22.7.4",
54
54
  "graphql": "^16.9.0",
55
- "typescript": "^5.5.3"
55
+ "typescript": "^5.6.2"
56
56
  },
57
57
  "peerDependencies": {
58
58
  "graphql": "^16.6.0"
59
59
  },
60
60
  "engines": {
61
- "node": ">=20.0.0"
61
+ "node": ">=22.0.0"
62
62
  },
63
63
  "publishConfig": {
64
64
  "access": "public"
65
+ },
66
+ "ava": {
67
+ "extensions": {
68
+ "ts": "module"
69
+ },
70
+ "nodeArguments": [
71
+ "--no-warnings",
72
+ "--experimental-transform-types"
73
+ ]
65
74
  }
66
75
  }