@coex/graphql-vercajk
Advanced tools
Comparing version 0.3.1 to 1.0.0-beta.0
export type GraphqlVercajkOptions = { | ||
apiUrl: string; | ||
outDir: string; | ||
fileNamePrefix: string; | ||
exportName: string; | ||
inputs: GraphqlVercajkOptionsPaths; | ||
enums?: GraphqlVercajkOptionsPaths; | ||
directiveName: string; | ||
debug: boolean; | ||
}; | ||
type GraphqlVercajkOptionsPaths = { | ||
outDir: string; | ||
fileNamePrefix: string; | ||
}; | ||
export type GraphqlVercajkSchema = { | ||
@@ -45,1 +48,2 @@ data: { | ||
} | ||
export {}; |
@@ -13,5 +13,6 @@ import { OUT_DIR } from '../consts.js'; | ||
apiUrl: '', | ||
outDir: OUT_DIR, | ||
fileNamePrefix: `input`, | ||
exportName: 'INPUTS', | ||
inputs: { | ||
outDir: OUT_DIR, | ||
fileNamePrefix: `inputs`, | ||
}, | ||
directiveName: 'fieldConstraints', | ||
@@ -18,0 +19,0 @@ debug: false, |
@@ -8,1 +8,11 @@ export declare const loadFile: <T>(fileName: string, throwError?: boolean) => Promise<T | null>; | ||
}) => void; | ||
export declare const writeEnumFile: (input: { | ||
file: string; | ||
fileName: string; | ||
dir: string; | ||
data: string[]; | ||
}) => void; | ||
export declare const writeEnumHelperFile: (input: { | ||
file: string; | ||
dir: string; | ||
}) => void; |
@@ -33,1 +33,53 @@ import { existsSync, mkdirSync, writeFileSync } from 'fs'; | ||
}; | ||
export const writeEnumFile = (input) => { | ||
const values = input.data.map((value) => { | ||
return `[${input.fileName}.${value}]: _('enum.${input.fileName}.${value}')`; | ||
}); | ||
const prefix = `/* eslint-disable */\n\n`; | ||
const result = `${prefix} | ||
import { _ } from './enum--helper.generated'; | ||
// import { ${input.fileName} } from '@/libs/graphql/src'; | ||
// import { _ } from '@/libs/shared/src'; | ||
export const enum ${input.fileName} { | ||
${input.data.join(',\n ')} | ||
} | ||
export const ${input.fileName}I18N: Record<${input.fileName}, string> = { | ||
${values.join(',\n ')} | ||
}; | ||
`; | ||
try { | ||
mkdirSync(input.dir, { recursive: true }); | ||
} | ||
catch (e) { | ||
console.log(cliColors.red, `Error making folder ${e}`); | ||
} | ||
const fileName = join(input.dir, input.file + '.generated.ts'); | ||
try { | ||
writeFileSync(fileName, result, 'utf8'); | ||
console.log(cliColors.green, `Inputs generated to \`${fileName}\``); | ||
} | ||
catch (e) { | ||
console.log(cliColors.red, `Error writing file ${e}`); | ||
} | ||
}; | ||
export const writeEnumHelperFile = (input) => { | ||
const result = `/* eslint-disable */\n\n | ||
export const _ = (value: string) => value; | ||
`; | ||
try { | ||
mkdirSync(input.dir, { recursive: true }); | ||
} | ||
catch (e) { | ||
console.log(cliColors.red, `Error making folder ${e}`); | ||
} | ||
const fileName = join(input.dir, input.file + '.generated.ts'); | ||
try { | ||
writeFileSync(fileName, result, 'utf8'); | ||
console.log(cliColors.green, `Inputs generated to \`${fileName}\``); | ||
} | ||
catch (e) { | ||
console.log(cliColors.red, `Error writing file ${e}`); | ||
} | ||
}; |
25
index.js
#!/usr/bin/env node | ||
import { CONFIG_FILE } from './consts.js'; | ||
import { loadConfig, withDefaultConfig } from './helpers/config.js'; | ||
import { writeFile } from './helpers/file.js'; | ||
import { writeEnumFile, writeEnumHelperFile, writeFile } from './helpers/file.js'; | ||
import { assembleEnums } from './helpers/parser-enum.js'; | ||
import { assembleInput } from './helpers/parser.js'; | ||
@@ -26,16 +27,22 @@ import { getSchema } from './helpers/schema.js'; | ||
writeFile({ | ||
file: `${config.fileNamePrefix}-${toDashCase(key)}`, | ||
file: `${config.inputs.fileNamePrefix}-${toDashCase(key)}`, | ||
fileName: key, | ||
dir: config.outDir, | ||
dir: config.inputs.outDir, | ||
data: result[key] | ||
}); | ||
} | ||
writeFile({ | ||
file: `__${config.fileNamePrefix}`, | ||
fileName: 'GRAPHQL_INPUTS', | ||
dir: config.outDir, | ||
data: result | ||
}); | ||
if (config.enums) { | ||
const enums = assembleEnums(schema.data?.schema, config); | ||
writeEnumHelperFile({ file: `enum--helper`, dir: config.enums.outDir }); | ||
for (const enm of enums) { | ||
writeEnumFile({ | ||
file: `${config.enums.fileNamePrefix}-${toDashCase(enm.name)}`, | ||
fileName: enm.name, | ||
dir: config.enums.outDir, | ||
data: enm.values | ||
}); | ||
} | ||
} | ||
}; | ||
generate(); | ||
export { assembleInput, generate }; |
{ | ||
"name": "@coex/graphql-vercajk", | ||
"version": "0.3.1", | ||
"version": "1.0.0-beta.0", | ||
"description": "Collection of graphql tools", | ||
@@ -33,4 +33,5 @@ "bin": { | ||
"dependencies": { | ||
"graphql": "^16.9.0" | ||
"graphql": "^16.10.0" | ||
}, | ||
"packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e", | ||
"module": "./index.js", | ||
@@ -37,0 +38,0 @@ "main": "./index.js", |
Unstable ownership
Supply chain riskA new collaborator has begun publishing package versions. Package stability and security risk may be elevated.
Found 1 instance in 1 package
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
14895
20
360
1
2
Updatedgraphql@^16.10.0