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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy