Skip to content

Commit 98a756c

Browse files
authored
fix(drizzle): use dynamic import for typescript to avoid dependency in production (#15545)
Fixes #15542
1 parent de43402 commit 98a756c

6 files changed

Lines changed: 15 additions & 13 deletions

File tree

packages/drizzle/src/utilities/blocksToJsonMigrator.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import type {
55
PayloadRequest,
66
SanitizedConfig,
77
} from 'payload'
8+
import type tsTypes from 'typescript'
89

910
import { existsSync, mkdirSync, readdirSync, readFileSync, rmSync, writeFileSync } from 'fs'
1011
import path from 'path'
@@ -16,7 +17,6 @@ import {
1617
} from 'payload'
1718
import { findConfig } from 'payload/node'
1819
import { fieldShouldBeLocalized } from 'payload/shared'
19-
import * as ts from 'typescript'
2020

2121
import type {
2222
BlocksToJsonBlockToMigrate,
@@ -640,6 +640,8 @@ class BlocksToJsonMigratorImpl implements BlocksToJsonMigrator {
640640

641641
const configFile = readFileSync(configPath, 'utf-8')
642642

643+
const ts = await dynamicImport<typeof tsTypes>('typescript')
644+
643645
const source = ts.createSourceFile(configPath, configFile, ts.ScriptTarget.ESNext)
644646

645647
let hadChanges = false
@@ -648,7 +650,7 @@ class BlocksToJsonMigratorImpl implements BlocksToJsonMigrator {
648650
(ctx) => (sourceFile) => {
649651
const factory = ctx.factory
650652

651-
const visit: ts.Visitor = (node) => {
653+
const visit: tsTypes.Visitor = (node) => {
652654
if (
653655
ts.isPropertyAssignment(node) &&
654656
ts.isIdentifier(node.name) &&
@@ -691,7 +693,7 @@ class BlocksToJsonMigratorImpl implements BlocksToJsonMigrator {
691693
return ts.visitEachChild(node, visit, ctx)
692694
}
693695

694-
return ts.visitNode(sourceFile, visit) as ts.SourceFile
696+
return ts.visitNode(sourceFile, visit) as tsTypes.SourceFile
695697
},
696698
])
697699

test/database/migrate-to-blocks-as-json/migrations/20260120_212317.json renamed to test/database/migrate-to-blocks-as-json/migrations/20260206_195134.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3258,6 +3258,6 @@
32583258
"tables": {},
32593259
"columns": {}
32603260
},
3261-
"id": "39069bc5-759a-4d14-a396-7b9f39d5a708",
3261+
"id": "5d4b9fcf-c3d7-4a4e-ae74-5b99ec663bbc",
32623262
"prevId": "00000000-0000-0000-0000-000000000000"
32633263
}

test/database/migrate-to-blocks-as-json/migrations/20260120_212317.ts renamed to test/database/migrate-to-blocks-as-json/migrations/20260206_195134.ts

File renamed without changes.

test/database/migrate-to-blocks-as-json/migrations/20260120_212318_blocks_as_json.json renamed to test/database/migrate-to-blocks-as-json/migrations/20260206_195135_blocks_as_json.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1815,6 +1815,6 @@
18151815
"tables": {},
18161816
"columns": {}
18171817
},
1818-
"id": "6cd6e7d5-cc48-4a34-bcaf-d9d879c69d23",
1818+
"id": "6f0c455b-f682-4b05-8e76-d80e382d5926",
18191819
"prevId": "00000000-0000-0000-0000-000000000000"
18201820
}

test/database/migrate-to-blocks-as-json/migrations/20260120_212318_blocks_as_json.ts renamed to test/database/migrate-to-blocks-as-json/migrations/20260206_195135_blocks_as_json.ts

File renamed without changes.
Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
1-
import * as migration_20260120_212317 from './20260120_212317.js'
2-
import * as migration_20260120_212318_blocks_as_json from './20260120_212318_blocks_as_json.js'
1+
import * as migration_20260206_195134 from './20260206_195134.js'
2+
import * as migration_20260206_195135_blocks_as_json from './20260206_195135_blocks_as_json.js'
33

44
export const migrations = [
55
{
6-
up: migration_20260120_212317.up,
7-
down: migration_20260120_212317.down,
8-
name: '20260120_212317',
6+
up: migration_20260206_195134.up,
7+
down: migration_20260206_195134.down,
8+
name: '20260206_195134',
99
},
1010
{
11-
up: migration_20260120_212318_blocks_as_json.up,
12-
down: migration_20260120_212318_blocks_as_json.down,
13-
name: '20260120_212318_blocks_as_json',
11+
up: migration_20260206_195135_blocks_as_json.up,
12+
down: migration_20260206_195135_blocks_as_json.down,
13+
name: '20260206_195135_blocks_as_json',
1414
},
1515
]

0 commit comments

Comments
 (0)