Skip to content

Commit 65aed0d

Browse files
rustify define env when creating
1 parent 64d0fbc commit 65aed0d

File tree

1 file changed

+37
-44
lines changed

1 file changed

+37
-44
lines changed

packages/next/src/build/swc/index.ts

Lines changed: 37 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -402,11 +402,7 @@ export interface ProjectOptions {
402402
*/
403403
env: Record<string, string>
404404

405-
defineEnv: {
406-
client: Record<string, string>
407-
edge: Record<string, string>
408-
nodejs: Record<string, string>
409-
}
405+
defineEnv: DefineEnv
410406

411407
/**
412408
* Whether to watch the filesystem for file changes.
@@ -419,10 +415,12 @@ export interface ProjectOptions {
419415
serverAddr: string
420416
}
421417

418+
type RustifiedEnv = { name: string; value: string }[]
419+
422420
export interface DefineEnv {
423-
client: Record<string, string>
424-
edge: Record<string, string>
425-
nodejs: Record<string, string>
421+
client: RustifiedEnv
422+
edge: RustifiedEnv
423+
nodejs: RustifiedEnv
426424
}
427425

428426
export function createDefineEnv({
@@ -439,31 +437,30 @@ export function createDefineEnv({
439437
DefineEnvPluginOptions,
440438
'isClient' | 'isNodeOrEdgeCompilation' | 'isEdgeServer' | 'isNodeServer'
441439
>): DefineEnv {
442-
let defineEnv: Record<
443-
'client' | 'edge' | 'nodejs',
444-
Record<string, string>
445-
> = {
446-
client: {},
447-
edge: {},
448-
nodejs: {},
440+
let defineEnv: DefineEnv = {
441+
client: [],
442+
edge: [],
443+
nodejs: [],
449444
}
450445

451446
for (const variant of Object.keys(defineEnv) as (keyof typeof defineEnv)[]) {
452-
defineEnv[variant] = getDefineEnv({
453-
allowedRevalidateHeaderKeys,
454-
clientRouterFilters,
455-
config,
456-
dev,
457-
distDir,
458-
fetchCacheKeyPrefix,
459-
hasRewrites,
460-
isClient: variant === 'client',
461-
isEdgeServer: variant === 'edge',
462-
isNodeOrEdgeCompilation: variant === 'nodejs' || variant === 'edge',
463-
isNodeServer: variant === 'nodejs',
464-
middlewareMatchers,
465-
previewModeId,
466-
})
447+
defineEnv[variant] = rustifyEnv(
448+
getDefineEnv({
449+
allowedRevalidateHeaderKeys,
450+
clientRouterFilters,
451+
config,
452+
dev,
453+
distDir,
454+
fetchCacheKeyPrefix,
455+
hasRewrites,
456+
isClient: variant === 'client',
457+
isEdgeServer: variant === 'edge',
458+
isNodeOrEdgeCompilation: variant === 'nodejs' || variant === 'edge',
459+
isNodeServer: variant === 'nodejs',
460+
middlewareMatchers,
461+
previewModeId,
462+
})
463+
)
467464
}
468465

469466
return defineEnv
@@ -623,6 +620,15 @@ export type WrittenEndpoint =
623620
config: EndpointConfig
624621
}
625622

623+
function rustifyEnv(env: Record<string, string>): RustifiedEnv {
624+
return Object.entries(env)
625+
.filter(([_, value]) => value != null)
626+
.map(([name, value]) => ({
627+
name,
628+
value,
629+
}))
630+
}
631+
626632
// TODO(sokra) Support wasm option.
627633
function bindingToApi(binding: any, _wasm: boolean) {
628634
type NativeFunction<T> = (
@@ -747,15 +753,6 @@ function bindingToApi(binding: any, _wasm: boolean) {
747753
})
748754
}
749755

750-
function rustifyEnv(env: Record<string, string>) {
751-
return Object.entries(env)
752-
.filter(([_, value]) => value != null)
753-
.map(([name, value]) => ({
754-
name,
755-
value,
756-
}))
757-
}
758-
759756
async function rustifyProjectOptions(
760757
options: Partial<ProjectOptions>
761758
): Promise<any> {
@@ -765,11 +762,7 @@ function bindingToApi(binding: any, _wasm: boolean) {
765762
options.nextConfig && (await serializeNextConfig(options.nextConfig)),
766763
jsConfig: options.jsConfig && JSON.stringify(options.jsConfig),
767764
env: options.env && rustifyEnv(options.env),
768-
defineEnv: options.defineEnv && {
769-
client: rustifyEnv(options.defineEnv.client),
770-
edge: rustifyEnv(options.defineEnv.edge),
771-
nodejs: rustifyEnv(options.defineEnv.nodejs),
772-
},
765+
defineEnv: options.defineEnv,
773766
}
774767
}
775768

0 commit comments

Comments
 (0)