Skip to content

Commit 3ebf612

Browse files
authored
Merge pull request #261 from APIDevTools/feat/fix-ci
fix: bump dependencies, fix tests, fix imports from deps
2 parents 7a2245b + d3b4d91 commit 3ebf612

27 files changed

+7714
-65012
lines changed

.eslintrc.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
# https://jstools.dev/eslint-config/
44

55
root: true
6-
extends: "@jsdevtools"
6+
extends: "./eslint-config/lib/index.js"
77
env:
88
node: true
99
browser: true

.github/workflows/CI-CD.yaml

+6-47
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,7 @@ jobs:
2222
- macos-latest
2323
- windows-latest
2424
node:
25-
- 16
26-
# - 18 TODO bring this back
25+
- 20
2726

2827
steps:
2928
- name: Checkout source
@@ -33,7 +32,7 @@ jobs:
3332
uses: actions/setup-node@v3
3433
with:
3534
node-version: ${{ matrix.node }}
36-
cache: 'npm'
35+
cache: "npm"
3736

3837
- name: Install dependencies
3938
run: npm ci
@@ -53,52 +52,13 @@ jobs:
5352
github-token: ${{ secrets.GITHUB_TOKEN }}
5453
parallel: true
5554

56-
browser_tests:
57-
name: Browser Tests
58-
runs-on: ${{ matrix.os }}
59-
timeout-minutes: 10
60-
strategy:
61-
fail-fast: true
62-
matrix:
63-
os:
64-
- ubuntu-latest # Chrome, Firefox, Safari (TODO)
65-
# - windows-latest # Internet Explorer, Edge
66-
67-
steps:
68-
- name: Checkout source
69-
uses: actions/checkout@v3
70-
71-
- name: Install Node
72-
uses: actions/setup-node@v3
73-
with:
74-
node-version: 12
75-
cache: 'npm'
76-
77-
- name: Install dependencies
78-
run: npm ci
79-
80-
- name: Run tests
81-
run: npm run coverage:browser
82-
83-
- name: Combine code coverage data into a single file
84-
shell: bash
85-
run: |
86-
ls -Rlh coverage/*/lcov.info
87-
cat coverage/*/lcov.info > ./coverage/lcov.info
88-
89-
- name: Send code coverage results to Coveralls
90-
uses: coverallsapp/[email protected]
91-
with:
92-
github-token: ${{ secrets.GITHUB_TOKEN }}
93-
parallel: true
9455

9556
coverage:
9657
name: Code Coverage
9758
runs-on: ubuntu-latest
9859
timeout-minutes: 10
9960
needs:
10061
- node_tests
101-
- browser_tests
10262
steps:
10363
- name: Let Coveralls know that all tests have finished
10464
uses: coverallsapp/[email protected]
@@ -113,17 +73,16 @@ jobs:
11373
timeout-minutes: 10
11474
needs:
11575
- node_tests
116-
- browser_tests
11776

11877
steps:
11978
- name: Checkout source
120-
uses: actions/checkout@v3
79+
uses: actions/checkout@v4
12180

12281
- name: Install Node
123-
uses: actions/setup-node@v3
82+
uses: actions/setup-node@v4
12483
with:
125-
node-version: 12
126-
cache: 'npm'
84+
node-version: 20
85+
cache: "npm"
12786

12887
- name: Install dependencies
12988
run: npm ci

build-website.mjs

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import {build} from "esbuild";
2+
import {polyfillNode} from "esbuild-plugin-polyfill-node";
3+
4+
await build({
5+
entryPoints: ["online/src/js/index.js"],
6+
bundle: true,
7+
minify: true,
8+
sourcemap: 'external',
9+
target: 'chrome60',
10+
outfile: "online/js/bundle.js",
11+
plugins: [
12+
polyfillNode({
13+
// Options (optional)
14+
}),
15+
],
16+
});

eslint-config/lib/index.js

+69
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
"use strict";
2+
3+
const universalRules = require("./universal-rules");
4+
const universalJSDocRules = require("./universal-jsdoc-rules");
5+
const javascriptRules = require("./javascript-rules");
6+
const javascriptJSDocRules = require("./javascript-jsdoc-rules");
7+
const javascriptTestRules = require("./javascript-test-rules");
8+
9+
module.exports = {
10+
plugins: [
11+
"jsdoc",
12+
],
13+
overrides: [
14+
/**
15+
* JavaScript source files
16+
*/
17+
{
18+
files: ["**/*.{js,jsx}"],
19+
excludedFiles: "test/**",
20+
parserOptions: {
21+
sourceType: "script",
22+
ecmaVersion: 2020,
23+
ecmaFeatures: {
24+
jsx: true,
25+
},
26+
},
27+
plugins: [
28+
"jsdoc",
29+
],
30+
env: {
31+
es2020: true,
32+
commonjs: true,
33+
"shared-node-browser": true,
34+
},
35+
rules: {
36+
...universalRules,
37+
...universalJSDocRules,
38+
...javascriptRules,
39+
...javascriptJSDocRules,
40+
}
41+
},
42+
43+
/**
44+
* JavaScript test files
45+
*/
46+
{
47+
files: ["test/**/*.{js,jsx}"],
48+
parserOptions: {
49+
sourceType: "script",
50+
ecmaVersion: 2020,
51+
},
52+
ecmaFeatures: {
53+
jsx: true,
54+
},
55+
env: {
56+
es2020: true,
57+
commonjs: true,
58+
"shared-node-browser": true,
59+
mocha: true,
60+
jasmine: true,
61+
},
62+
rules: {
63+
...universalRules,
64+
...javascriptRules,
65+
...javascriptTestRules,
66+
}
67+
},
68+
],
69+
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
"use strict";
2+
3+
/**
4+
* JSDoc rules for JavaScript and TypeScript
5+
*/
6+
module.exports = {
7+
/**
8+
* @see https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-check-types
9+
*/
10+
"jsdoc/check-types": "warn",
11+
12+
/**
13+
* @see https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-no-undefined-types
14+
*/
15+
"jsdoc/no-undefined-types": "warn",
16+
17+
/**
18+
* @see https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-param-type
19+
*/
20+
"jsdoc/require-param-type": "warn",
21+
22+
/**
23+
* @see https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-property-type
24+
*/
25+
"jsdoc/require-property-type": "warn",
26+
27+
/**
28+
* @see https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-returns-type
29+
*/
30+
"jsdoc/require-returns-type": "warn",
31+
32+
/**
33+
* @see https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-valid-types
34+
*/
35+
"jsdoc/valid-types": "warn",
36+
};

0 commit comments

Comments
 (0)