Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit fb7725b

Browse files
committed
Use rollup instead of webpack
1 parent 9f1248b commit fb7725b

File tree

9 files changed

+413
-3599
lines changed

9 files changed

+413
-3599
lines changed

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/.idea
22
/node_modules
3+
/.rpt2_cache
34
/dist
45
/npm-debug.log
56
.DS_Store
6-
*.d.ts

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ npm install algorithm-visualizer
1414
## Usage
1515

1616
```js
17-
import { LogTracer } from 'algorithm-visualizer';
17+
const { LogTracer } = require('algorithm-visualizer');
1818

1919
const logTracer = new LogTracer('Scratch Paper');
2020

package-lock.json

Lines changed: 284 additions & 3496 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 22 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,35 @@
11
{
22
"name": "algorithm-visualizer",
3-
"version": "2.3.2",
3+
"version": "2.3.3",
44
"description": "Visualization Library for JavaScript",
55
"keywords": [
66
"algorithm",
77
"data-structure",
88
"visualization",
99
"animation"
1010
],
11-
"main": "dist/algorithm-visualizer.js",
12-
"types": "dist/algorithm-visualizer.d.ts",
13-
"scripts": {
14-
"build": "node ./node_modules/webpack/bin/webpack --bail --progress --config webpack.config.js",
15-
"prepublish": "npm run build"
16-
},
17-
"repository": {
18-
"type": "git",
19-
"url": "git+https://github.com/algorithm-visualizer/tracers.js.git"
20-
},
21-
"license": "MIT",
22-
"devDependencies": {
23-
"@types/node": "^10.12.18",
24-
"clean-webpack-plugin": "^0.1.19",
25-
"dts-bundle": "^0.7.3",
26-
"ts-loader": "^5.3.3",
27-
"typescript": "^3.2.4",
28-
"uglifyjs-webpack-plugin": "^1.2.7",
29-
"webpack": "^4.15.1",
30-
"webpack-cli": "^3.0.8",
31-
"webpack-node-externals": "^1.7.2"
32-
},
11+
"main": "dist/index.cjs.js",
12+
"module": "dist/index.esm.js",
13+
"browser": "dist/index.umd.js",
14+
"types": "dist/types",
3315
"dependencies": {
3416
"axios": "^0.18.0",
3517
"opn": "^5.4.0"
36-
}
18+
},
19+
"devDependencies": {
20+
"@types/node": "^12.0.8",
21+
"rollup": "^1.15.1",
22+
"rollup-plugin-typescript2": "^0.21.1",
23+
"tslib": "^1.10.0",
24+
"typescript": "^3.5.1"
25+
},
26+
"scripts": {
27+
"dev": "rollup -c -w",
28+
"build": "rm -rf dist && rollup -c",
29+
"test": "node ./test",
30+
"prepublishOnly": "npm run build"
31+
},
32+
"files": [
33+
"dist"
34+
]
3735
}

rollup.config.js

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import typescript from 'rollup-plugin-typescript2';
2+
import pkg from './package.json';
3+
4+
export default [{
5+
input: 'src/index.ts',
6+
plugins: [
7+
typescript({
8+
useTsconfigDeclarationDir: true,
9+
}),
10+
],
11+
output: [
12+
{ file: pkg.main, format: 'cjs' },
13+
{ file: pkg.module, format: 'es' },
14+
{ file: pkg.browser, name: 'AlgorithmVisualizer', format: 'umd' },
15+
],
16+
}];

src/Randomize.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,7 @@ class Graph extends Randomizer {
144144

145145
export default {
146146
Integer,
147+
Double,
147148
String,
148149
Array1D,
149150
Array2D,

test/index.js

Lines changed: 76 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,79 @@
1-
const { LogTracer, VerticalLayout } = require('../dist/algorithm-visualizer');
1+
// import visualization libraries {
2+
const { Tracer, Array1DTracer, Array2DTracer, ChartTracer, Randomize, Layout, VerticalLayout } = require('..');
3+
// }
24

3-
const logTracer = new LogTracer();
4-
new VerticalLayout([logTracer]);
5+
// define tracer variables {
6+
const chartTracer = new ChartTracer('Chart');
7+
const arrayTracer = new Array1DTracer('Array');
8+
const bucketsTracer = new Array2DTracer('Buckets');
9+
Layout.setRoot(new VerticalLayout([chartTracer, arrayTracer, bucketsTracer]));
10+
// }
511

6-
logTracer.set('haahahahaa: ');
12+
// define input variables
13+
const N = 25; // the size of an array
14+
const K = 5; // the number of buckets
15+
const array = new Randomize.Array1D(N, new Randomize.Integer(0, 999)).create();
716

8-
for (let i = 0; i < 3; i++)
9-
logTracer.print('tt ee ss tt').delay();
17+
(function main() {
18+
// create K buckets
19+
const buckets = [...new Array(K)].map(() => []);
20+
// visualize {
21+
arrayTracer.chart(chartTracer);
22+
arrayTracer.set(array);
23+
bucketsTracer.set(buckets);
24+
Tracer.delay();
25+
// }
26+
27+
// find the maximum value that will be used for distribution
28+
const max = Math.max(...array);
29+
30+
// distribute the elements into the buckets
31+
for (let i = 0; i < N; i++) {
32+
const number = array[i];
33+
const bucketIndex = Math.floor(number / (max + 1) * K);
34+
const bucket = buckets[bucketIndex];
35+
bucket.push(number);
36+
// visualize {
37+
arrayTracer.select(i);
38+
bucketsTracer.patch(bucketIndex, bucket.length - 1, number);
39+
Tracer.delay();
40+
bucketsTracer.depatch(bucketIndex, bucket.length - 1);
41+
// }
42+
43+
// insertion sort within the bucket
44+
let j = bucket.length - 1;
45+
while (j > 0 && bucket[j - 1] > bucket[j]) {
46+
const temp = bucket[j - 1];
47+
bucket[j - 1] = bucket[j];
48+
bucket[j] = temp;
49+
// visualize {
50+
bucketsTracer.patch(bucketIndex, j - 1, bucket[j - 1]);
51+
bucketsTracer.patch(bucketIndex, j, bucket[j]);
52+
Tracer.delay();
53+
bucketsTracer.depatch(bucketIndex, j - 1);
54+
bucketsTracer.depatch(bucketIndex, j);
55+
// }
56+
j--;
57+
}
58+
// visualize {
59+
arrayTracer.deselect(i);
60+
// }
61+
}
62+
63+
// concatenate the buckets back into the array
64+
let i = 0;
65+
for (let bucketIndex = 0; bucketIndex < K; bucketIndex++) {
66+
const bucket = buckets[bucketIndex];
67+
for (let j = 0; j < bucket.length; j++) {
68+
array[i] = bucket[j];
69+
// visualize {
70+
arrayTracer.patch(i, array[i]);
71+
bucketsTracer.select(bucketIndex, j);
72+
Tracer.delay();
73+
bucketsTracer.deselect(bucketIndex, j);
74+
arrayTracer.depatch(i);
75+
// }
76+
i++;
77+
}
78+
}
79+
})();

tsconfig.json

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,16 @@
11
{
22
"compilerOptions": {
3-
"noImplicitAny": true,
4-
"strictNullChecks": true,
5-
"types": [
6-
"node"
7-
],
8-
"lib": [
9-
"es6"
10-
],
113
"target": "es5",
12-
"declaration": true
13-
}
4+
"sourceMap": true,
5+
"declaration": true,
6+
"declarationDir": "dist/types",
7+
"strict": true,
8+
"noUnusedLocals": true,
9+
"lib": [
10+
"es2017"
11+
]
12+
},
13+
"include": [
14+
"src"
15+
]
1416
}

webpack.config.js

Lines changed: 0 additions & 61 deletions
This file was deleted.

0 commit comments

Comments
 (0)