diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f645ff3..4bb7a8d 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -9,6 +9,9 @@ jobs: publish: runs-on: ubuntu-latest permissions: write-all + strategy: + matrix: + node-version: [24] env: NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -24,7 +27,7 @@ jobs: - uses: actions/setup-node@v6 with: - node-version: 22 + node-version: ${{ matrix.node-version }} cache: yarn registry-url: https://registry.npmjs.org @@ -37,7 +40,7 @@ jobs: path: | .cache/yarn node_modules - key: ubuntu-latest-node22-${{ hashFiles('yarn.lock') }} + key: ubuntu-latest-node${{ matrix.node-version }}-${{ hashFiles('yarn.lock') }} ## --- INSTALL --- ## # If statement isn't needed here b/c yarn will leverage the cache if it exists diff --git a/.github/workflows/testing.yml b/.github/workflows/testing.yml index df970f3..91e98ef 100644 --- a/.github/workflows/testing.yml +++ b/.github/workflows/testing.yml @@ -7,7 +7,9 @@ on: jobs: test: runs-on: ubuntu-latest - + strategy: + matrix: + node-version: [22, 24] steps: - name: Check out code uses: actions/checkout@v5 @@ -19,7 +21,7 @@ jobs: uses: actions/setup-node@v6 with: cache: yarn - node-version: 22 + node-version: ${{ matrix.node-version }} - name: Install dependencies run: yarn install --immutable @@ -31,6 +33,9 @@ jobs: permissions: pull-requests: write runs-on: ubuntu-latest + strategy: + matrix: + node-version: [24] steps: - uses: actions/checkout@v5 @@ -40,7 +45,7 @@ jobs: - uses: actions/setup-node@v6 with: cache: yarn - node-version: 22 + node-version: ${{ matrix.node-version }} - name: Install dependencies run: yarn install --immutable @@ -72,6 +77,9 @@ jobs: timeout-minutes: 5 permissions: contents: read + strategy: + matrix: + node-version: [24] steps: - name: Check out code uses: actions/checkout@v5 @@ -84,7 +92,7 @@ jobs: - name: Use Node LTS version uses: actions/setup-node@v6 with: - node-version: 22 + node-version: ${{ matrix.node-version }} cache: yarn ## --- YARN CACHE --- ## @@ -96,7 +104,7 @@ jobs: path: | .cache/yarn node_modules - key: ubuntu-latest-node22-${{ hashFiles('yarn.lock') }} + key: ubuntu-latest-node${{ matrix.node-version }}-${{ hashFiles('yarn.lock') }} ## --- INSTALL --- ## # If statement isn't needed here b/c yarn will leverage the cache if it exists diff --git a/.nvmrc b/.nvmrc index 2322202..304218c 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -22.* +24.* diff --git a/README.md b/README.md index 706ee11..c93e173 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,15 @@ + + # glob-concat-cli > A command-line interface for concatenating files leveraging [fast-glob](https://github.com/mrmlnc/fast-glob#fast-glob). ## Key features -- Concatenates files on the command line +- Quick and easy concatenation of files on the command line - Supports robust glob patterns via [fast-glob](https://github.com/mrmlnc/fast-glob#pattern-syntax) -- Allows empty files to be ignored (great for use with automated build tools) -- Can output to stdout or a file +- Automatically ignores empty files by default (great for use with automated build tools) +- Can output to stdout or a new or existing file - Provides a sourcemap for the concatenated files by default ## Install @@ -20,6 +22,8 @@ npm install --dev glob-concat-cli yarn add --dev glob-concat-cli ``` +Currently, this project supports node v22 and v24. We plan to deprecate support for node v22 by March of 2026. + ## API ### `files` @@ -60,7 +64,7 @@ When leveraging this package, you can also pass in any of the options supported Due to how this utility is built, the following options are not supported: -- `onlyDirectories` (this is always set to `false` because this utility is meant to concatenate files) +- `onlyDirectories` (this is always set to `false` because this utility is meant to concatenate files only) - `stats` - `objectMode` diff --git a/package.json b/package.json index 2088472..b375fd3 100644 --- a/package.json +++ b/package.json @@ -18,9 +18,9 @@ }, "scripts": { "coverage": "c8 yarn test", - "postinstall": "husky || true", "lint": "prettier --config .prettierrc --check . && eslint --cache --no-error-on-unmatched-pattern --report-unused-disable-directives . && markdownlint --config .markdownlint.json *.md --ignore node_modules", "lint:fix": "prettier --config .prettierrc --write . && eslint --fix --cache --no-ignore --no-error-on-unmatched-pattern . && prettier-package-json --write package.json && markdownlint --config .markdownlint.json --fix *.md --ignore node_modules", + "postinstall": "husky || true", "precommit": "commitlint --edit \"\" && lint-staged --allow-empty --config lint-staged.config.js", "prepublishOnly": "yarn test", "semantic-release": "semantic-release",