Skip to content

Commit 5030c9c

Browse files
authored
feat: integrate lodash for string case transformations (#4)
Add lodash and its type definitions to improve string manipulation in the codebase. Replace manual string case transformations with lodash utility methods like upperFirst, camelCase, and kebabCase for more consistent and maintainable code.
1 parent 4cd9738 commit 5030c9c

File tree

4 files changed

+38
-15
lines changed

4 files changed

+38
-15
lines changed

package.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343
"packageManager": "pnpm@10.4.1",
4444
"devDependencies": {
4545
"@types/figlet": "^1.7.0",
46+
"@types/lodash": "^4.17.20",
4647
"@types/node": "^24.0.10",
4748
"bun": "^1.2.18",
4849
"tsx": "^4.20.3",
@@ -53,7 +54,8 @@
5354
"commander": "^14.0.0",
5455
"consola": "^3.4.2",
5556
"figlet": "^1.8.1",
56-
"graphql": "^16.11.0"
57+
"graphql": "^16.11.0",
58+
"lodash": "^4.17.21"
5759
},
5860
"pnpm": {
5961
"onlyBuiltDependencies": [

pnpm-lock.yaml

Lines changed: 16 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/commands/parse/parse.command.ts

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import {
1919
generateFieldDefinition,
2020
generateTypeDefinition
2121
} from '../../utils/graphql-parse.utils'
22+
import _ from 'lodash'
2223

2324
/**
2425
* Main execution function for the parse command.
@@ -34,15 +35,12 @@ export default async function execute(
3435
logger.start('Starting schema parsing...')
3536
logger.debug('Args =', args)
3637

37-
const serviceNameCapitalized = `${
38-
args.serviceName.charAt(0).toUpperCase() + args.serviceName.slice(1)
39-
}`
40-
const namespaceCapitalized = `${
41-
args.namespace.charAt(0).toUpperCase() + args.namespace.slice(1)
42-
}`
38+
const serviceNameCapitalized = _.upperFirst(_.camelCase(args.serviceName))
39+
const namespaceCapitalized = _.upperFirst(_.camelCase(args.namespace))
40+
4341
const prefix = `${namespaceCapitalized}${serviceNameCapitalized}__`
4442

45-
const finalSchemaFile = args.outputFile ?? `${args.serviceName}-schema.graphql`
43+
const finalSchemaFile = args.outputFile ?? `${_.kebabCase(prefix)}-schema.graphql`
4644

4745
// Read all schema files from the specified directory
4846
const schemaDirectory = args.directory
@@ -207,37 +205,43 @@ ${
207205
${
208206
mutationDefinitions.length > 0
209207
? `type ${namespaceCapitalized}Mutations {
210-
${args.serviceName}: ${namespaceCapitalized}${serviceNameCapitalized}Mutations!
208+
${_.camelCase(
209+
args.serviceName
210+
)}: ${namespaceCapitalized}${serviceNameCapitalized}Mutations!
211211
}`
212212
: ''
213213
}
214214
215215
type ${namespaceCapitalized}Queries {
216-
${args.serviceName}: ${namespaceCapitalized}${serviceNameCapitalized}Queries!
216+
${_.camelCase(
217+
args.serviceName
218+
)}: ${namespaceCapitalized}${serviceNameCapitalized}Queries!
217219
}
218220
${
219221
subscriptionDefinitions.length > 0
220222
? `type ${namespaceCapitalized}Subscriptions {
221-
${args.serviceName}: ${namespaceCapitalized}${serviceNameCapitalized}Subscriptions!
223+
${_.camelCase(
224+
args.serviceName
225+
)}: ${namespaceCapitalized}${serviceNameCapitalized}Subscriptions!
222226
}`
223227
: ''
224228
}
225229
${
226230
mutationDefinitions.length > 0
227231
? `type Mutation {
228-
${args.namespace}: ${namespaceCapitalized}Mutations!
232+
${_.camelCase(args.namespace)}: ${namespaceCapitalized}Mutations!
229233
}`
230234
: ''
231235
}
232236
233237
type Query {
234-
${args.namespace}: ${namespaceCapitalized}Queries!
238+
${_.camelCase(args.namespace)}: ${namespaceCapitalized}Queries!
235239
}
236240
237241
${
238242
subscriptionDefinitions.length > 0
239243
? `type Subscription {
240-
${args.namespace}: ${namespaceCapitalized}Subscriptions!
244+
${_.camelCase(args.namespace)}: ${namespaceCapitalized}Subscriptions!
241245
}`
242246
: ''
243247
}

src/index.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
import { Command } from 'commander'
22
import figlet from 'figlet'
3+
import bigFont from 'figlet/importable-fonts/Big'
4+
import _ from 'lodash'
35
import { version as packageVersion } from '../package.json'
46
import parseCommand from './commands/parse/parse.command'
57
import { appLogger, ConsolaLogLevel } from './utils/logger.utils'
6-
import bigFont from 'figlet/importable-fonts/Big'
78

89
figlet.parseFont('Big', bigFont)
910

0 commit comments

Comments
 (0)