Skip to content

Commit

Permalink
feat: add ESM support, remove make-error dependency
Browse files Browse the repository at this point in the history
BREAKING CHANGE: Extending from `Error` has been simplified by getting rid of the
`make-error` dependency; this _may_ be a breaking change. Additionally, `exports`
field has been added to `package.json`.

BREAKING CHANGE: Minimum supported Node version bumped to 18
  • Loading branch information
jeffijoe committed Jan 16, 2025
1 parent 883f374 commit 8f25148
Show file tree
Hide file tree
Showing 13 changed files with 8,511 additions and 15,672 deletions.
65 changes: 65 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
# Name of the pipeline
name: CI

# Allow the token to create releases and read pull requests.
# Needed for semantic-release.
permissions:
contents: write
pull-requests: read

# When pushing to `master` or when there is a PR for the branch.
on:
pull_request:
push:
branches:
- 'master'

jobs:
ci:
name: Lint, Test & Release (Node ${{ matrix.version }})
runs-on: ubuntu-22.04
strategy:
fail-fast: true
matrix:
version:
- 18
- 20
- 22
- current
steps:
- name: Checkout
uses: actions/checkout@v3

- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.version }}
cache: 'npm'

- name: Install Packages
run: npm ci

- name: Build
run: npm run build

- name: Lint
run: npm run lint

- name: Test
run: npm run cover

- if: ${{ matrix.version == 'current' }}
name: Coveralls
uses: coverallsapp/github-action@v2

- if: ${{ matrix.version == 'current' }}
name: Semantic Release
run: npm run semantic-release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}

# Cancel running workflows for the same branch when a new one is started.
concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true
30 changes: 30 additions & 0 deletions eslint.config.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
import js from '@eslint/js'
import ts from 'typescript-eslint'

export default [
js.configs.recommended,
...ts.configs.recommended,
{
languageOptions: {
ecmaVersion: 5,
sourceType: 'script',

parserOptions: {
project: true,
tsconfigRootDir: './',
},
},

rules: {
'@typescript-eslint/no-explicit-any': 'off',
},
},
{
files: ['**/__tests__/*.test.ts'],

rules: {
'@typescript-eslint/no-unused-vars': 'off',
'@typescript-eslint/no-require-imports': 'off',
},
},
]
Loading

0 comments on commit 8f25148

Please sign in to comment.