From 49e517e976f2585a66fe56e90565a4e77f30c08f Mon Sep 17 00:00:00 2001 From: Corfitz Date: Tue, 28 May 2024 13:11:33 +0200 Subject: [PATCH 01/24] feat: adding rename-packages script --- .scripts/rename-packages.ts | 55 ++++++++++++++++++++++++++++++++++++ bun.lockb | Bin 953928 -> 953800 bytes package.json | 4 ++- 3 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 .scripts/rename-packages.ts diff --git a/.scripts/rename-packages.ts b/.scripts/rename-packages.ts new file mode 100644 index 00000000..e4162e9f --- /dev/null +++ b/.scripts/rename-packages.ts @@ -0,0 +1,55 @@ +import * as fs from 'fs'; +import * as path from 'path'; + +import yargs from 'yargs'; +import { hideBin } from 'yargs/helpers'; + +// ------------------------------------------------------------------ + +// Parse command line arguments +const argv = yargs(hideBin(process.argv)).option('name', { + alias: 'n', + type: 'string', + demandOption: true, + description: 'The new namespace for the packages', +}).argv; + +// @ts-ignore - argv is typed to maybe return a promise, but it doesn't +const newNamespace = argv.name; + +// ------------------------------------------------------------------ + +// Function to recursively find package.json files and update the name +function updateNamespace(dir: string): void { + const files = fs.readdirSync(dir); + + // Iterate over each file in the directory + files.forEach((file) => { + const fullPath = path.join(dir, file); + + if (fs.lstatSync(fullPath).isDirectory()) { + // Skip node_modules directory + if (file !== 'node_modules') { + updateNamespace(fullPath); + } + } else if (file === 'package.json') { + const packageJson = JSON.parse(fs.readFileSync(fullPath, 'utf8')); + if (packageJson.name) { + // Split the name by the slash + const parts = packageJson.name.split('/'); + if (parts.length === 2) { + // Update the first part of the name + parts[0] = newNamespace; + packageJson.name = parts.join('/'); + fs.writeFileSync( + fullPath, + JSON.stringify(packageJson, null, 2) + '\n', + ); + console.log(`Updated name in ${fullPath} to ${packageJson.name}`); + } + } + } + }); +} + +updateNamespace(process.cwd()); diff --git a/bun.lockb b/bun.lockb index 3094540cacc22009e66f6cd28434e0bbadf2efdf..c3a6a4e22462e033da621a13aa6431a341af76ac 100755 GIT binary patch delta 119407 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
m*xo;TwQsO2No_>Z$Edzkg#7hrM2|x) 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 DbPQGT diff --git a/package.json b/package.json index b6645ea9..fd512ef0 100644 --- a/package.json +++ b/package.json @@ -22,6 +22,7 @@ "lint:spell": "cspell \"**\"", "prepare": "husky", "release": "turbo run build lint typecheck && changeset version && changeset publish", + "rename:packages": "bun run ./.scripts/rename-packages --", "reset:changelog": "rimraf --glob **/CHANGELOG.md", "reset:versions": "bun run ./.scripts/reset-versions", "typecheck": "tsc --noEmit --tsBuildInfoFile .tsbuildinfo" @@ -68,6 +69,7 @@ "prettier-plugin-tailwindcss": "^0.5.14", "rimraf": "^5.0.7", "turbo": "^1.13.3", - "typescript": "^5.4.5" + "typescript": "^5.4.5", + "yargs": "^17.7.2" } } From da5e0c3b4ffb2cc59d86c7a591ebae051c205838 Mon Sep 17 00:00:00 2001 From: Corfitz Date: Tue, 28 May 2024 13:19:17 +0200 Subject: [PATCH 02/24] fix: removing unnecessary double hyphens --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index fd512ef0..7b33acc8 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "lint:spell": "cspell \"**\"", "prepare": "husky", "release": "turbo run build lint typecheck && changeset version && changeset publish", - "rename:packages": "bun run ./.scripts/rename-packages --", + "rename:packages": "bun run ./.scripts/rename-packages", "reset:changelog": "rimraf --glob **/CHANGELOG.md", "reset:versions": "bun run ./.scripts/reset-versions", "typecheck": "tsc --noEmit --tsBuildInfoFile .tsbuildinfo" From 43a74a3f30b7ab3e6e001afe6d4c1065632851cc Mon Sep 17 00:00:00 2001 From: Corfitz Date: Tue, 28 May 2024 14:33:26 +0200 Subject: [PATCH 03/24] feat: create dedicated script utils --- .scripts/utils.ts | 101 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 .scripts/utils.ts diff --git a/.scripts/utils.ts b/.scripts/utils.ts new file mode 100644 index 00000000..a07c1354 --- /dev/null +++ b/.scripts/utils.ts @@ -0,0 +1,101 @@ +import * as fs from 'fs'; +import * as path from 'path'; + +// ------------------------------------------------------------------ + +export interface PackageJson { + name: string; + workspaces?: string[]; +} + +// ------------------------------------------------------------------ + +// Function to read and parse the root package.json +export function getRootPackageJson(cwd: string): PackageJson { + const rootPackageJsonPath = path.resolve(cwd, 'package.json'); + const rootPackageJson = JSON.parse( + fs.readFileSync(rootPackageJsonPath, 'utf-8'), + ) as PackageJson; + return rootPackageJson; +} + +// ------------------------------------------------------------------ + +// Function to get all workspace package paths +export function getWorkspacePackagePaths(workspaces: string[]): string[] { + const workspacePackagePaths: string[] = []; + + workspaces.forEach((workspacePattern) => { + const workspaceDirs = workspacePattern.replace(/\/\*$/, ''); + const absolutePath = path.resolve(process.cwd(), workspaceDirs); + const packages = fs + .readdirSync(absolutePath) + .map((pkgDir) => path.join(workspaceDirs, pkgDir)) + .filter((pkgPath) => fs.existsSync(path.join(pkgPath, 'package.json'))); // Filter only directories with package.json + workspacePackagePaths.push(...packages); + }); + + return workspacePackagePaths; +} + +// ------------------------------------------------------------------ + +// Function to get package names from package.json files +export function getPackageNamesFromPaths(packagePaths: string[]): string[] { + const packageNames = packagePaths.map((pkgPath) => { + const packageJsonPath = path.join(pkgPath, 'package.json'); + const packageJson = JSON.parse( + fs.readFileSync(packageJsonPath, 'utf-8'), + ) as PackageJson; + return packageJson.name; + }); + + return packageNames; +} + +// ------------------------------------------------------------------ + +// Main function to get all package names from the workspace +export function getWorkspacePackageNames(cwd: string): string[] { + const rootPackageJson = getRootPackageJson(cwd); + if (!rootPackageJson.workspaces) { + throw new Error('No workspaces defined in the root package.json'); + } + + const workspacePackagePaths = getWorkspacePackagePaths( + rootPackageJson.workspaces, + ); + const packageNames = getPackageNamesFromPaths(workspacePackagePaths); + + return [...packageNames, rootPackageJson.name]; +} + +// ------------------------------------------------------------------ + +// Function to update all package.json files in the workspace +export function updateWorkspacePackages( + cwd: string, + update: (parsedPackageJson: any, fullPath: string) => any, + logs: boolean = true, +): void { + const rootPackageJson = getRootPackageJson(cwd); + + if (!rootPackageJson.workspaces) { + throw new Error('No workspaces defined in the root package.json'); + } + + const workspacePackagePaths = getWorkspacePackagePaths( + rootPackageJson.workspaces, + ); + + workspacePackagePaths.forEach((pkgPath) => { + const packageJsonPath = path.join(pkgPath, 'package.json'); + const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8')); + const updatedPackageJson = update(packageJson, packageJsonPath); + fs.writeFileSync( + packageJsonPath, + JSON.stringify(updatedPackageJson, null, 2) + '\n', + ); + logs && console.log(`Updated package.json in ${packageJsonPath}`); + }); +} From 26a3db7c609e4237c3b5b8eafca4ecd173d7a495 Mon Sep 17 00:00:00 2001 From: Corfitz Date: Tue, 28 May 2024 14:38:16 +0200 Subject: [PATCH 04/24] refactor: improved organisation and reuseability of scripts --- .commitlintrc.ts | 62 +------------------------------------ .scripts/rename-packages.ts | 55 -------------------------------- .scripts/reset-versions.ts | 29 ----------------- .scripts/set-author.ts | 28 +++++++++++++++++ .scripts/set-namespace.ts | 34 ++++++++++++++++++++ .scripts/set-version.ts | 28 +++++++++++++++++ package.json | 5 +-- 7 files changed, 94 insertions(+), 147 deletions(-) delete mode 100644 .scripts/rename-packages.ts delete mode 100644 .scripts/reset-versions.ts create mode 100644 .scripts/set-author.ts create mode 100644 .scripts/set-namespace.ts create mode 100644 .scripts/set-version.ts diff --git a/.commitlintrc.ts b/.commitlintrc.ts index e6d2949e..38464b34 100644 --- a/.commitlintrc.ts +++ b/.commitlintrc.ts @@ -1,5 +1,4 @@ -import * as fs from 'fs'; -import * as path from 'path'; +import { getWorkspacePackageNames } from './.scripts/utils'; // ------------------------------------------------------------------ @@ -18,71 +17,12 @@ import * as path from 'path'; // ------------------------------------------------------------------ -interface PackageJson { - name: string; - workspaces?: string[]; -} - interface Context { cwd?: string; } // ------------------------------------------------------------------ -// Function to read and parse the root package.json -function getRootPackageJson(cwd: string): PackageJson { - const rootPackageJsonPath = path.resolve(cwd, 'package.json'); - const rootPackageJson = JSON.parse( - fs.readFileSync(rootPackageJsonPath, 'utf-8'), - ) as PackageJson; - return rootPackageJson; -} - -// Function to get all workspace package paths -function getWorkspacePackagePaths(workspaces: string[]): string[] { - const workspacePackagePaths: string[] = []; - - workspaces.forEach((workspacePattern) => { - const workspaceDirs = workspacePattern.replace(/\/\*$/, ''); - const absolutePath = path.resolve(process.cwd(), workspaceDirs); - const packages = fs - .readdirSync(absolutePath) - .map((pkgDir) => path.join(workspaceDirs, pkgDir)) - .filter((pkgPath) => fs.existsSync(path.join(pkgPath, 'package.json'))); // Filter only directories with package.json - workspacePackagePaths.push(...packages); - }); - - return workspacePackagePaths; -} - -// Function to get package names from package.json files -function getPackageNamesFromPaths(packagePaths: string[]): string[] { - const packageNames = packagePaths.map((pkgPath) => { - const packageJsonPath = path.join(pkgPath, 'package.json'); - const packageJson = JSON.parse( - fs.readFileSync(packageJsonPath, 'utf-8'), - ) as PackageJson; - return packageJson.name; - }); - - return packageNames; -} - -// Main function to get all package names from the workspace -function getWorkspacePackageNames(cwd: string): string[] { - const rootPackageJson = getRootPackageJson(cwd); - if (!rootPackageJson.workspaces) { - throw new Error('No workspaces defined in the root package.json'); - } - - const workspacePackagePaths = getWorkspacePackagePaths( - rootPackageJson.workspaces, - ); - const packageNames = getPackageNamesFromPaths(workspacePackagePaths); - - return [...packageNames, rootPackageJson.name]; -} - function getProjects(context?: Context): string[] { const ctx = context ?? {}; const cwd = ctx.cwd ?? process.cwd(); diff --git a/.scripts/rename-packages.ts b/.scripts/rename-packages.ts deleted file mode 100644 index e4162e9f..00000000 --- a/.scripts/rename-packages.ts +++ /dev/null @@ -1,55 +0,0 @@ -import * as fs from 'fs'; -import * as path from 'path'; - -import yargs from 'yargs'; -import { hideBin } from 'yargs/helpers'; - -// ------------------------------------------------------------------ - -// Parse command line arguments -const argv = yargs(hideBin(process.argv)).option('name', { - alias: 'n', - type: 'string', - demandOption: true, - description: 'The new namespace for the packages', -}).argv; - -// @ts-ignore - argv is typed to maybe return a promise, but it doesn't -const newNamespace = argv.name; - -// ------------------------------------------------------------------ - -// Function to recursively find package.json files and update the name -function updateNamespace(dir: string): void { - const files = fs.readdirSync(dir); - - // Iterate over each file in the directory - files.forEach((file) => { - const fullPath = path.join(dir, file); - - if (fs.lstatSync(fullPath).isDirectory()) { - // Skip node_modules directory - if (file !== 'node_modules') { - updateNamespace(fullPath); - } - } else if (file === 'package.json') { - const packageJson = JSON.parse(fs.readFileSync(fullPath, 'utf8')); - if (packageJson.name) { - // Split the name by the slash - const parts = packageJson.name.split('/'); - if (parts.length === 2) { - // Update the first part of the name - parts[0] = newNamespace; - packageJson.name = parts.join('/'); - fs.writeFileSync( - fullPath, - JSON.stringify(packageJson, null, 2) + '\n', - ); - console.log(`Updated name in ${fullPath} to ${packageJson.name}`); - } - } - } - }); -} - -updateNamespace(process.cwd()); diff --git a/.scripts/reset-versions.ts b/.scripts/reset-versions.ts deleted file mode 100644 index 65b3aab4..00000000 --- a/.scripts/reset-versions.ts +++ /dev/null @@ -1,29 +0,0 @@ -import * as fs from 'fs'; -import * as path from 'path'; - -// Define the new version -const newVersion = '0.1.0'; - -// Function to recursively find package.json files and update the version -function updateVersion(dir: string): void { - const files = fs.readdirSync(dir); - - files.forEach((file) => { - const fullPath = path.join(dir, file); - - if (fs.lstatSync(fullPath).isDirectory()) { - // Skip node_modules directory - if (file !== 'node_modules') { - updateVersion(fullPath); - } - } else if (file === 'package.json') { - const packageJson = JSON.parse(fs.readFileSync(fullPath, 'utf8')); - packageJson.version = newVersion; - fs.writeFileSync(fullPath, JSON.stringify(packageJson, null, 2) + '\n'); - console.log(`Updated version in ${fullPath}`); - } - }); -} - -// Start updating from the current directory -updateVersion(process.cwd()); diff --git a/.scripts/set-author.ts b/.scripts/set-author.ts new file mode 100644 index 00000000..6cf812af --- /dev/null +++ b/.scripts/set-author.ts @@ -0,0 +1,28 @@ +import yargs from 'yargs'; +import { hideBin } from 'yargs/helpers'; + +import { updateWorkspacePackages } from './utils'; + +// ------------------------------------------------------------------ + +// Parse command line arguments +const argv = yargs(hideBin(process.argv)).option('author', { + alias: 'a', + type: 'string', + demandOption: true, + description: 'The new version for the packages', +}).argv; + +// @ts-ignore - argv is typed to maybe return a promise, but it doesn't +const newAuthor = argv.author; + +// ------------------------------------------------------------------ + +// Function to recursively find package.json files and update the version +function updateAuthor(packageJson: any): void { + packageJson.author = newAuthor; + return packageJson; +} + +// Start updating from the current directory +updateWorkspacePackages(process.cwd(), updateAuthor); diff --git a/.scripts/set-namespace.ts b/.scripts/set-namespace.ts new file mode 100644 index 00000000..095c706b --- /dev/null +++ b/.scripts/set-namespace.ts @@ -0,0 +1,34 @@ +import yargs from 'yargs'; +import { hideBin } from 'yargs/helpers'; + +import { updateWorkspacePackages } from './utils'; + +// ------------------------------------------------------------------ + +// Parse command line arguments +const argv = yargs(hideBin(process.argv)).option('namespace', { + alias: 'n', + type: 'string', + demandOption: true, + description: 'The new namespace for the packages', +}).argv; + +// @ts-ignore - argv is typed to maybe return a promise, but it doesn't +const newNamespace = argv.namespace; + +// ------------------------------------------------------------------ + +// Function to recursively find package.json files and update the name +function updatePackageName(packageJson: any, fullPath: string): any { + if (packageJson.name) { + const parts = packageJson.name.split('/'); + if (parts.length === 2) { + parts[0] = newNamespace; + packageJson.name = parts.join('/'); + console.log(`Updated name in ${fullPath} to ${packageJson.name}`); + } + } + return packageJson; +} + +updateWorkspacePackages(process.cwd(), updatePackageName, false); diff --git a/.scripts/set-version.ts b/.scripts/set-version.ts new file mode 100644 index 00000000..f5756017 --- /dev/null +++ b/.scripts/set-version.ts @@ -0,0 +1,28 @@ +import yargs from 'yargs'; +import { hideBin } from 'yargs/helpers'; + +import { updateWorkspacePackages } from './utils'; + +// ------------------------------------------------------------------ + +// Parse command line arguments +const argv = yargs(hideBin(process.argv)).option('ver', { + alias: 'v', + type: 'string', + demandOption: false, + description: 'The new version for the packages', +}).argv; + +// @ts-ignore - argv is typed to maybe return a promise, but it doesn't +const newVersion = argv.ver ?? '0.1.0'; + +// ------------------------------------------------------------------ + +// Function to recursively find package.json files and update the version +function updateVersion(packageJson: any): void { + packageJson.version = newVersion; + return packageJson; +} + +// Start updating from the current directory +updateWorkspacePackages(process.cwd(), updateVersion); diff --git a/package.json b/package.json index 7b33acc8..12e898d6 100644 --- a/package.json +++ b/package.json @@ -22,9 +22,10 @@ "lint:spell": "cspell \"**\"", "prepare": "husky", "release": "turbo run build lint typecheck && changeset version && changeset publish", - "rename:packages": "bun run ./.scripts/rename-packages", "reset:changelog": "rimraf --glob **/CHANGELOG.md", - "reset:versions": "bun run ./.scripts/reset-versions", + "set:author": "bun run ./.scripts/set-author", + "set:namespace": "bun run ./.scripts/set-namespace", + "set:version": "bun run ./.scripts/set-version", "typecheck": "tsc --noEmit --tsBuildInfoFile .tsbuildinfo" }, "lint-staged": { From 4e58502eae9e040efa1aeb75ccf3af8adf5fefb7 Mon Sep 17 00:00:00 2001 From: Corfitz Date: Tue, 28 May 2024 14:40:52 +0200 Subject: [PATCH 05/24] fix: fixing comments in scripts --- .scripts/set-author.ts | 2 +- .scripts/set-namespace.ts | 2 +- .scripts/set-version.ts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.scripts/set-author.ts b/.scripts/set-author.ts index 6cf812af..ebd85ee5 100644 --- a/.scripts/set-author.ts +++ b/.scripts/set-author.ts @@ -18,7 +18,7 @@ const newAuthor = argv.author; // ------------------------------------------------------------------ -// Function to recursively find package.json files and update the version +// Function to update the author in package.json files function updateAuthor(packageJson: any): void { packageJson.author = newAuthor; return packageJson; diff --git a/.scripts/set-namespace.ts b/.scripts/set-namespace.ts index 095c706b..b16a922e 100644 --- a/.scripts/set-namespace.ts +++ b/.scripts/set-namespace.ts @@ -18,7 +18,7 @@ const newNamespace = argv.namespace; // ------------------------------------------------------------------ -// Function to recursively find package.json files and update the name +// Function to update the name in package.json files function updatePackageName(packageJson: any, fullPath: string): any { if (packageJson.name) { const parts = packageJson.name.split('/'); diff --git a/.scripts/set-version.ts b/.scripts/set-version.ts index f5756017..62588bf5 100644 --- a/.scripts/set-version.ts +++ b/.scripts/set-version.ts @@ -18,7 +18,7 @@ const newVersion = argv.ver ?? '0.1.0'; // ------------------------------------------------------------------ -// Function to recursively find package.json files and update the version +// Function to update the version in package.json files function updateVersion(packageJson: any): void { packageJson.version = newVersion; return packageJson; From 309881c42d35a448f961c88c24be1a5750003a59 Mon Sep 17 00:00:00 2001 From: Corfitz Date: Wed, 29 May 2024 15:19:16 +0200 Subject: [PATCH 06/24] feat: adding exclude option --- .scripts/set-author.ts | 26 ++++++++++++++++++++------ .scripts/set-namespace.ts | 26 ++++++++++++++++++++------ .scripts/set-version.ts | 26 ++++++++++++++++++++------ 3 files changed, 60 insertions(+), 18 deletions(-) diff --git a/.scripts/set-author.ts b/.scripts/set-author.ts index ebd85ee5..af6ec52d 100644 --- a/.scripts/set-author.ts +++ b/.scripts/set-author.ts @@ -6,20 +6,34 @@ import { updateWorkspacePackages } from './utils'; // ------------------------------------------------------------------ // Parse command line arguments -const argv = yargs(hideBin(process.argv)).option('author', { - alias: 'a', - type: 'string', - demandOption: true, - description: 'The new version for the packages', -}).argv; +const argv = yargs(hideBin(process.argv)) + .option('author', { + alias: 'a', + type: 'string', + demandOption: true, + description: 'The new version for the packages', + }) + .option('exclude', { + alias: 'e', + type: 'array', + demandOption: false, + description: 'Exclude packages from the update', + }).argv; // @ts-ignore - argv is typed to maybe return a promise, but it doesn't const newAuthor = argv.author; +// @ts-ignore - argv is typed to maybe return a promise, but it doesn't +const excludePackages = argv.exclude ?? []; // ------------------------------------------------------------------ // Function to update the author in package.json files function updateAuthor(packageJson: any): void { + // Skip updating excluded packages + if (excludePackages.includes(packageJson.name)) { + return packageJson; + } + packageJson.author = newAuthor; return packageJson; } diff --git a/.scripts/set-namespace.ts b/.scripts/set-namespace.ts index b16a922e..28415ddc 100644 --- a/.scripts/set-namespace.ts +++ b/.scripts/set-namespace.ts @@ -6,20 +6,34 @@ import { updateWorkspacePackages } from './utils'; // ------------------------------------------------------------------ // Parse command line arguments -const argv = yargs(hideBin(process.argv)).option('namespace', { - alias: 'n', - type: 'string', - demandOption: true, - description: 'The new namespace for the packages', -}).argv; +const argv = yargs(hideBin(process.argv)) + .option('namespace', { + alias: 'n', + type: 'string', + demandOption: true, + description: 'The new namespace for the packages', + }) + .option('exclude', { + alias: 'e', + type: 'array', + demandOption: false, + description: 'Exclude packages from the update', + }).argv; // @ts-ignore - argv is typed to maybe return a promise, but it doesn't const newNamespace = argv.namespace; +// @ts-ignore - argv is typed to maybe return a promise, but it doesn't +const excludePackages = argv.exclude ?? []; // ------------------------------------------------------------------ // Function to update the name in package.json files function updatePackageName(packageJson: any, fullPath: string): any { + // Skip updating excluded packages + if (excludePackages.includes(packageJson.name)) { + return packageJson; + } + if (packageJson.name) { const parts = packageJson.name.split('/'); if (parts.length === 2) { diff --git a/.scripts/set-version.ts b/.scripts/set-version.ts index 62588bf5..384efab1 100644 --- a/.scripts/set-version.ts +++ b/.scripts/set-version.ts @@ -6,20 +6,34 @@ import { updateWorkspacePackages } from './utils'; // ------------------------------------------------------------------ // Parse command line arguments -const argv = yargs(hideBin(process.argv)).option('ver', { - alias: 'v', - type: 'string', - demandOption: false, - description: 'The new version for the packages', -}).argv; +const argv = yargs(hideBin(process.argv)) + .option('ver', { + alias: 'v', + type: 'string', + demandOption: false, + description: 'The new version for the packages', + }) + .option('exclude', { + alias: 'e', + type: 'array', + demandOption: false, + description: 'Exclude packages from the update', + }).argv; // @ts-ignore - argv is typed to maybe return a promise, but it doesn't const newVersion = argv.ver ?? '0.1.0'; +// @ts-ignore - argv is typed to maybe return a promise, but it doesn't +const excludePackages = argv.exclude ?? []; // ------------------------------------------------------------------ // Function to update the version in package.json files function updateVersion(packageJson: any): void { + // Skip updating excluded packages + if (excludePackages.includes(packageJson.name)) { + return packageJson; + } + packageJson.version = newVersion; return packageJson; } From 4b4b8854593faf9eb541c3142f22157632898d30 Mon Sep 17 00:00:00 2001 From: Corfitz Date: Wed, 29 May 2024 15:57:09 +0200 Subject: [PATCH 07/24] feat: adding includeroot option to scripts --- .scripts/set-author.ts | 11 ++++++++++- .scripts/set-namespace.ts | 13 ++++++++++++- .scripts/set-version.ts | 11 ++++++++++- .scripts/utils.ts | 9 ++++++--- 4 files changed, 38 insertions(+), 6 deletions(-) diff --git a/.scripts/set-author.ts b/.scripts/set-author.ts index af6ec52d..76b3f31c 100644 --- a/.scripts/set-author.ts +++ b/.scripts/set-author.ts @@ -18,12 +18,20 @@ const argv = yargs(hideBin(process.argv)) type: 'array', demandOption: false, description: 'Exclude packages from the update', + }) + .option('includeRoot', { + alias: 'ir', + type: 'boolean', + demandOption: false, + description: 'Include the root package.json', }).argv; // @ts-ignore - argv is typed to maybe return a promise, but it doesn't const newAuthor = argv.author; // @ts-ignore - argv is typed to maybe return a promise, but it doesn't const excludePackages = argv.exclude ?? []; +// @ts-ignore - argv is typed to maybe return a promise, but it doesn't +const includeRoot = argv.includeRoot ?? false; // ------------------------------------------------------------------ @@ -35,8 +43,9 @@ function updateAuthor(packageJson: any): void { } packageJson.author = newAuthor; + console.log(`Updated author of ${packageJson.name}`); return packageJson; } // Start updating from the current directory -updateWorkspacePackages(process.cwd(), updateAuthor); +updateWorkspacePackages(process.cwd(), updateAuthor, includeRoot); diff --git a/.scripts/set-namespace.ts b/.scripts/set-namespace.ts index 28415ddc..661cecbb 100644 --- a/.scripts/set-namespace.ts +++ b/.scripts/set-namespace.ts @@ -18,12 +18,20 @@ const argv = yargs(hideBin(process.argv)) type: 'array', demandOption: false, description: 'Exclude packages from the update', + }) + .option('includeRoot', { + alias: 'ir', + type: 'boolean', + demandOption: false, + description: 'Include the root package.json', }).argv; // @ts-ignore - argv is typed to maybe return a promise, but it doesn't const newNamespace = argv.namespace; // @ts-ignore - argv is typed to maybe return a promise, but it doesn't const excludePackages = argv.exclude ?? []; +// @ts-ignore - argv is typed to maybe return a promise, but it doesn't +const includeRoot = argv.includeRoot ?? false; // ------------------------------------------------------------------ @@ -40,9 +48,12 @@ function updatePackageName(packageJson: any, fullPath: string): any { parts[0] = newNamespace; packageJson.name = parts.join('/'); console.log(`Updated name in ${fullPath} to ${packageJson.name}`); + } else if (fullPath === process.cwd()) { + packageJson.name = newNamespace.replace('@', ''); + console.log(`Updated name in ${fullPath} to ${packageJson.name}`); } } return packageJson; } -updateWorkspacePackages(process.cwd(), updatePackageName, false); +updateWorkspacePackages(process.cwd(), updatePackageName, includeRoot); diff --git a/.scripts/set-version.ts b/.scripts/set-version.ts index 384efab1..a9ec1b1e 100644 --- a/.scripts/set-version.ts +++ b/.scripts/set-version.ts @@ -18,12 +18,20 @@ const argv = yargs(hideBin(process.argv)) type: 'array', demandOption: false, description: 'Exclude packages from the update', + }) + .option('includeRoot', { + alias: 'ir', + type: 'boolean', + demandOption: false, + description: 'Include the root package.json', }).argv; // @ts-ignore - argv is typed to maybe return a promise, but it doesn't const newVersion = argv.ver ?? '0.1.0'; // @ts-ignore - argv is typed to maybe return a promise, but it doesn't const excludePackages = argv.exclude ?? []; +// @ts-ignore - argv is typed to maybe return a promise, but it doesn't +const includeRoot = argv.includeRoot ?? false; // ------------------------------------------------------------------ @@ -35,8 +43,9 @@ function updateVersion(packageJson: any): void { } packageJson.version = newVersion; + console.log(`Updated version of ${packageJson.name}`); return packageJson; } // Start updating from the current directory -updateWorkspacePackages(process.cwd(), updateVersion); +updateWorkspacePackages(process.cwd(), updateVersion, includeRoot); diff --git a/.scripts/utils.ts b/.scripts/utils.ts index a07c1354..bae1825d 100644 --- a/.scripts/utils.ts +++ b/.scripts/utils.ts @@ -76,7 +76,7 @@ export function getWorkspacePackageNames(cwd: string): string[] { export function updateWorkspacePackages( cwd: string, update: (parsedPackageJson: any, fullPath: string) => any, - logs: boolean = true, + includeRoot: boolean = false, ): void { const rootPackageJson = getRootPackageJson(cwd); @@ -88,14 +88,17 @@ export function updateWorkspacePackages( rootPackageJson.workspaces, ); + if (includeRoot) { + workspacePackagePaths.push(cwd); + } + workspacePackagePaths.forEach((pkgPath) => { const packageJsonPath = path.join(pkgPath, 'package.json'); const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8')); - const updatedPackageJson = update(packageJson, packageJsonPath); + const updatedPackageJson = update(packageJson, pkgPath); fs.writeFileSync( packageJsonPath, JSON.stringify(updatedPackageJson, null, 2) + '\n', ); - logs && console.log(`Updated package.json in ${packageJsonPath}`); }); } From 3c6182eb747241deea3323deed2e2dd93d14b349 Mon Sep 17 00:00:00 2001 From: Corfitz Date: Wed, 29 May 2024 16:32:17 +0200 Subject: [PATCH 08/24] refactor: changing include-root flag --- .scripts/set-author.ts | 4 ++-- .scripts/set-namespace.ts | 4 ++-- .scripts/set-version.ts | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.scripts/set-author.ts b/.scripts/set-author.ts index 76b3f31c..94ef8d1d 100644 --- a/.scripts/set-author.ts +++ b/.scripts/set-author.ts @@ -19,7 +19,7 @@ const argv = yargs(hideBin(process.argv)) demandOption: false, description: 'Exclude packages from the update', }) - .option('includeRoot', { + .option('include-root', { alias: 'ir', type: 'boolean', demandOption: false, @@ -31,7 +31,7 @@ const newAuthor = argv.author; // @ts-ignore - argv is typed to maybe return a promise, but it doesn't const excludePackages = argv.exclude ?? []; // @ts-ignore - argv is typed to maybe return a promise, but it doesn't -const includeRoot = argv.includeRoot ?? false; +const includeRoot = argv['include-root'] ?? false; // ------------------------------------------------------------------ diff --git a/.scripts/set-namespace.ts b/.scripts/set-namespace.ts index 661cecbb..6e1063c7 100644 --- a/.scripts/set-namespace.ts +++ b/.scripts/set-namespace.ts @@ -19,7 +19,7 @@ const argv = yargs(hideBin(process.argv)) demandOption: false, description: 'Exclude packages from the update', }) - .option('includeRoot', { + .option('include-root', { alias: 'ir', type: 'boolean', demandOption: false, @@ -31,7 +31,7 @@ const newNamespace = argv.namespace; // @ts-ignore - argv is typed to maybe return a promise, but it doesn't const excludePackages = argv.exclude ?? []; // @ts-ignore - argv is typed to maybe return a promise, but it doesn't -const includeRoot = argv.includeRoot ?? false; +const includeRoot = argv['include-root'] ?? false; // ------------------------------------------------------------------ diff --git a/.scripts/set-version.ts b/.scripts/set-version.ts index a9ec1b1e..1cddaa0e 100644 --- a/.scripts/set-version.ts +++ b/.scripts/set-version.ts @@ -19,7 +19,7 @@ const argv = yargs(hideBin(process.argv)) demandOption: false, description: 'Exclude packages from the update', }) - .option('includeRoot', { + .option('include-root', { alias: 'ir', type: 'boolean', demandOption: false, @@ -31,7 +31,7 @@ const newVersion = argv.ver ?? '0.1.0'; // @ts-ignore - argv is typed to maybe return a promise, but it doesn't const excludePackages = argv.exclude ?? []; // @ts-ignore - argv is typed to maybe return a promise, but it doesn't -const includeRoot = argv.includeRoot ?? false; +const includeRoot = argv['include-root'] ?? false; // ------------------------------------------------------------------ From f7dfc9a12a645650d1751624db23de0cb05c8289 Mon Sep 17 00:00:00 2001 From: Corfitz Date: Wed, 29 May 2024 16:32:54 +0200 Subject: [PATCH 09/24] feat: adding set:license script --- .scripts/set-license.ts | 51 +++++++++++++++++++++++++++++++++++++++++ package.json | 1 + 2 files changed, 52 insertions(+) create mode 100644 .scripts/set-license.ts diff --git a/.scripts/set-license.ts b/.scripts/set-license.ts new file mode 100644 index 00000000..b1bdea43 --- /dev/null +++ b/.scripts/set-license.ts @@ -0,0 +1,51 @@ +import yargs from 'yargs'; +import { hideBin } from 'yargs/helpers'; + +import { updateWorkspacePackages } from './utils'; + +// ------------------------------------------------------------------ + +// Parse command line arguments +const argv = yargs(hideBin(process.argv)) + .option('license', { + alias: 'l', + type: 'string', + demandOption: false, + description: 'The new license for the packages', + }) + .option('exclude', { + alias: 'e', + type: 'array', + demandOption: false, + description: 'Exclude packages from the update', + }) + .option('include-root', { + alias: 'ir', + type: 'boolean', + demandOption: false, + description: 'Include the root package.json', + }).argv; + +// @ts-ignore - argv is typed to maybe return a promise, but it doesn't +const newLicense = argv.license ?? 'MIT'; +// @ts-ignore - argv is typed to maybe return a promise, but it doesn't +const excludePackages = argv.exclude ?? []; +// @ts-ignore - argv is typed to maybe return a promise, but it doesn't +const includeRoot = argv['include-root'] ?? false; + +// ------------------------------------------------------------------ + +// Function to update the version in package.json files +function updateLicense(packageJson: any): void { + // Skip updating excluded packages + if (excludePackages.includes(packageJson.name)) { + return packageJson; + } + + packageJson.license = newLicense; + console.log(`Updated license for ${packageJson.name}`); + return packageJson; +} + +// Start updating from the current directory +updateWorkspacePackages(process.cwd(), updateLicense, includeRoot); diff --git a/package.json b/package.json index 12e898d6..73cbaab6 100644 --- a/package.json +++ b/package.json @@ -24,6 +24,7 @@ "release": "turbo run build lint typecheck && changeset version && changeset publish", "reset:changelog": "rimraf --glob **/CHANGELOG.md", "set:author": "bun run ./.scripts/set-author", + "set:license": "bun run ./.scripts/set-license", "set:namespace": "bun run ./.scripts/set-namespace", "set:version": "bun run ./.scripts/set-version", "typecheck": "tsc --noEmit --tsBuildInfoFile .tsbuildinfo" From 78c2c29517fe658b77a8736a1aab502dcdeffa73 Mon Sep 17 00:00:00 2001 From: Corfitz Date: Wed, 29 May 2024 16:34:25 +0200 Subject: [PATCH 10/24] docs(docs): updating documentation for set scripts --- apps/docs/installation.mdx | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/apps/docs/installation.mdx b/apps/docs/installation.mdx index 0de5b7bc..31755b64 100644 --- a/apps/docs/installation.mdx +++ b/apps/docs/installation.mdx @@ -171,14 +171,32 @@ OrbitKit currently ships with two authentication providers, Google and Github. Y ### Reset changelog and versions -When you first clone the repository, you should reset the changelog and versions to start fresh. You can do so by running the following commands: +When you first clone the repository, you should reset the changelog and project metadata to start fresh. You can do so by running the following commands: ```bash # Reset changelog - this will remove all the changelog.md files in the packages bun reset:changelog # Reset package versions - this will reset the versions of all the packages to 0.1.0 -bun reset:versions +bun set:version --ir +# Use the --ver or -v flag to set a specific version e.g. --ver 1.0.0 + +# Change the package namespace for all the packages to "@myapp" +bun set:namespace -n "@myapp" --ir +# When including the root package, the root package will be renamed to "myapp" + +# Set the author for all the packages +bun set:author -a "Your Name <[email protected]> - https://yourwebsite.com" --ir + +# Set the license for all the packages to MIT +bun set:license -l "MIT" --ir +``` + +Each of these commands has a few options that you can use: + +```bash +--ir, --include-root # Include the root package +-e, --exclude # Exclude packages e.g. --exclude @myapp/core @myapp/db ``` ### Running the project From ecfd7112109c6d8afc919f6bb27ec93ea21cd6bf Mon Sep 17 00:00:00 2001 From: Corfitz Date: Wed, 29 May 2024 16:40:07 +0200 Subject: [PATCH 11/24] docs(docs): updating documentation for set scripts --- apps/docs/installation.mdx | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/apps/docs/installation.mdx b/apps/docs/installation.mdx index 31755b64..b1d0fadc 100644 --- a/apps/docs/installation.mdx +++ b/apps/docs/installation.mdx @@ -178,18 +178,21 @@ When you first clone the repository, you should reset the changelog and project bun reset:changelog # Reset package versions - this will reset the versions of all the packages to 0.1.0 -bun set:version --ir +bun set:version --ver 0.1.0 --ir # Use the --ver or -v flag to set a specific version e.g. --ver 1.0.0 # Change the package namespace for all the packages to "@myapp" -bun set:namespace -n "@myapp" --ir -# When including the root package, the root package will be renamed to "myapp" +bun set:namespace --namespace "@myapp" --ir +# Use the --namespace or -n flag to set a specific namespace e.g. --namespace "@orbitkit" +# When including the root package, the root package will be renamed to namespace without the "@" symbol # Set the author for all the packages -bun set:author -a "Your Name <[email protected]> - https://yourwebsite.com" --ir +bun set:author --author "Your Name <[email protected]> - https://yourwebsite.com" --ir +# Use the --author or -a flag to set a specific author e.g. --author "OrbitKit" # Set the license for all the packages to MIT -bun set:license -l "MIT" --ir +bun set:license --license "MIT" --ir +# Use the --license or -l flag to set a specific license e.g. --license "Apache-2.0" ``` Each of these commands has a few options that you can use: From 0f51ad8a3033d0eef8d3cac5e9a6a9e0604d9d33 Mon Sep 17 00:00:00 2001 From: Corfitz Date: Wed, 29 May 2024 17:45:59 +0200 Subject: [PATCH 12/24] refactor: updating scripts after linting --- .commitlintrc.ts | 2 +- bun.lockb | Bin 953800 -> 954920 bytes package.json | 10 +++--- {.scripts => scripts}/set-author.ts | 14 ++++----- {.scripts => scripts}/set-license.ts | 12 +++---- {.scripts => scripts}/set-namespace.ts | 28 ++++++++++------- {.scripts => scripts}/set-version.ts | 14 ++++----- {.scripts => scripts}/utils.ts | 42 +++++++++++++------------ tsconfig.json | 5 ++- 9 files changed, 70 insertions(+), 57 deletions(-) rename {.scripts => scripts}/set-author.ts (75%) rename {.scripts => scripts}/set-license.ts (79%) rename {.scripts => scripts}/set-namespace.ts (75%) rename {.scripts => scripts}/set-version.ts (75%) rename {.scripts => scripts}/utils.ts (80%) diff --git a/.commitlintrc.ts b/.commitlintrc.ts index 38464b34..f176e7d1 100644 --- a/.commitlintrc.ts +++ b/.commitlintrc.ts @@ -1,4 +1,4 @@ -import { getWorkspacePackageNames } from './.scripts/utils'; +import { getWorkspacePackageNames } from './scripts/utils'; // ------------------------------------------------------------------ diff --git a/bun.lockb b/bun.lockb index c3a6a4e22462e033da621a13aa6431a341af76ac..e53bb626c6a72c3e600311625e810c28ad2b205f 100755 GIT binary patch delta 203793 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�Rw&rz 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