Skip to content

Commit 779b541

Browse files
authored
Updates to Dependencies, Build Chain, and Examples (#374)
Non-trivial updates to some of our dependencies, our build chain, and our examples, including: * Switch from ESLint to Oxlint * Upgrade TypeScript 6 to TypeScript 7 * Replace ts-node with tsx * Replace browserify with esbuild * Convert examples to full mini-projects * Remove checked in cql4browsers.js * Stop support for Node 18
1 parent 214a25b commit 779b541

91 files changed

Lines changed: 5297 additions & 38389 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/pull_request_template.md

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,8 @@ For items that are not-applicable, mark "N/A" and ✔.
99
- [ ] Tests are included and test edge cases
1010
- [ ] Tests have been run locally and pass
1111
- [ ] Code coverage has not gone down and all code touched or added is covered.
12-
- [ ] Code passes lint and prettier (hint: use `npm run test:plus` to run tests, lint, and prettier)
12+
- [ ] Code passes lint and prettier (hint: use `npm run check` to run tests, lint, and prettier)
1313
- [ ] All dependent libraries are appropriately updated or have a corresponding PR related to this change
14-
- [ ] `cql4browsers.js` built with `npm run build:browserify` if source changed.
15-
1614
**Reviewer:**
1715

1816
Name:

.github/workflows/ci-workflow.yml

Lines changed: 22 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,6 @@ jobs:
1212
with:
1313
node-version: 24.x
1414
- run: npm audit --omit=dev
15-
cql4browsers:
16-
name: Check cql4browsers
17-
runs-on: ubuntu-latest
18-
steps:
19-
- uses: actions/checkout@v6
20-
- uses: actions/setup-node@v6
21-
with:
22-
node-version: 24.x
23-
- run: ./bin/validate_cql4browsers.sh
2415
lint:
2516
name: Check lint and prettier
2617
runs-on: ubuntu-latest
@@ -38,7 +29,7 @@ jobs:
3829
runs-on: ubuntu-latest
3930
strategy:
4031
matrix:
41-
node: [18.x, 22.x, 24.x]
32+
node: [20.x, 22.x, 24.x]
4233
steps:
4334
- uses: actions/checkout@v6
4435
- uses: actions/setup-node@v6
@@ -73,3 +64,24 @@ jobs:
7364
working-directory: test-server
7465
- run: npm run check
7566
working-directory: test-server
67+
examples:
68+
name: Check examples
69+
runs-on: ubuntu-latest
70+
steps:
71+
- uses: actions/checkout@v6
72+
- uses: actions/setup-node@v6
73+
with:
74+
node-version: 24.x
75+
- run: npm ci
76+
- run: npm ci
77+
working-directory: examples/browser
78+
- run: npm test
79+
working-directory: examples/browser
80+
- run: npm ci
81+
working-directory: examples/node
82+
- run: npm test
83+
working-directory: examples/node
84+
- run: npm ci
85+
working-directory: examples/typescript
86+
- run: npm test
87+
working-directory: examples/typescript

.gitignore

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
lib
22
lib-test
3+
dist
34
node_modules
45
.DS_Store
56
.nyc_output
6-
.vscode
7+
.vscode/*
8+
!.vscode/extensions.json
9+
!.vscode/settings.sample.json
710
coverage
811
*.original.coffee
912
yarn-error.log

.mocharc.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
22
"ignore": ["test/spec-tests/*.js"],
33
"extension": ["ts"],
4-
"require": ["ts-node/register", "./test/should-extensions.ts"]
4+
"require": ["tsx/cjs", "./test/should-extensions.ts"]
55
}

.npmignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,4 @@
66
/test
77
/test-server
88
/CQL_Execution_Features.xlsx
9+
/examples

.oxlintrc.json

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
{
2+
"$schema": "./node_modules/oxlint/configuration_schema.json",
3+
"env": {
4+
"builtin": true,
5+
"es6": true,
6+
"mocha": true,
7+
"node": true
8+
},
9+
"ignorePatterns": [
10+
"**/lib",
11+
"**/lib-test",
12+
"**/dist",
13+
"test-server/**"
14+
],
15+
"rules": {
16+
"no-loss-of-precision": "off",
17+
"no-unused-vars": [
18+
"error",
19+
{
20+
"argsIgnorePattern": "^_"
21+
}
22+
],
23+
"no-var": "error",
24+
"prefer-const": "error",
25+
"prefer-rest-params": "error",
26+
"prefer-spread": "error",
27+
"curly": "error",
28+
"no-console": [
29+
"warn",
30+
{
31+
"allow": [
32+
"warn",
33+
"error"
34+
]
35+
}
36+
]
37+
},
38+
"overrides": [
39+
{
40+
"files": [
41+
"test/elm/**/*.js"
42+
],
43+
"rules": {
44+
"unicorn/no-empty-file": "off"
45+
}
46+
}
47+
]
48+
}

.prettierignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
lib
22
lib-test
3+
dist
34
node_modules
45
.nyc_output
56
.vscode
67
coverage
7-
cql4browsers.js
88
# the following uses its own prettier config
99
test-server
1010
# the following are generated by the test generator

.vscode/extensions.json

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"recommendations": [
3+
// recommended for lint and code formatting
4+
"oxc.oxc-vscode",
5+
"esbenp.prettier-vscode"
6+
]
7+
}

.vscode/settings.sample.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"[javascript][typescript][typescriptreact]": {
3+
"editor.formatOnSave": true,
4+
"editor.defaultFormatter": "esbenp.prettier-vscode"
5+
},
6+
"[json]": {
7+
"editor.formatOnSave": true,
8+
"editor.defaultFormatter": "vscode.json-language-features"
9+
}
10+
}

DEPENDENCY_NOTES.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,4 @@ The following notes about the app's dependencies should be revisited and resolve
33
As of 2026-07-27:
44

55
- `@types/node`: Consider updating to `26.x` in the future, but for now `24.x` still has plent of time in LTS.
6-
- `typescript`: `7.x` uses a new native compiler without a native API. Libraries like `ts-node` and `typescript-eslint` do not yet support it.
76
- `tslog` (test-server only): `5.x` is ESM-only and replaces v4's flat logger settings such as `hideLogPositionForProduction` and `prettyLogTemplate`. Updating will require some migration.

0 commit comments

Comments
 (0)