@turbo/codemod 1.1.0-canary.3

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.
@@ -0,0 +1,44 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
8
+ var __export = (target, all) => {
9
+ __markAsModule(target);
10
+ for (var name in all)
11
+ __defProp(target, name, { get: all[name], enumerable: true });
12
+ };
13
+ var __reExport = (target, module2, desc) => {
14
+ if (module2 && typeof module2 === "object" || typeof module2 === "function") {
15
+ for (let key of __getOwnPropNames(module2))
16
+ if (!__hasOwnProp.call(target, key) && key !== "default")
17
+ __defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
18
+ }
19
+ return target;
20
+ };
21
+ var __toModule = (module2) => {
22
+ return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
23
+ };
24
+
25
+ // src/runTransform.ts
26
+ __export(exports, {
27
+ runTransform: () => runTransform,
28
+ transformerDirectory: () => transformerDirectory
29
+ });
30
+ var import_path = __toModule(require("path"));
31
+ var transformerDirectory = import_path.default.join(__dirname, "transforms");
32
+ function runTransform({
33
+ files,
34
+ flags,
35
+ transformer
36
+ }) {
37
+ const transformerPath = import_path.default.join(transformerDirectory, `${transformer}.js`);
38
+ return require(transformerPath).default(files, flags);
39
+ }
40
+ // Annotate the CommonJS export names for ESM import in node:
41
+ 0 && (module.exports = {
42
+ runTransform,
43
+ transformerDirectory
44
+ });
@@ -0,0 +1,192 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __defProps = Object.defineProperties;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
8
+ var __getProtoOf = Object.getPrototypeOf;
9
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
10
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
11
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
12
+ var __spreadValues = (a, b) => {
13
+ for (var prop in b || (b = {}))
14
+ if (__hasOwnProp.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ if (__getOwnPropSymbols)
17
+ for (var prop of __getOwnPropSymbols(b)) {
18
+ if (__propIsEnum.call(b, prop))
19
+ __defNormalProp(a, prop, b[prop]);
20
+ }
21
+ return a;
22
+ };
23
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
24
+ var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
25
+ var __objRest = (source, exclude) => {
26
+ var target = {};
27
+ for (var prop in source)
28
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
29
+ target[prop] = source[prop];
30
+ if (source != null && __getOwnPropSymbols)
31
+ for (var prop of __getOwnPropSymbols(source)) {
32
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
33
+ target[prop] = source[prop];
34
+ }
35
+ return target;
36
+ };
37
+ var __export = (target, all) => {
38
+ __markAsModule(target);
39
+ for (var name in all)
40
+ __defProp(target, name, { get: all[name], enumerable: true });
41
+ };
42
+ var __reExport = (target, module2, desc) => {
43
+ if (module2 && typeof module2 === "object" || typeof module2 === "function") {
44
+ for (let key of __getOwnPropNames(module2))
45
+ if (!__hasOwnProp.call(target, key) && key !== "default")
46
+ __defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
47
+ }
48
+ return target;
49
+ };
50
+ var __toModule = (module2) => {
51
+ return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
52
+ };
53
+
54
+ // src/transforms/add-package-manager.ts
55
+ __export(exports, {
56
+ default: () => addPackageManager
57
+ });
58
+ var import_path2 = __toModule(require("path"));
59
+
60
+ // src/getWorkspaceImplementation.ts
61
+ var import_find_up = __toModule(require("find-up"));
62
+ var import_path = __toModule(require("path"));
63
+ var cache = {};
64
+ function getWorkspaceImplementationAndLockFile(cwd) {
65
+ if (cache[cwd]) {
66
+ return cache[cwd];
67
+ }
68
+ const lockFile = import_find_up.default.sync(["yarn.lock", "pnpm-workspace.yaml", "package-lock.json"], {
69
+ cwd
70
+ });
71
+ if (!lockFile) {
72
+ return;
73
+ }
74
+ switch (import_path.default.basename(lockFile)) {
75
+ case "yarn.lock":
76
+ cache[cwd] = {
77
+ implementation: "yarn",
78
+ lockFile
79
+ };
80
+ break;
81
+ case "pnpm-workspace.yaml":
82
+ cache[cwd] = {
83
+ implementation: "pnpm",
84
+ lockFile
85
+ };
86
+ break;
87
+ case "package-lock.json":
88
+ cache[cwd] = {
89
+ implementation: "npm",
90
+ lockFile
91
+ };
92
+ break;
93
+ }
94
+ return cache[cwd];
95
+ }
96
+ function getWorkspaceImplementation(cwd) {
97
+ var _a;
98
+ return (_a = getWorkspaceImplementationAndLockFile(cwd)) == null ? void 0 : _a.implementation;
99
+ }
100
+
101
+ // src/getPackageManagerVersion.ts
102
+ var import_child_process = __toModule(require("child_process"));
103
+ var getPackageManagerVersion = (ws) => {
104
+ switch (ws) {
105
+ case "yarn":
106
+ return (0, import_child_process.execSync)("yarn --version").toString().trim();
107
+ case "pnpm":
108
+ return (0, import_child_process.execSync)("pnpm --version").toString().trim();
109
+ case "npm":
110
+ return (0, import_child_process.execSync)("npm --version").toString().trim();
111
+ default:
112
+ throw new Error(`${ws} is not supported`);
113
+ }
114
+ };
115
+
116
+ // src/transforms/add-package-manager.ts
117
+ var import_fs_extra = __toModule(require("fs-extra"));
118
+ var import_chalk = __toModule(require("chalk"));
119
+ function addPackageManager(files, flags) {
120
+ if (files.length === 1) {
121
+ const dir = files[0];
122
+ const root = import_path2.default.resolve(process.cwd(), dir);
123
+ console.log(`Set "packageManager" key in root "package.json" file...`);
124
+ const packageManager = getWorkspaceImplementation(root);
125
+ if (!packageManager) {
126
+ error(`Unable to determine package manager for ${dir}`);
127
+ process.exit(1);
128
+ }
129
+ const version = getPackageManagerVersion(packageManager);
130
+ const pkgManagerString = `${packageManager}@${version}`;
131
+ const rootPackageJsonPath = import_path2.default.join(root, "package.json");
132
+ const rootPackageJson = import_fs_extra.default.readJsonSync(rootPackageJsonPath);
133
+ const allWorkspaces = [
134
+ {
135
+ name: "package.json",
136
+ path: root,
137
+ packageJson: __spreadProps(__spreadValues({}, rootPackageJson), {
138
+ packageJsonPath: rootPackageJsonPath
139
+ })
140
+ }
141
+ ];
142
+ let modifiedCount = 0;
143
+ let skippedCount = 0;
144
+ let errorCount = 0;
145
+ let unmodifiedCount = allWorkspaces.length;
146
+ console.log(`Found ${unmodifiedCount} files for modification...`);
147
+ for (const workspace of allWorkspaces) {
148
+ const _a = workspace.packageJson, { packageJsonPath } = _a, pkgJson = __objRest(_a, ["packageJsonPath"]);
149
+ const relPackageJsonPath = import_path2.default.relative(root, packageJsonPath);
150
+ try {
151
+ if (pkgJson.packageManager === pkgManagerString) {
152
+ skip(relPackageJsonPath, import_chalk.default.dim(`(already set to ${pkgManagerString})`));
153
+ } else {
154
+ const newJson = __spreadProps(__spreadValues({}, pkgJson), { packageManager: pkgManagerString });
155
+ if (flags.print) {
156
+ console.log(JSON.stringify(newJson, null, 2));
157
+ }
158
+ if (!flags.dry) {
159
+ import_fs_extra.default.writeJsonSync(packageJsonPath, newJson, {
160
+ spaces: 2
161
+ });
162
+ ok(relPackageJsonPath);
163
+ modifiedCount++;
164
+ unmodifiedCount--;
165
+ } else {
166
+ skip(relPackageJsonPath, import_chalk.default.dim(`(dry run)`));
167
+ }
168
+ }
169
+ } catch (err) {
170
+ console.error(error);
171
+ error(relPackageJsonPath);
172
+ }
173
+ }
174
+ console.log("All done.");
175
+ console.log("Results:");
176
+ console.log(import_chalk.default.red(`${errorCount} errors`));
177
+ console.log(import_chalk.default.yellow(`${skippedCount} skipped`));
178
+ console.log(import_chalk.default.yellow(`${unmodifiedCount} unmodified`));
179
+ console.log(import_chalk.default.green(`${modifiedCount} modified`));
180
+ }
181
+ }
182
+ function skip(...args) {
183
+ console.log(import_chalk.default.yellow.inverse(` SKIP `), ...args);
184
+ }
185
+ function error(...args) {
186
+ console.log(import_chalk.default.red.inverse(` ERROR `), ...args);
187
+ }
188
+ function ok(...args) {
189
+ console.log(import_chalk.default.green.inverse(` OK `), ...args);
190
+ }
191
+ // Annotate the CommonJS export names for ESM import in node:
192
+ 0 && (module.exports = {});
@@ -0,0 +1,89 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
9
+ var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
10
+ var __objRest = (source, exclude) => {
11
+ var target = {};
12
+ for (var prop in source)
13
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
14
+ target[prop] = source[prop];
15
+ if (source != null && __getOwnPropSymbols)
16
+ for (var prop of __getOwnPropSymbols(source)) {
17
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
18
+ target[prop] = source[prop];
19
+ }
20
+ return target;
21
+ };
22
+ var __export = (target, all) => {
23
+ __markAsModule(target);
24
+ for (var name in all)
25
+ __defProp(target, name, { get: all[name], enumerable: true });
26
+ };
27
+ var __reExport = (target, module2, desc) => {
28
+ if (module2 && typeof module2 === "object" || typeof module2 === "function") {
29
+ for (let key of __getOwnPropNames(module2))
30
+ if (!__hasOwnProp.call(target, key) && key !== "default")
31
+ __defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
32
+ }
33
+ return target;
34
+ };
35
+ var __toModule = (module2) => {
36
+ return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
37
+ };
38
+
39
+ // src/transforms/create-turbo-config.ts
40
+ __export(exports, {
41
+ default: () => createTurboConfig
42
+ });
43
+ var import_fs_extra = __toModule(require("fs-extra"));
44
+ var import_path = __toModule(require("path"));
45
+ var import_chalk = __toModule(require("chalk"));
46
+ function createTurboConfig(files, flags) {
47
+ if (files.length === 1) {
48
+ const dir = files[0];
49
+ const root = import_path.default.resolve(process.cwd(), dir);
50
+ console.log(`Migrating package.json "turbo" key to "turbo.json" file...`);
51
+ const turboConfigPath = import_path.default.join(root, "turbo.json");
52
+ const rootPackageJsonPath = import_path.default.join(root, "package.json");
53
+ if (!import_fs_extra.default.existsSync(rootPackageJsonPath)) {
54
+ error(`No package.json found at ${root}. Is the path correct?`);
55
+ process.exit(1);
56
+ }
57
+ const rootPackageJson = import_fs_extra.default.readJsonSync(rootPackageJsonPath);
58
+ if (import_fs_extra.default.existsSync(turboConfigPath)) {
59
+ skip("turbo.json already exists");
60
+ return;
61
+ }
62
+ if (rootPackageJson.hasOwnProperty("turbo")) {
63
+ const _a = rootPackageJson, { turbo: turboConfig } = _a, remainingPkgJson = __objRest(_a, ["turbo"]);
64
+ if (flags.dry) {
65
+ skip("Skipping writing turbo.json (dry run)");
66
+ skip('Skipping deleting "turbo" key from package.json (dry run)');
67
+ } else {
68
+ console.log("Writing turbo.json");
69
+ import_fs_extra.default.writeJsonSync(turboConfigPath, turboConfig, { spaces: 2 });
70
+ console.log('Removing "turbo" key from package.json');
71
+ import_fs_extra.default.writeJsonSync(rootPackageJsonPath, remainingPkgJson, { spaces: 2 });
72
+ }
73
+ } else {
74
+ skip('"turbo" key does not exist in package.json');
75
+ }
76
+ ok("Finished");
77
+ }
78
+ }
79
+ function skip(...args) {
80
+ console.log(import_chalk.default.yellow.inverse(` SKIP `), ...args);
81
+ }
82
+ function error(...args) {
83
+ console.log(import_chalk.default.red.inverse(` ERROR `), ...args);
84
+ }
85
+ function ok(...args) {
86
+ console.log(import_chalk.default.green.inverse(` OK `), ...args);
87
+ }
88
+ // Annotate the CommonJS export names for ESM import in node:
89
+ 0 && (module.exports = {});
package/dist/types.js ADDED
@@ -0,0 +1,5 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
3
+
4
+ // src/types.ts
5
+ __markAsModule(exports);
package/package.json ADDED
@@ -0,0 +1,56 @@
1
+ {
2
+ "name": "@turbo/codemod",
3
+ "version": "1.1.0-canary.3",
4
+ "description": "Provides Codemod transformations to help upgrade your Turborepo codebase when a feature is deprecated.",
5
+ "homepage": "https://turborepo.org",
6
+ "license": "MPL-2.0",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "https://github.com/vercel/turborepo",
10
+ "directory": "turbo-codemod"
11
+ },
12
+ "bugs": {
13
+ "url": "https://github.com/vercel/turborepo/issues"
14
+ },
15
+ "bin": "dist/index.js",
16
+ "scripts": {
17
+ "build": "tsup src/*.ts src/transforms/*.ts --format cjs",
18
+ "test": "jest",
19
+ "lint": "eslint src/**/*.ts"
20
+ },
21
+ "dependencies": {
22
+ "chalk": "2.4.2",
23
+ "execa": "5.0.0",
24
+ "find-up": "4.1.0",
25
+ "fs-extra": "^10.0.0",
26
+ "gradient-string": "^2.0.0",
27
+ "inquirer": "^8.0.0",
28
+ "is-git-clean": "^1.1.0",
29
+ "meow": "^7.1.1",
30
+ "ora": "4.0.4",
31
+ "rimraf": "^3.0.2",
32
+ "semver": "^7.3.5",
33
+ "update-check": "^1.5.4"
34
+ },
35
+ "devDependencies": {
36
+ "@types/chalk-animation": "^1.6.0",
37
+ "@types/fs-extra": "^9.0.13",
38
+ "@types/gradient-string": "^1.1.2",
39
+ "@types/inquirer": "^7.3.1",
40
+ "@types/jest": "^27.4.0",
41
+ "@types/node": "^16.11.12",
42
+ "@types/semver": "^7.3.9",
43
+ "jest": "^27.4.3",
44
+ "semver": "^7.3.5",
45
+ "strip-ansi": "^7.0.1",
46
+ "ts-jest": "^27.1.1",
47
+ "tsup": "^5.10.3",
48
+ "typescript": "^4.5.3"
49
+ },
50
+ "files": [
51
+ "dist"
52
+ ],
53
+ "publishConfig": {
54
+ "access": "public"
55
+ }
56
+ }