Skip to content

Commit ff07ff2

Browse files
authoredMar 19, 2024
chore(codegen): refactor codegen cli group to use typegen cli group (#6051)
1 parent 2826c46 commit ff07ff2

File tree

7 files changed

+36
-37
lines changed

7 files changed

+36
-37
lines changed
 

‎packages/@sanity/codegen/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
# @sanity/codegen
22

3-
Codegen toolkit for Sanity.io. This package is currently in an experimental state, and subject to change.
3+
Codegen toolkit for Sanity.io, used to generate Typescript types for a Sanity Schema & GROQ queries. This package is currently in an experimental state, and subject to change.

‎packages/sanity/package.config.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -44,10 +44,10 @@ export default defineConfig({
4444
require: './lib/_internal/cli/threads/extractSchema.js',
4545
default: './lib/_internal/cli/threads/extractSchema.js',
4646
},
47-
'./_internal/cli/threads/codegenGenerateTypes': {
48-
source: './src/_internal/cli/threads/codegenGenerateTypes.ts',
49-
require: './lib/_internal/cli/threads/codegenGenerateTypes.js',
50-
default: './lib/_internal/cli/threads/codegenGenerateTypes.js',
47+
'./_internal/cli/threads/typegenGenerate': {
48+
source: './src/_internal/cli/threads/typegenGenerate.ts',
49+
require: './lib/_internal/cli/threads/typegenGenerate.js',
50+
default: './lib/_internal/cli/threads/typegenGenerate.js',
5151
},
5252
}),
5353

‎packages/sanity/src/_internal/cli/actions/codegen/generateTypesAction.ts renamed to ‎packages/sanity/src/_internal/cli/actions/typegen/generateAction.ts

+13-14
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,17 @@ import readPkgUp from 'read-pkg-up'
77
import {Worker} from 'worker_threads'
88

99
import {
10-
type CodegenGenerateTypesWorkerData,
11-
type CodegenGenerateTypesWorkerMessage,
12-
} from '../../threads/codegenGenerateTypes'
13-
import {TypesGeneratedTrace} from './generateTypes.telemetry'
10+
type TypegenGenerateTypesWorkerData,
11+
type TypegenGenerateTypesWorkerMessage,
12+
} from '../../threads/typegenGenerate'
13+
import {TypesGeneratedTrace} from './generate.telemetry'
1414

