Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .changeset/pr-1426.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<!-- auto-generated -->
---
'@sanity/cli': patch
---

fix(dev): align dev server typegen defaults with `sanity typegen generate`
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import path from 'node:path'

import {CLITelemetryStore} from '@sanity/cli-core'
import {createMockHttpServer, createMockWatcher} from '@sanity/cli-test'
import {configDefinition} from '@sanity/codegen'
import {afterEach, beforeEach, describe, expect, it, vi} from 'vitest'

import {sanityTypegenPlugin} from '../plugin-typegen.js'
Expand Down Expand Up @@ -272,7 +273,7 @@ describe('sanityTypegenPlugin', () => {
})
})

it('applies default config values', async () => {
it('applies the same default config values as `sanity typegen generate`', async () => {
vi.useRealTimers()

const plugin = sanityTypegenPlugin({
Expand All @@ -288,12 +289,7 @@ describe('sanityTypegenPlugin', () => {
await buildEnd()

expect(runTypegenGenerate).toHaveBeenCalledWith({
config: expect.objectContaining({
formatGeneratedCode: false,
generates: 'sanity.types.ts',
overloadClientMethods: false,
schema: 'schema.json',
}),
config: configDefinition.parse({}),
workDir: TEST_PROJECT_DIR,
})
})
Expand Down
18 changes: 4 additions & 14 deletions packages/@sanity/cli/src/server/vite/plugin-typegen.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import path from 'node:path'
import {CLITelemetryStore} from '@sanity/cli-core'
import {logSymbols} from '@sanity/cli-core/ux'
import {
configDefinition,
type GenerationResult,
runTypegenGenerate,
type TypeGenConfig,
Expand All @@ -18,12 +19,6 @@ import {type Plugin} from 'vite'

import {toForwardSlashes} from '../../util/toForwardSlashes.js'

/**
* Default glob patterns to watch for query file changes.
* Covers common source directory naming conventions.
*/
const DEFAULT_QUERY_PATTERNS = ['./src/**/*.{ts,tsx,js,jsx}', './app/**/*.{ts,tsx,js,jsx}']

/** Default debounce delay in milliseconds */
const DEFAULT_DEBOUNCE_MS = 1000

Expand Down Expand Up @@ -85,14 +80,9 @@ interface TypegenPluginOptions {
export function sanityTypegenPlugin(options: TypegenPluginOptions): Plugin {
const {config: inputConfig, output = console, telemetryLogger, workDir} = options

// Apply defaults to config
const config: TypeGenConfig = {
formatGeneratedCode: inputConfig.formatGeneratedCode ?? false,
generates: inputConfig.generates ?? 'sanity.types.ts',
overloadClientMethods: inputConfig.overloadClientMethods ?? false,
path: inputConfig.path ?? DEFAULT_QUERY_PATTERNS,
schema: inputConfig.schema ?? 'schema.json',
}
// Apply defaults through the same schema as `sanity typegen generate`,
// so watch mode and manual generation produce identical output
const config: TypeGenConfig = configDefinition.parse(inputConfig)

// Build query patterns from config
const queryPatterns = Array.isArray(config.path) ? config.path : [config.path]
Expand Down
Loading