Skip to content

Commit d3e4ec3

Browse files
committed
feat: add native Node ESM, with ESM lite export
BREAKING CHANGE: Adds `exports` and changes path for /parser.js to /parser.cjs Also: - chore: updates estraverse - chore: updates devDeps. - chore: lints - test: switches to c8 for ESM testing
1 parent 7c3800a commit d3e4ec3

File tree

7 files changed

+48
-36
lines changed

7 files changed

+48
-36
lines changed

.eslintignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
node_modules
22
dist
3-
parser.js
3+
parser.cjs
44

55
!.eslintrc.js
File renamed without changes.

esquery.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/* vim: set sw=4 sts=4 : */
22
import estraverse from 'estraverse';
3-
import parser from './parser.js';
3+
import parser from './parser.cjs';
44

55
/**
66
* @typedef {"LEFT_SIDE"|"RIGHT_SIDE"} Side

package.json

Lines changed: 32 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,27 @@
44
"author": "Joel Feenstra <[email protected]>",
55
"contributors": [],
66
"description": "A query library for ECMAScript AST using a CSS selector like query language.",
7-
"main": "dist/esquery.min.js",
8-
"module": "dist/esquery.esm.min.js",
7+
"type": "module",
8+
"main": "./dist/esquery.min.js",
9+
"module": "./dist/esquery.esm.min.js",
10+
"exports": {
11+
".": {
12+
"import": "./dist/esquery.esm.min.js",
13+
"require": "./dist/esquery.min.js"
14+
},
15+
"./lite": {
16+
"import": "./dist/esquery.lite.esm.min.js",
17+
"require": "./dist/esquery.lite.min.js"
18+
}
19+
},
920
"files": [
1021
"dist/*.js",
1122
"dist/*.map",
12-
"parser.js",
23+
"parser.cjs",
1324
"license.txt",
1425
"README.md"
1526
],
16-
"nyc": {
27+
"c8": {
1728
"branches": 100,
1829
"lines": 100,
1930
"functions": 100,
@@ -23,18 +34,18 @@
2334
"text"
2435
],
2536
"exclude": [
26-
"parser.js",
37+
"parser.cjs",
2738
"dist",
2839
"tests"
2940
]
3041
},
3142
"scripts": {
3243
"prepublishOnly": "npm run build && npm test",
33-
"build:parser": "rm parser.js && pegjs --cache --format umd -o \"parser.js\" \"grammar.pegjs\"",
44+
"build:parser": "rm parser.cjs && pegjs --cache --format umd -o \"parser.cjs\" \"grammar.pegjs\"",
3445
"build:browser": "rollup -c",
3546
"build": "npm run build:parser && npm run build:browser",
36-
"mocha": "mocha --require chai/register-assert --require @babel/register tests",
37-
"test": "nyc npm run mocha && npm run lint",
47+
"mocha": "mocha --require chai/register-assert.js --require @babel/register tests",
48+
"test": "c8 npm run mocha && npm run lint",
3849
"test:ci": "npm run mocha",
3950
"lint": "eslint ."
4051
},
@@ -51,28 +62,28 @@
5162
"query"
5263
],
5364
"devDependencies": {
54-
"@babel/core": "^7.9.0",
55-
"@babel/preset-env": "^7.9.5",
56-
"@babel/register": "^7.9.0",
57-
"@rollup/plugin-commonjs": "^11.1.0",
58-
"@rollup/plugin-json": "^4.0.2",
59-
"@rollup/plugin-node-resolve": "^7.1.3",
65+
"@babel/core": "^7.17.5",
66+
"@babel/preset-env": "^7.16.11",
67+
"@babel/register": "^7.17.0",
68+
"@rollup/plugin-commonjs": "^21.0.2",
69+
"@rollup/plugin-json": "^4.1.0",
70+
"@rollup/plugin-node-resolve": "^13.1.3",
6071
"babel-plugin-transform-es2017-object-entries": "0.0.5",
61-
"chai": "^4.2.0",
62-
"eslint": "^6.8.0",
72+
"c8": "^7.11.0",
73+
"chai": "^4.3.6",
74+
"eslint": "^8.11.0",
6375
"esprima": "~4.0.1",
64-
"mocha": "^7.1.1",
65-
"nyc": "^15.0.1",
76+
"mocha": "^9.2.2",
6677
"pegjs": "~0.10.0",
67-
"rollup": "^1.32.1",
78+
"rollup": "^2.70.0",
6879
"rollup-plugin-babel": "^4.4.0",
69-
"rollup-plugin-terser": "^5.3.0"
80+
"rollup-plugin-terser": "^7.0.2"
7081
},
7182
"license": "BSD-3-Clause",
7283
"engines": {
7384
"node": ">=0.10"
7485
},
7586
"dependencies": {
76-
"estraverse": "^5.1.0"
87+
"estraverse": "^5.3.0"
7788
}
7889
}

parser.js renamed to parser.cjs

File renamed without changes.

rollup.config.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,5 +60,6 @@ export default [
6060
getRollupObject({ minifying: true, format: 'esm' }),
6161
getRollupObject({ minifying: false, format: 'esm' }),
6262
getRollupObject({ minifying: true, format: 'umd', lite: true }),
63-
getRollupObject({ minifying: false, format: 'umd', lite: true })
63+
getRollupObject({ minifying: false, format: 'umd', lite: true }),
64+
getRollupObject({ minifying: true, format: 'esm', lite: true })
6465
];

tests/parser.js

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
1-
import esquery from "../esquery.js";
1+
import esquery from '../esquery.js';
22

3-
describe("basic query parsing", function () {
3+
describe('basic query parsing', function () {
44

5-
it("empty query", function () {
6-
assert.equal(void 0, esquery.parse(""));
7-
assert.equal(void 0, esquery.parse(" "));
5+
it('empty query', function () {
6+
assert.equal(void 0, esquery.parse(''));
7+
assert.equal(void 0, esquery.parse(' '));
88
});
99

10-
it("leading/trailing whitespace", function () {
11-
assert.notEqual(void 0, esquery.parse(" A"));
12-
assert.notEqual(void 0, esquery.parse(" A"));
13-
assert.notEqual(void 0, esquery.parse("A "));
14-
assert.notEqual(void 0, esquery.parse("A "));
15-
assert.notEqual(void 0, esquery.parse(" A "));
16-
assert.notEqual(void 0, esquery.parse(" A "));
10+
it('leading/trailing whitespace', function () {
11+
assert.notEqual(void 0, esquery.parse(' A'));
12+
assert.notEqual(void 0, esquery.parse(' A'));
13+
assert.notEqual(void 0, esquery.parse('A '));
14+
assert.notEqual(void 0, esquery.parse('A '));
15+
assert.notEqual(void 0, esquery.parse(' A '));
16+
assert.notEqual(void 0, esquery.parse(' A '));
1717
});
1818
});

0 commit comments

Comments
 (0)