15-
export interface CodegenGenerateTypesCommandFlags {
15+
export interface TypegenGenerateTypesCommandFlags {
1616
configPath?: string
1717
}
1818

19-
export default async function codegenGenerateAction(
20-
args: CliCommandArguments<CodegenGenerateTypesCommandFlags>,
19+
export default async function typegenGenerateAction(
20+
args: CliCommandArguments<TypegenGenerateTypesCommandFlags>,
2121
context: CliCommandContext,
2222
): Promise<void> {
2323
const flags = args.extOptions
@@ -26,7 +26,7 @@ export default async function codegenGenerateAction(
2626
const trace = telemetry.trace(TypesGeneratedTrace)
2727
trace.start()
2828

29-
const codegenConfig = await readConfig(flags.configPath || 'sanity-codegen.json')
29+
const codegenConfig = await readConfig(flags.configPath || 'sanity-typegen.json')
3030

3131
const rootPkgPath = readPkgUp.sync({cwd: __dirname})?.path
3232
if (!rootPkgPath) {
@@ -39,7 +39,7 @@ export default async function codegenGenerateAction(
3939
'_internal',
4040
'cli',
4141
'threads',
42-
'codegenGenerateTypes.js',
42+
'typegenGenerate.js',
4343
)
4444

4545
const spinner = output.spinner({}).start('Generating types')
@@ -49,7 +49,7 @@ export default async function codegenGenerateAction(
4949
workDir,
5050
schemaPath: codegenConfig.schema,
5151
searchPath: codegenConfig.path,
52-
} satisfies CodegenGenerateTypesWorkerData,
52+
} satisfies TypegenGenerateTypesWorkerData,
5353
// eslint-disable-next-line no-process-env
5454
env: process.env,
5555
})
@@ -60,7 +60,7 @@ export default async function codegenGenerateAction(
6060
constants.O_TRUNC | constants.O_CREAT | constants.O_WRONLY,
6161
)
6262

63-
typeFile.write('// This file is generated by `sanity codegen generate`\n')
63+
typeFile.write('// This file is generated by `sanity typegen generate`\n')
6464

6565
const stats = {
6666
files: 0,
@@ -72,11 +72,10 @@ export default async function codegenGenerateAction(
7272
}
7373

7474
await new Promise<void>((resolve, reject) => {
75-
worker.addListener('message', (msg: CodegenGenerateTypesWorkerMessage) => {
75+
worker.addListener('message', (msg: TypegenGenerateTypesWorkerMessage) => {
7676
if (msg.type === 'error') {
77-
trace.error(msg.error)
78-
7977
if (msg.fatal) {
78+
trace.error(msg.error)
8079
reject(msg.error)
8180
return
8281
}

‎packages/sanity/src/_internal/cli/commands/index.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import enableBackupCommand from './backup/enableBackupCommand'
77
import listBackupCommand from './backup/listBackupCommand'
88
import buildCommand from './build/buildCommand'
99
import checkCommand from './check/checkCommand'
10-
import generateTypesCodegenCommand from './codegen/generateTypesCommand'
1110
import configCheckCommand from './config/configCheckCommand'
1211
import addCorsOriginCommand from './cors/addCorsOriginCommand'
1312
import corsGroup from './cors/corsGroup'
@@ -51,6 +50,7 @@ import extractSchemaCommand from './schema/extractSchemaCommand'
5150
import schemaGroup from './schema/schemaGroup'
5251
import validateSchemaCommand from './schema/validateSchemaCommand'
5352
import startCommand from './start/startCommand'
53+
import generateTypegenCommand from './typegen/generateTypesCommand'
5454
import uninstallCommand from './uninstall/uninstallCommand'
5555
import inviteUserCommand from './users/inviteUserCommand'
5656
import listUsersCommand from './users/listUsersCommand'
@@ -98,7 +98,7 @@ const commands: (CliCommandDefinition | CliCommandGroupDefinition)[] = [
9898
queryDocumentsCommand,
9999
deleteDocumentsCommand,
100100
createDocumentsCommand,
101-
generateTypesCodegenCommand,
101+
generateTypegenCommand,
102102
validateDocumentsCommand,
103103
graphqlGroup,
104104
listGraphQLAPIsCommand,
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import {type CliCommandDefinition} from '@sanity/cli'
22

3-
const description = 'Generates codegen'
3+
const description = 'Generates types'
44

55
const helpText = `
66
**Note**: This command is experimental and subject to change.
@@ -11,10 +11,10 @@ Options
1111
1212
Examples
1313
# Generate types from a schema, generate schema with "sanity schema extract" first.
14-
sanity codegen generate-types
14+
sanity typegen generate
1515
1616
Configuration
17-
The codegen command uses the following configuration properties from sanity-codegen.json:
17+
The command uses the following configuration properties from sanity-typegen.json:
1818
{
1919
"path": "'./src/**/*.{ts,tsx,js,jsx}'" // glob pattern to your typescript files
2020
"schema": "schema.json", // path to your schema file, generated with 'sanity schema extract' command
@@ -24,18 +24,18 @@ The codegen command uses the following configuration properties from sanity-code
2424
The listed properties are the default values, and can be overridden in the configuration file.
2525
`
2626

27-
const generateTypesCodegenCommand: CliCommandDefinition = {
28-
name: 'generate-types',
29-
group: 'codegen',
27+
const generateTypegenCommand: CliCommandDefinition = {
28+
name: 'generate',
29+
group: 'typegen',
3030
signature: '',
3131
description,
3232
helpText,
3333
hideFromHelp: true,
3434
action: async (args, context) => {
35-
const mod = await import('../../actions/codegen/generateTypesAction')
35+
const mod = await import('../../actions/typegen/generateAction')
3636

3737
return mod.default(args, context)
3838
},
3939
} satisfies CliCommandDefinition
4040

41-
export default generateTypesCodegenCommand
41+
export default generateTypegenCommand

‎packages/sanity/src/_internal/cli/threads/codegenGenerateTypes.ts renamed to ‎packages/sanity/src/_internal/cli/threads/typegenGenerate.ts

+8-8
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,14 @@ import {isMainThread, parentPort, workerData as _workerData} from 'worker_thread
1111

1212
const $info = createDebug('sanity:codegen:generate:info')
1313

14-
export interface CodegenGenerateTypesWorkerData {
14+
export interface TypegenGenerateTypesWorkerData {
1515
workDir: string
1616
workspaceName?: string
1717
schemaPath: string
1818
searchPath: string | string[]
1919
}
2020

21-
export type CodegenGenerateTypesWorkerMessage =
21+
export type TypegenGenerateTypesWorkerMessage =
2222
| {
2323
type: 'error'
2424
error: Error
@@ -50,7 +50,7 @@ if (isMainThread || !parentPort) {
5050
throw new Error('This module must be run as a worker thread')
5151
}
5252

53-
const opts = _workerData as CodegenGenerateTypesWorkerData
53+
const opts = _workerData as TypegenGenerateTypesWorkerData
5454

5555
registerBabel()
5656

@@ -69,7 +69,7 @@ async function main() {
6969
schema: schemaTypes,
7070
filename: 'schema.json',
7171
length: schema.length,
72-
} satisfies CodegenGenerateTypesWorkerMessage)
72+
} satisfies TypegenGenerateTypesWorkerMessage)
7373

7474
const queries = findQueriesInPath({
7575
path: opts.searchPath,
@@ -83,7 +83,7 @@ async function main() {
8383
error: result.error,
8484
fatal: false,
8585
filename: result.filename,
86-
} satisfies CodegenGenerateTypesWorkerMessage)
86+
} satisfies TypegenGenerateTypesWorkerMessage)
8787
continue
8888
}
8989
$info(`Processing ${result.queries.length} queries in "${result.filename}"...`)
@@ -112,7 +112,7 @@ async function main() {
112112
),
113113
fatal: false,
114114
query,
115-
} satisfies CodegenGenerateTypesWorkerMessage)
115+
} satisfies TypegenGenerateTypesWorkerMessage)
116116
}
117117
}
118118

@@ -122,13 +122,13 @@ async function main() {
122122
type: 'types',
123123
types: fileQueryTypes,
124124
filename: result.filename,
125-
} satisfies CodegenGenerateTypesWorkerMessage)
125+
} satisfies TypegenGenerateTypesWorkerMessage)
126126
}
127127
}
128128

129129
parentPort?.postMessage({
130130
type: 'complete',
131-
} satisfies CodegenGenerateTypesWorkerMessage)
131+
} satisfies TypegenGenerateTypesWorkerMessage)
132132
}
133133

134134
function countUnknownTypes(typeNode: TypeNode): number {

0 commit comments

Comments
 (0)
Please sign in to comment.