@trackunit/react-graphql-tools 1.0.1 → 1.0.2
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
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
|
|
4
4
|
|
|
5
|
+
## [1.0.2](https://github.com/Trackunit/manager/compare/react-graphql-tools/1.0.1...react-graphql-tools/1.0.2) (2025-01-27)
|
|
6
|
+
|
|
5
7
|
## [1.0.1](https://github.com/Trackunit/manager/compare/react-graphql-tools/1.0.0...react-graphql-tools/1.0.1) (2025-01-16)
|
|
6
8
|
|
|
7
9
|
## [1.0.1-0](https://github.com/Trackunit/manager/compare/react-graphql-tools/1.0.0...react-graphql-tools/1.0.1-0) (2025-01-15)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@trackunit/react-graphql-tools",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"main": "src/index.js",
|
|
5
5
|
"executors": "./executors.json",
|
|
6
6
|
"generators": "./generators.json",
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"node": ">=20.x"
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"@nx/devkit": "
|
|
13
|
+
"@nx/devkit": "20.3.3",
|
|
14
14
|
"@graphql-codegen/cli": "^5.0.3",
|
|
15
15
|
"@graphql-codegen/client-preset": "^4.5.1",
|
|
16
16
|
"prettier": "^3.4.2",
|
|
@@ -18,6 +18,6 @@
|
|
|
18
18
|
"@faker-js/faker": "^8.4.1",
|
|
19
19
|
"win-ca": "^3.5.1"
|
|
20
20
|
},
|
|
21
|
-
"
|
|
22
|
-
"
|
|
21
|
+
"types": "./src/index.d.ts",
|
|
22
|
+
"type": "commonjs"
|
|
23
23
|
}
|
|
@@ -14,15 +14,11 @@ const scrubFile_1 = require("./scrubFile");
|
|
|
14
14
|
* @returns {Promise<{ success: number; }>} success when finished
|
|
15
15
|
*/
|
|
16
16
|
const CreateGraphqlHooks = async (_unused, context) => {
|
|
17
|
-
var _a;
|
|
18
17
|
const nxRoot = `${context.root}`;
|
|
19
|
-
if (!context.projectsConfigurations) {
|
|
20
|
-
throw new Error("context projectsConfigurations is required");
|
|
21
|
-
}
|
|
22
18
|
if (!context.projectName) {
|
|
23
19
|
throw new Error("context projectName is required");
|
|
24
20
|
}
|
|
25
|
-
const libRoot =
|
|
21
|
+
const libRoot = context.projectsConfigurations.projects[context.projectName]?.root;
|
|
26
22
|
if (!libRoot) {
|
|
27
23
|
throw new Error("Missing library root");
|
|
28
24
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../../../../../libs/react/graphql-tools/src/executors/createHooks/executor.ts"],"names":[],"mappings":";;;AACA,2BAAgC;AAChC,+BAA4B;AAC5B,kBAAgB;AAChB,mDAAgD;AAChD,2CAAwC;AAExC;;;;;;GAMG;AACI,MAAM,kBAAkB,GAAG,KAAK,EAAE,OAAgB,EAAE,OAAwB,EAAE,EAAE
|
|
1
|
+
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../../../../../libs/react/graphql-tools/src/executors/createHooks/executor.ts"],"names":[],"mappings":";;;AACA,2BAAgC;AAChC,+BAA4B;AAC5B,kBAAgB;AAChB,mDAAgD;AAChD,2CAAwC;AAExC;;;;;;GAMG;AACI,MAAM,kBAAkB,GAAG,KAAK,EAAE,OAAgB,EAAE,OAAwB,EAAE,EAAE;IACrF,MAAM,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IACjC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACrD,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,sBAAsB,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC;IAEnF,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,WAAW,GAAG,IAAA,WAAI,EAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,MAAM,YAAY,GAAG,IAAA,eAAU,EAAC,IAAA,WAAI,EAAC,WAAW,EAAE,mBAAmB,CAAC,CAAC;QACrE,CAAC,CAAC,IAAA,WAAI,EAAC,WAAW,EAAE,mBAAmB,CAAC;QACxC,CAAC,CAAC,IAAA,WAAI,EAAC,WAAW,EAAE,mBAAmB,CAAC,CAAC;IAE3C,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,CAAC;IAED,MAAM,eAAe,GAAG,IAAA,WAAI,EAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IACxD,IAAI,CAAC,IAAA,eAAU,EAAC,eAAe,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,gCAAgC,WAAW;;;;;;;;;CAS9D,CAAC,CAAC;IACD,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,IAAA,6BAAa,EAAC;QACjC,MAAM,EAAE,OAAO,CAAC,IAAI;QACpB,eAAe;QACf,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,YAAY;KACb,CAAC,CAAC;IACH,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,MAAM,EAAE,CAAC;QACtC,MAAM,kBAAkB,GAAG,IAAA,WAAI,EAAC,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC;QAC9F,IAAI,IAAA,eAAU,EAAC,kBAAkB,CAAC,EAAE,CAAC;YACnC,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;gBACtB,sCAAsC;gBACtC,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,CAAC;YACtD,CAAC;YACD,MAAM,IAAA,qBAAS,EAAC,kBAAkB,EAAE,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AAC7B,CAAC,CAAC;AApDW,QAAA,kBAAkB,sBAoD7B;AAEF,kBAAe,0BAAkB,CAAC","sourcesContent":["import { ExecutorContext } from \"@nx/devkit\";\nimport { existsSync } from \"fs\";\nimport { join } from \"path\";\nimport \"win-ca\";\nimport { generateHooks } from \"./generateHooks\";\nimport { scrubFile } from \"./scrubFile\";\n\n/**\n * This executor generates react hooks for all graphql files.\n *\n * @param _unused unused props from nx\n * @param context The execution context for this executor\n * @returns {Promise<{ success: number; }>} success when finished\n */\nexport const CreateGraphqlHooks = async (_unused: unknown, context: ExecutorContext) => {\n const nxRoot = `${context.root}`;\n if (!context.projectName) {\n throw new Error(\"context projectName is required\");\n }\n\n const libRoot = context.projectsConfigurations.projects[context.projectName]?.root;\n\n if (!libRoot) {\n throw new Error(\"Missing library root\");\n }\n\n const fullLibRoot = join(nxRoot, libRoot);\n const tsConfigPath = existsSync(join(fullLibRoot, \"tsconfig.lib.json\"))\n ? join(fullLibRoot, \"tsconfig.lib.json\")\n : join(fullLibRoot, \"tsconfig.app.json\");\n\n if (!tsConfigPath) {\n throw new Error(\"context projectsConfigurations is required\");\n }\n\n const codeGenFilePath = join(fullLibRoot, \"codegen.ts\");\n if (!existsSync(codeGenFilePath)) {\n throw new Error(`codegen.ts file not found in ${fullLibRoot} please add this file and run again to generate hooks. The content should be\nimport { type CodegenConfig } from \"@graphql-codegen/cli\";\nimport { getGraphqlCodegenConfig } from \"@trackunit/iris-app-build-utilities\";\n\nconst config: CodegenConfig = {\n ...getGraphqlCodegenConfig(__dirname),\n // You can override codegen default config here\n};\nexport default config;\n`);\n }\n\n const result = await generateHooks({\n nxRoot: context.root,\n codeGenFilePath,\n isVerbose: context.isVerbose,\n tsConfigPath,\n });\n if (process.env.SKIP_SCRUB !== \"true\") {\n const pathToGenerateFile = join(fullLibRoot, \"src\", \"generated\", \"graphql-api\", \"graphql.ts\");\n if (existsSync(pathToGenerateFile)) {\n if (context.isVerbose) {\n // eslint-disable-next-line no-console\n console.log(\"Scrubbing file: \", pathToGenerateFile);\n }\n await scrubFile(pathToGenerateFile, nxRoot, context.isVerbose);\n }\n }\n return { success: result };\n};\n\nexport default CreateGraphqlHooks;\n"]}
|
|
@@ -77,10 +77,10 @@ const getPreservedTypes = (sourceFile, isVerbose) => {
|
|
|
77
77
|
}
|
|
78
78
|
});
|
|
79
79
|
sourceFile.getVariableStatements().forEach(variableStatement => {
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
if (
|
|
80
|
+
const variable = variableStatement
|
|
81
|
+
.getFirstChildByKind(ts_morph_1.SyntaxKind.VariableDeclarationList)
|
|
82
|
+
?.getFirstChildByKind(ts_morph_1.SyntaxKind.VariableDeclaration);
|
|
83
|
+
if (variable?.getName().endsWith("Document") || variable?.getName().endsWith("FragmentDoc")) {
|
|
84
84
|
queryAndMutations.push(variableStatement);
|
|
85
85
|
}
|
|
86
86
|
});
|
|
@@ -127,7 +127,6 @@ const preserveTypes = (node, preservedTypes, sourceFile, isVerbose) => {
|
|
|
127
127
|
* Convert an enum to a const object and string literal type
|
|
128
128
|
*/
|
|
129
129
|
const convertEnumToConstObject = (enumDeclaration) => {
|
|
130
|
-
var _a;
|
|
131
130
|
const enumName = enumDeclaration.getName();
|
|
132
131
|
const members = enumDeclaration.getMembers();
|
|
133
132
|
const properties = members.map(member => {
|
|
@@ -135,7 +134,7 @@ const convertEnumToConstObject = (enumDeclaration) => {
|
|
|
135
134
|
const value = member.getValue();
|
|
136
135
|
return `${name}: '${value}'`;
|
|
137
136
|
});
|
|
138
|
-
const lowerCaseFirstLetter =
|
|
137
|
+
const lowerCaseFirstLetter = enumName[0]?.toLowerCase() + enumName.slice(1);
|
|
139
138
|
const constObjectText = `export const ${lowerCaseFirstLetter} = {\n ${properties.join(",\n ")},\n} as const;\nexport type ${enumName} = typeof ${lowerCaseFirstLetter}[keyof typeof ${lowerCaseFirstLetter}];`;
|
|
140
139
|
return constObjectText;
|
|
141
140
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../../../libs/react/graphql-tools/src/executors/createHooks/utils.ts"],"names":[],"mappings":"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","sourcesContent":["import { EnumDeclaration, Node, Project, SourceFile, SyntaxKind, TypeAliasDeclaration } from \"ts-morph\";\n\n/**\n * Check if the name is a *Query\n */\nexport const isQuery = (name: string) => {\n return name.endsWith(\"Query\") && name.length > \"Query\".length;\n};\n/**\n * Check if the name is a *QueryVariables\n */\nexport const isQueryVariables = (name: string) => {\n return name.endsWith(\"QueryVariables\");\n};\n\n/**\n * Check if the name is a Mutation\n */\nexport const isMutation = (name: string) => {\n return name.endsWith(\"Mutation\") && name.length > \"Mutation\".length;\n};\n\n/**\n * Check if the name is a *QueryVariables\n */\nexport const isMutationVariables = (name: string) => {\n return name.endsWith(\"MutationVariables\");\n};\n\n/**\n * Check if the name is a *Fragment and not *_Fragment\n */\nexport const isFragment = (name: string) => {\n return name.endsWith(\"Fragment\") && !name.endsWith(\"_Fragment\");\n};\n\n/**\n * Debug where you are in the tree\n */\nconst getFullPathUpOfNode = (node: Node) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let currentNode: any | undefined = node;\n const paths = [];\n\n while (currentNode) {\n // You can customize what details to include for each node (e.g., kind, text)\n let name = currentNode.getName ? currentNode.getName() : currentNode.getKindName();\n if (node.getKind() === SyntaxKind.TypeLiteral) {\n const typeLiteral = node.asKindOrThrow(SyntaxKind.TypeLiteral);\n name = typeLiteral.getText();\n }\n\n paths.unshift(`${name}`);\n currentNode = currentNode.getParent();\n }\n\n return paths.join(\">>\");\n};\n\n/**\n * Get the types that should be preserved\n */\nexport const getPreservedTypes = (\n sourceFile: SourceFile,\n isVerbose?: boolean\n): {\n preservedTypes: string[];\n queryAndMutations: Node[];\n} => {\n const typeAliases = sourceFile.getTypeAliases();\n const queryAndMutations: Node[] = [];\n\n const preservedTypes: string[] = [];\n\n const variablesListToProcess: TypeAliasDeclaration[] = [];\n const queryMutationListToProcess: TypeAliasDeclaration[] = [];\n\n typeAliases.forEach(typeAlias => {\n const name = typeAlias.getName();\n if (isQueryVariables(name) || isMutationVariables(name) || isFragment(name)) {\n variablesListToProcess.push(typeAlias);\n queryAndMutations.push(typeAlias);\n } else if (isQuery(name) || isMutation(name)) {\n queryMutationListToProcess.push(typeAlias);\n queryAndMutations.push(typeAlias);\n }\n });\n\n sourceFile.getVariableStatements().forEach(variableStatement => {\n const variable = variableStatement\n .getFirstChildByKind(SyntaxKind.VariableDeclarationList)\n ?.getFirstChildByKind(SyntaxKind.VariableDeclaration);\n if (variable?.getName().endsWith(\"Document\") || variable?.getName().endsWith(\"FragmentDoc\")) {\n queryAndMutations.push(variableStatement);\n }\n });\n\n // RUN VARAIABLES FIRST since it will force full props if nessasary\n\n // VARIABLES are input so force include all props\n variablesListToProcess.forEach(typeAlias => {\n preserveTypes(typeAlias, preservedTypes, sourceFile, isVerbose);\n });\n\n // QUERY and MUTATION are dynamic so dont force props\n queryMutationListToProcess.forEach(typeAlias => {\n preserveTypes(typeAlias, preservedTypes, sourceFile, isVerbose);\n });\n\n return { preservedTypes, queryAndMutations };\n};\n\nconst preserveTypes = (node: Node, preservedTypes: string[], sourceFile: SourceFile, isVerbose?: boolean): Node[] => {\n const typeReferences: Node[] = [];\n if (!node.getText().startsWith(\"export type Query\") && !node.getText().startsWith(\"export type Mutation\")) {\n node.forEachDescendant(descendant => {\n if (descendant.getKind() === SyntaxKind.TypeReference &&\n !descendant.getText().startsWith(\"Scalars\") &&\n !descendant.getText().startsWith(\"Maybe<\") &&\n !descendant.getText().startsWith(\"InputMaybe<\") &&\n !descendant.getText().startsWith(\"Array<\") &&\n !descendant.getText().startsWith(\"Exact<\") &&\n !descendant.getText().includes(\"__typename\")\n ) {\n if (isVerbose) {\n // eslint-disable-next-line no-console\n console.log(\"ADDING\", getFullPathUpOfNode(descendant), \":\", descendant.getText(), descendant.getKindName());\n }\n if (!preservedTypes.includes(descendant.getText())) {\n const foundTypeAlias = sourceFile.getTypeAlias(descendant.getText());\n preservedTypes.push(descendant.getText());\n if (foundTypeAlias) {\n preserveTypes(foundTypeAlias, preservedTypes, sourceFile, isVerbose);\n }\n }\n }\n });\n }\n\n return typeReferences;\n};\n\n/**\n * Convert an enum to a const object and string literal type\n */\nexport const convertEnumToConstObject = (enumDeclaration: EnumDeclaration) => {\n const enumName = enumDeclaration.getName();\n const members = enumDeclaration.getMembers();\n\n const properties = members.map(member => {\n const name = member.getName();\n const value = member.getValue();\n return `${name}: '${value}'`;\n });\n\n const lowerCaseFirstLetter = enumName[0]?.toLowerCase() + enumName.slice(1);\n const constObjectText = `export const ${lowerCaseFirstLetter} = {\\n ${properties.join(\n \",\\n \"\n )},\\n} as const;\\nexport type ${enumName} = typeof ${lowerCaseFirstLetter}[keyof typeof ${lowerCaseFirstLetter}];`;\n\n return constObjectText;\n};\n\n/**\n * Create a source file from a string\n */\nexport const createSourceFile = (fileContent: string) => {\n const project = new Project({\n compilerOptions: {\n noUnusedLocals: true,\n noUnusedParameters: true,\n },\n });\n\n return project.createSourceFile(\"tmp.ts\", fileContent);\n};\n"]}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../../../libs/react/graphql-tools/src/executors/createHooks/utils.ts"],"names":[],"mappings":"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","sourcesContent":["import { EnumDeclaration, Node, Project, SourceFile, SyntaxKind, TypeAliasDeclaration } from \"ts-morph\";\n\n/**\n * Check if the name is a *Query\n */\nexport const isQuery = (name: string) => {\n return name.endsWith(\"Query\") && name.length > \"Query\".length;\n};\n/**\n * Check if the name is a *QueryVariables\n */\nexport const isQueryVariables = (name: string) => {\n return name.endsWith(\"QueryVariables\");\n};\n\n/**\n * Check if the name is a Mutation\n */\nexport const isMutation = (name: string) => {\n return name.endsWith(\"Mutation\") && name.length > \"Mutation\".length;\n};\n\n/**\n * Check if the name is a *QueryVariables\n */\nexport const isMutationVariables = (name: string) => {\n return name.endsWith(\"MutationVariables\");\n};\n\n/**\n * Check if the name is a *Fragment and not *_Fragment\n */\nexport const isFragment = (name: string) => {\n return name.endsWith(\"Fragment\") && !name.endsWith(\"_Fragment\");\n};\n\n/**\n * Debug where you are in the tree\n */\nconst getFullPathUpOfNode = (node: Node) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let currentNode: any | undefined = node;\n const paths = [];\n\n while (currentNode) {\n // You can customize what details to include for each node (e.g., kind, text)\n let name = currentNode.getName ? currentNode.getName() : currentNode.getKindName();\n if (node.getKind() === SyntaxKind.TypeLiteral) {\n const typeLiteral = node.asKindOrThrow(SyntaxKind.TypeLiteral);\n name = typeLiteral.getText();\n }\n\n paths.unshift(`${name}`);\n currentNode = currentNode.getParent();\n }\n\n return paths.join(\">>\");\n};\n\n/**\n * Get the types that should be preserved\n */\nexport const getPreservedTypes = (\n sourceFile: SourceFile,\n isVerbose?: boolean\n): {\n preservedTypes: string[];\n queryAndMutations: Node[];\n} => {\n const typeAliases = sourceFile.getTypeAliases();\n const queryAndMutations: Node[] = [];\n\n const preservedTypes: string[] = [];\n\n const variablesListToProcess: TypeAliasDeclaration[] = [];\n const queryMutationListToProcess: TypeAliasDeclaration[] = [];\n\n typeAliases.forEach(typeAlias => {\n const name = typeAlias.getName();\n if (isQueryVariables(name) || isMutationVariables(name) || isFragment(name)) {\n variablesListToProcess.push(typeAlias);\n queryAndMutations.push(typeAlias);\n } else if (isQuery(name) || isMutation(name)) {\n queryMutationListToProcess.push(typeAlias);\n queryAndMutations.push(typeAlias);\n }\n });\n\n sourceFile.getVariableStatements().forEach(variableStatement => {\n const variable = variableStatement\n .getFirstChildByKind(SyntaxKind.VariableDeclarationList)\n ?.getFirstChildByKind(SyntaxKind.VariableDeclaration);\n if (variable?.getName().endsWith(\"Document\") || variable?.getName().endsWith(\"FragmentDoc\")) {\n queryAndMutations.push(variableStatement);\n }\n });\n\n // RUN VARAIABLES FIRST since it will force full props if nessasary\n\n // VARIABLES are input so force include all props\n variablesListToProcess.forEach(typeAlias => {\n preserveTypes(typeAlias, preservedTypes, sourceFile, isVerbose);\n });\n\n // QUERY and MUTATION are dynamic so dont force props\n queryMutationListToProcess.forEach(typeAlias => {\n preserveTypes(typeAlias, preservedTypes, sourceFile, isVerbose);\n });\n\n return { preservedTypes, queryAndMutations };\n};\n\nconst preserveTypes = (node: Node, preservedTypes: string[], sourceFile: SourceFile, isVerbose?: boolean): Node[] => {\n const typeReferences: Node[] = [];\n if (!node.getText().startsWith(\"export type Query\") && !node.getText().startsWith(\"export type Mutation\")) {\n node.forEachDescendant(descendant => {\n if (descendant.getKind() === SyntaxKind.TypeReference &&\n !descendant.getText().startsWith(\"Scalars\") &&\n !descendant.getText().startsWith(\"Maybe<\") &&\n !descendant.getText().startsWith(\"InputMaybe<\") &&\n !descendant.getText().startsWith(\"Array<\") &&\n !descendant.getText().startsWith(\"Exact<\") &&\n !descendant.getText().includes(\"__typename\")\n ) {\n if (isVerbose) {\n // eslint-disable-next-line no-console\n console.log(\"ADDING\", getFullPathUpOfNode(descendant), \":\", descendant.getText(), descendant.getKindName());\n }\n if (!preservedTypes.includes(descendant.getText())) {\n const foundTypeAlias = sourceFile.getTypeAlias(descendant.getText());\n preservedTypes.push(descendant.getText());\n if (foundTypeAlias) {\n preserveTypes(foundTypeAlias, preservedTypes, sourceFile, isVerbose);\n }\n }\n }\n });\n }\n\n return typeReferences;\n};\n\n/**\n * Convert an enum to a const object and string literal type\n */\nexport const convertEnumToConstObject = (enumDeclaration: EnumDeclaration) => {\n const enumName = enumDeclaration.getName();\n const members = enumDeclaration.getMembers();\n\n const properties = members.map(member => {\n const name = member.getName();\n const value = member.getValue();\n return `${name}: '${value}'`;\n });\n\n const lowerCaseFirstLetter = enumName[0]?.toLowerCase() + enumName.slice(1);\n const constObjectText = `export const ${lowerCaseFirstLetter} = {\\n ${properties.join(\n \",\\n \"\n )},\\n} as const;\\nexport type ${enumName} = typeof ${lowerCaseFirstLetter}[keyof typeof ${lowerCaseFirstLetter}];`;\n\n return constObjectText;\n};\n\n/**\n * Create a source file from a string\n */\nexport const createSourceFile = (fileContent: string) => {\n const project = new Project({\n compilerOptions: {\n noUnusedLocals: true,\n noUnusedParameters: true,\n },\n });\n\n return project.createSourceFile(\"tmp.ts\", fileContent);\n};\n"]}
|