Skip to content

Commit 2024aa8

Browse files
committed
use cloneCandidate instead of structuredClone
1 parent 0c34d2f commit 2024aa8

File tree

7 files changed

+15
-12
lines changed

7 files changed

+15
-12
lines changed

packages/@tailwindcss-upgrade/src/codemods/template/candidates.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { Scanner } from '@tailwindcss/oxide'
2-
import type { Candidate } from '../../../../tailwindcss/src/candidate'
2+
import { cloneCandidate, type Candidate } from '../../../../tailwindcss/src/candidate'
33
import type { DesignSystem } from '../../../../tailwindcss/src/design-system'
44

55
export async function extractRawCandidates(
@@ -18,7 +18,7 @@ export async function extractRawCandidates(
1818

1919
// Create a basic stripped candidate without variants or important flag
2020
export function baseCandidate<T extends Candidate>(candidate: T) {
21-
let base = structuredClone(candidate)
21+
let base = cloneCandidate(candidate)
2222

2323
base.important = false
2424
base.variants = []

packages/@tailwindcss-upgrade/src/codemods/template/migrate-arbitrary-variants.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { cloneCandidate } from '../../../../tailwindcss/src/candidate'
12
import type { Config } from '../../../../tailwindcss/src/compat/plugin-api'
23
import type { DesignSystem } from '../../../../tailwindcss/src/design-system'
34
import {
@@ -22,7 +23,7 @@ export function migrateArbitraryVariants(
2223

2324
// The below logic makes use of mutation. Since candidates in the
2425
// DesignSystem are cached, we can't mutate them directly.
25-
let candidate = structuredClone(readonlyCandidate) as Writable<typeof readonlyCandidate>
26+
let candidate = cloneCandidate(readonlyCandidate) as Writable<typeof readonlyCandidate>
2627

2728
for (let [variant] of walkVariants(candidate)) {
2829
if (variant.kind === 'compound') continue

packages/@tailwindcss-upgrade/src/codemods/template/migrate-automatic-var-injection.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
import { walk, WalkAction } from '../../../../tailwindcss/src/ast'
2-
import { type Candidate, type Variant } from '../../../../tailwindcss/src/candidate'
2+
import { cloneCandidate, type Candidate, type Variant } from '../../../../tailwindcss/src/candidate'
33
import type { Config } from '../../../../tailwindcss/src/compat/plugin-api'
44
import type { DesignSystem } from '../../../../tailwindcss/src/design-system'
5+
import type { Writable } from '../../../../tailwindcss/src/types'
56
import * as ValueParser from '../../../../tailwindcss/src/value-parser'
67

78
export function migrateAutomaticVarInjection(
@@ -12,7 +13,7 @@ export function migrateAutomaticVarInjection(
1213
for (let readonlyCandidate of designSystem.parseCandidate(rawCandidate)) {
1314
// The below logic makes extended use of mutation. Since candidates in the
1415
// DesignSystem are cached, we can't mutate them directly.
15-
let candidate = structuredClone(readonlyCandidate) as Candidate
16+
let candidate = cloneCandidate(readonlyCandidate) as Writable<Candidate>
1617

1718
let didChange = false
1819

packages/@tailwindcss-upgrade/src/codemods/template/migrate-camelcase-in-named-value.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { cloneCandidate } from '../../../../tailwindcss/src/candidate'
12
import type { Config } from '../../../../tailwindcss/src/compat/plugin-api'
23
import type { DesignSystem } from '../../../../tailwindcss/src/design-system'
34
import * as version from '../../utils/version'
@@ -15,7 +16,7 @@ export function migrateCamelcaseInNamedValue(
1516

1617
for (let candidate of designSystem.parseCandidate(rawCandidate)) {
1718
if (candidate.kind !== 'functional') continue
18-
let clone = structuredClone(candidate)
19+
let clone = cloneCandidate(candidate)
1920
let didChange = false
2021

2122
if (

packages/@tailwindcss-upgrade/src/codemods/template/migrate-legacy-arbitrary-values.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { parseCandidate } from '../../../../tailwindcss/src/candidate'
1+
import { cloneCandidate, parseCandidate } from '../../../../tailwindcss/src/candidate'
22
import type { Config } from '../../../../tailwindcss/src/compat/plugin-api'
33
import type { DesignSystem } from '../../../../tailwindcss/src/design-system'
44
import { segment } from '../../../../tailwindcss/src/utils/segment'
@@ -9,7 +9,7 @@ export function migrateLegacyArbitraryValues(
99
rawCandidate: string,
1010
): string {
1111
for (let candidate of parseCandidate(rawCandidate, designSystem)) {
12-
let clone = structuredClone(candidate)
12+
let clone = cloneCandidate(candidate)
1313
let changed = false
1414

1515
// Convert commas to spaces. E.g.: [auto,1fr] to [auto_1fr]

packages/@tailwindcss-upgrade/src/codemods/template/migrate-legacy-classes.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { __unstable__loadDesignSystem } from '@tailwindcss/node'
22
import path from 'node:path'
33
import url from 'node:url'
4-
import type { Candidate } from '../../../../tailwindcss/src/candidate'
4+
import { cloneCandidate, type Candidate } from '../../../../tailwindcss/src/candidate'
55
import type { Config } from '../../../../tailwindcss/src/compat/plugin-api'
66
import type { DesignSystem } from '../../../../tailwindcss/src/design-system'
77
import { DefaultMap } from '../../../../tailwindcss/src/utils/default-map'
@@ -100,7 +100,7 @@ export async function migrateLegacyClasses(
100100

101101
// Re-apply the variants and important flag from the original candidate.
102102
// E.g.: `hover:blur!` -> `blur` -> `blur-sm` -> `hover:blur-sm!`
103-
let newCandidate = structuredClone(newBaseCandidate) as Candidate
103+
let newCandidate = cloneCandidate(newBaseCandidate) as Candidate
104104
newCandidate.variants = candidate.variants
105105
newCandidate.important = candidate.important
106106

packages/@tailwindcss-upgrade/src/codemods/template/migrate-modernize-arbitrary-values.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { parseCandidate } from '../../../../tailwindcss/src/candidate'
1+
import { cloneCandidate, parseCandidate } from '../../../../tailwindcss/src/candidate'
22
import type { Config } from '../../../../tailwindcss/src/compat/plugin-api'
33
import type { DesignSystem } from '../../../../tailwindcss/src/design-system'
44
import { replaceObject } from '../../../../tailwindcss/src/utils/replace-object'
@@ -10,7 +10,7 @@ export function migrateModernizeArbitraryValues(
1010
rawCandidate: string,
1111
): string {
1212
for (let candidate of parseCandidate(rawCandidate, designSystem)) {
13-
let clone = structuredClone(candidate)
13+
let clone = cloneCandidate(candidate)
1414
let changed = false
1515

1616
for (let [variant] of walkVariants(clone)) {

0 commit comments

Comments
 (0)