Skip to content

Commit fcd8045

Browse files
committed
turn into a ES module
1 parent be77fbe commit fcd8045

File tree

6 files changed

+32
-14
lines changed

6 files changed

+32
-14
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
quickselect.js
2+
*.log

bench.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1-
'use strict';
21

3-
var quickselect = require('./');
2+
import quickselect from './';
43

54
var N = 10000000;
65
var arr = [];

index.js

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,5 @@
1-
'use strict';
21

3-
module.exports = quickselect;
4-
module.exports.default = quickselect;
5-
6-
function quickselect(arr, k, left, right, compare) {
2+
export default function quickselect(arr, k, left, right, compare) {
73
quickselectStep(arr, k, left || 0, right || (arr.length - 1), compare || defaultCompare);
84
}
95

package.json

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,33 @@
22
"name": "quickselect",
33
"version": "1.0.1",
44
"description": "A tiny and fast selection algorithm in JavaScript.",
5-
"main": "index.js",
5+
"module": "index.js",
6+
"main": "quickselect.js",
67
"dependencies": {},
78
"devDependencies": {
89
"eslint": "^4.19.1",
910
"eslint-config-mourner": "^2.0.3",
11+
"esm": "^3.0.15",
12+
"rollup": "^0.57.1",
1013
"tape": "^4.9.0"
1114
},
1215
"eslintConfig": {
13-
"extends": "mourner"
16+
"extends": "mourner",
17+
"parserOptions": {
18+
"sourceType": "module"
19+
}
1420
},
1521
"scripts": {
16-
"pretest": "eslint index.js test.js",
17-
"test": "tape test.js"
22+
"pretest": "eslint index.js test.js bench.js",
23+
"test": "node -r esm test.js",
24+
"bench": "node -r esm bench.js",
25+
"build": "rollup -c",
26+
"prepublishOnly": "npm run build"
1827
},
28+
"files": [
29+
"index.js",
30+
"quickselect.js"
31+
],
1932
"keywords": [
2033
"selection",
2134
"algorithm",

rollup.config.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
export default {
2+
input: 'index.js',
3+
output: {
4+
name: 'quickselect',
5+
format: 'umd',
6+
file: 'quickselect.js',
7+
indent: false
8+
}
9+
};

test.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
1-
'use strict';
21

3-
var test = require('tape').test;
4-
var quickselect = require('./');
2+
import test from 'tape';
3+
import quickselect from './';
54

65
test('selection', function (t) {
76
var arr = [65, 28, 59, 33, 21, 56, 22, 95, 50, 12, 90, 53, 28, 77, 39];

0 commit comments

Comments
 (0)