@next/codemod 15.0.0-canary.195 → 15.0.0-canary.196
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/upgrade.js +73 -6
- package/package.json +3 -2
package/bin/upgrade.js
CHANGED
|
@@ -1,9 +1,33 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
2
25
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
27
|
};
|
|
5
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
29
|
exports.runUpgrade = runUpgrade;
|
|
30
|
+
const os = __importStar(require("os"));
|
|
7
31
|
const prompts_1 = __importDefault(require("prompts"));
|
|
8
32
|
const fs_1 = __importDefault(require("fs"));
|
|
9
33
|
const semver_1 = __importDefault(require("semver"));
|
|
@@ -15,6 +39,22 @@ const handle_package_1 = require("../lib/handle-package");
|
|
|
15
39
|
const transform_1 = require("./transform");
|
|
16
40
|
const utils_1 = require("../lib/utils");
|
|
17
41
|
const shared_1 = require("./shared");
|
|
42
|
+
const optionalNextjsPackages = [
|
|
43
|
+
'create-next-app',
|
|
44
|
+
'eslint-config-next',
|
|
45
|
+
'@next/bundle-analyzer',
|
|
46
|
+
'@next/codemod',
|
|
47
|
+
'@next/env',
|
|
48
|
+
'@next/eslint-plugin-next',
|
|
49
|
+
'@next/font',
|
|
50
|
+
'@next/mdx',
|
|
51
|
+
'@next/plugin-storybook',
|
|
52
|
+
'@next/polyfill-module',
|
|
53
|
+
'@next/polyfill-nomodule',
|
|
54
|
+
'@next/swc',
|
|
55
|
+
'@next/react-refresh-utils',
|
|
56
|
+
'@next/third-parties',
|
|
57
|
+
];
|
|
18
58
|
/**
|
|
19
59
|
* @param query
|
|
20
60
|
* @example loadHighestNPMVersionMatching("react@^18.3.0 || ^19.0.0") === Promise<"19.0.0">
|
|
@@ -133,6 +173,12 @@ async function runUpgrade(revision, options) {
|
|
|
133
173
|
'react-dom': { version: targetReactVersion, required: true },
|
|
134
174
|
'react-is': { version: targetReactVersion, required: false },
|
|
135
175
|
};
|
|
176
|
+
for (const optionalNextjsPackage of optionalNextjsPackages) {
|
|
177
|
+
versionMapping[optionalNextjsPackage] = {
|
|
178
|
+
version: targetNextVersion,
|
|
179
|
+
required: false,
|
|
180
|
+
};
|
|
181
|
+
}
|
|
136
182
|
if (targetReactVersion.startsWith('19.0.0-canary') ||
|
|
137
183
|
targetReactVersion.startsWith('19.0.0-beta') ||
|
|
138
184
|
targetReactVersion.startsWith('19.0.0-rc')) {
|
|
@@ -196,7 +242,9 @@ async function runUpgrade(revision, options) {
|
|
|
196
242
|
for (const [dep, version] of devDependenciesToInstall) {
|
|
197
243
|
(0, handle_package_1.addPackageDependency)(appPackageJson, dep, version, true);
|
|
198
244
|
}
|
|
199
|
-
fs_1.default.writeFileSync(appPackageJsonPath, JSON.stringify(appPackageJson, null, 2)
|
|
245
|
+
fs_1.default.writeFileSync(appPackageJsonPath, JSON.stringify(appPackageJson, null, 2) +
|
|
246
|
+
// Common IDE formatters would add a newline as well.
|
|
247
|
+
os.EOL);
|
|
200
248
|
(0, handle_package_1.runInstallation)(packageManager);
|
|
201
249
|
for (const codemod of codemods) {
|
|
202
250
|
await (0, transform_1.runTransform)(codemod, process.cwd(), { force: true, verbose });
|
|
@@ -351,18 +399,19 @@ async function suggestReactTypesCodemods() {
|
|
|
351
399
|
return runReactTypesCodemod;
|
|
352
400
|
}
|
|
353
401
|
function writeOverridesField(packageJson, packageManager, overrides) {
|
|
354
|
-
|
|
402
|
+
const entries = Object.entries(overrides);
|
|
403
|
+
if (packageManager === 'npm') {
|
|
355
404
|
if (!packageJson.overrides) {
|
|
356
405
|
packageJson.overrides = {};
|
|
357
406
|
}
|
|
358
|
-
for (const [key, value] of
|
|
407
|
+
for (const [key, value] of entries) {
|
|
359
408
|
packageJson.overrides[key] = value;
|
|
360
409
|
}
|
|
361
410
|
}
|
|
362
411
|
else if (packageManager === 'pnpm') {
|
|
363
412
|
// pnpm supports pnpm.overrides and pnpm.resolutions
|
|
364
413
|
if (packageJson.resolutions) {
|
|
365
|
-
for (const [key, value] of
|
|
414
|
+
for (const [key, value] of entries) {
|
|
366
415
|
packageJson.resolutions[key] = value;
|
|
367
416
|
}
|
|
368
417
|
}
|
|
@@ -373,7 +422,7 @@ function writeOverridesField(packageJson, packageManager, overrides) {
|
|
|
373
422
|
if (!packageJson.pnpm.overrides) {
|
|
374
423
|
packageJson.pnpm.overrides = {};
|
|
375
424
|
}
|
|
376
|
-
for (const [key, value] of
|
|
425
|
+
for (const [key, value] of entries) {
|
|
377
426
|
packageJson.pnpm.overrides[key] = value;
|
|
378
427
|
}
|
|
379
428
|
}
|
|
@@ -382,9 +431,27 @@ function writeOverridesField(packageJson, packageManager, overrides) {
|
|
|
382
431
|
if (!packageJson.resolutions) {
|
|
383
432
|
packageJson.resolutions = {};
|
|
384
433
|
}
|
|
385
|
-
for (const [key, value] of
|
|
434
|
+
for (const [key, value] of entries) {
|
|
386
435
|
packageJson.resolutions[key] = value;
|
|
387
436
|
}
|
|
388
437
|
}
|
|
438
|
+
else if (packageManager === 'bun') {
|
|
439
|
+
// bun supports both overrides and resolutions
|
|
440
|
+
// x-ref: https://bun.sh/docs/install/overrides
|
|
441
|
+
if (packageJson.resolutions) {
|
|
442
|
+
for (const [key, value] of entries) {
|
|
443
|
+
packageJson.resolutions[key] = value;
|
|
444
|
+
}
|
|
445
|
+
}
|
|
446
|
+
else {
|
|
447
|
+
// add overrides field if it's missing and add overrides
|
|
448
|
+
if (!packageJson.overrides) {
|
|
449
|
+
packageJson.overrides = {};
|
|
450
|
+
}
|
|
451
|
+
for (const [key, value] of entries) {
|
|
452
|
+
packageJson.overrides[key] = value;
|
|
453
|
+
}
|
|
454
|
+
}
|
|
455
|
+
}
|
|
389
456
|
}
|
|
390
457
|
//# sourceMappingURL=upgrade.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@next/codemod",
|
|
3
|
-
"version": "15.0.0-canary.
|
|
3
|
+
"version": "15.0.0-canary.196",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -30,7 +30,8 @@
|
|
|
30
30
|
"build": "pnpm tsc -d -p tsconfig.json",
|
|
31
31
|
"prepublishOnly": "cd ../../ && turbo run build",
|
|
32
32
|
"dev": "pnpm tsc -d -w -p tsconfig.json",
|
|
33
|
-
"test": "jest"
|
|
33
|
+
"test": "jest",
|
|
34
|
+
"test:upgrade-fixture": "./scripts/test-upgrade-fixture.sh"
|
|
34
35
|
},
|
|
35
36
|
"bin": "./bin/next-codemod.js",
|
|
36
37
|
"devDependencies": {
|