From 864d0584b89cd698de1538c29453090844a3052d Mon Sep 17 00:00:00 2001 From: Liam Rella Date: Fri, 14 Feb 2025 16:46:21 +1030 Subject: [PATCH] feat: rewrite browserslist cli for new command builder --- packages/browserslist-config/index.cjs | 1 - packages/browserslist-config/package.json | 21 ++++++++++++++++----- packages/browserslist-config/readme.md | 18 ------------------ packages/browserslist-config/src/cli.ts | 10 +++------- packages/browserslist-config/src/command.ts | 20 ++++++++++++++++++++ packages/browserslist-config/src/index.ts | 7 +++++++ packages/browserslist-config/tsconfig.json | 13 +++++++++++++ 7 files changed, 59 insertions(+), 31 deletions(-) delete mode 100644 packages/browserslist-config/index.cjs create mode 100644 packages/browserslist-config/src/command.ts create mode 100644 packages/browserslist-config/src/index.ts create mode 100644 packages/browserslist-config/tsconfig.json diff --git a/packages/browserslist-config/index.cjs b/packages/browserslist-config/index.cjs deleted file mode 100644 index feaedbf..0000000 --- a/packages/browserslist-config/index.cjs +++ /dev/null @@ -1 +0,0 @@ -module.exports = ['> 0.5% in AU', 'last 3 years', 'iOS >= 7', 'ie >= 11']; diff --git a/packages/browserslist-config/package.json b/packages/browserslist-config/package.json index 9f3a735..2caf9dc 100644 --- a/packages/browserslist-config/package.json +++ b/packages/browserslist-config/package.json @@ -8,6 +8,7 @@ "url": "git@github.com:envsa/shared-config.git", "directory": "packages/browserslist-config" }, + "homepage": "https://github.com/envsa/shared-config/packages/browserslist-config", "bugs": { "url": "https://github.com/envsa/shared-config/issues", "email": "DEW.ICTWebServices@sa.gov.au" @@ -23,25 +24,35 @@ "pnpm": ">=10.0.0" }, "bin": { - "browserslist-config": "bin/cli.js" + "envsa-browserslist": "bin/cli.js" }, - "main": "./index.cjs", + "main": "./dist/index.cjs", + "types": "./dist/index.d.ts", + "files": [ + "bin/*", + "dist/*" + ], "keywords": [ "shared-config", "browserslist-config", "browserslist", - "cli" + "cli", + "envsa", + "envsa-browserslist" ], "scripts": { - "build": "../../scripts/build.ts && mdat readme", + "build": "tsc && ../../scripts/build.ts && mv './dist/index.js' './dist/index.cjs'", "cli": "node ./bin/cli.js", "prepublishOnly": "pnpm run build" }, "dependencies": { "@pinojs/json-colorizer": "^4.0.0", + "browserslist": "^4.24.4", "cosmiconfig": "^9.0.0", "execa": "^9.5.2", - "fs-extra": "^11.2.0" + "find-workspaces": "^0.3.1", + "fs-extra": "^11.2.0", + "prettier": "^3.5.0" }, "publishConfig": { "access": "public" diff --git a/packages/browserslist-config/readme.md b/packages/browserslist-config/readme.md index 3f0f4b8..cf73361 100644 --- a/packages/browserslist-config/readme.md +++ b/packages/browserslist-config/readme.md @@ -55,24 +55,6 @@ or use the cli -#### Subcommand: `browserslist-config --init` - -Browserslist configuration for @envsa/shared-config. - -Usage: - -```txt -browserslist-config --init -``` - -| Option | Description | -| ------------------- | --------------------------------------- | -| `--init`
`-i` | Add browserslist key to `package.json`. | -| `--help`
`-h` | Print this help info. | -| `--version`
`-v` | Print the package version. | - - - ## License diff --git a/packages/browserslist-config/src/cli.ts b/packages/browserslist-config/src/cli.ts index 5820ea7..b2c55d8 100644 --- a/packages/browserslist-config/src/cli.ts +++ b/packages/browserslist-config/src/cli.ts @@ -1,9 +1,5 @@ #!/usr/bin/env node -import { buildCommands } from '$root/src/command-builder.ts'; +import { buildCommands } from '../../../src/command-builder.js'; +import { commandDefinition } from './command.js'; -await buildCommands('browserslist-config', '[Browserslist]', 'white', { - init: { - command: 'pnpm', - defaultArguments: ['pkg', 'set', 'browserslist[0]=extends @envsa/browserslist-config'], - }, -}); +await buildCommands(commandDefinition); diff --git a/packages/browserslist-config/src/command.ts b/packages/browserslist-config/src/command.ts new file mode 100644 index 0000000..5bb7601 --- /dev/null +++ b/packages/browserslist-config/src/command.ts @@ -0,0 +1,20 @@ +import { CommandDefinition } from '../../../src/command-builder'; + +export const commandDefinition: CommandDefinition = { + commands: { + init: { + commands: [ + { + name: 'pnpm', + optionFlags: ['pkg', 'set', 'browserslist[0]=extends @envsa/browserslist-config'], + }, + ], + locationOptionFlag: true, + }, + }, + description: "Envsa's Browserslist shared configuration tool.", + logColor: 'white', + logPrefix: 'Browserslist', + name: 'envsa-browserslist', + order: 7, +}; diff --git a/packages/browserslist-config/src/index.ts b/packages/browserslist-config/src/index.ts new file mode 100644 index 0000000..5d6b0c2 --- /dev/null +++ b/packages/browserslist-config/src/index.ts @@ -0,0 +1,7 @@ +import { type Config } from 'browserslist'; + +const config: Config = { + defaults: ['> 0.5% in AU', 'last 3 years', 'iOS >= 7', 'ie >= 11'], +}; + +export default config; diff --git a/packages/browserslist-config/tsconfig.json b/packages/browserslist-config/tsconfig.json new file mode 100644 index 0000000..1a818f4 --- /dev/null +++ b/packages/browserslist-config/tsconfig.json @@ -0,0 +1,13 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "module": "CommonJS", + "moduleResolution": "node10", + "resolveJsonModule": false, + "allowImportingTsExtensions": false, + "declaration": true, + "noEmit": false, + "outDir": "dist" + }, + "include": ["./src/index.ts"] +}