Skip to content

Commit 5c1df57

Browse files
Implementation
1 parent 3382952 commit 5c1df57

25 files changed

+591
-920
lines changed

.gitignore

+5
Original file line numberDiff line numberDiff line change
@@ -78,3 +78,8 @@ typings/
7878

7979

8080
# End of https://www.gitignore.io/api/node
81+
82+
*.tsbuildinfo
83+
/dist/
84+
index.js
85+
index.d.ts

index.js

-2
This file was deleted.

package.json

+18-19
Original file line numberDiff line numberDiff line change
@@ -5,39 +5,38 @@
55
"main": "dist/index.cjs.js",
66
"module": "dist/index.esm.js",
77
"scripts": {
8+
"build": "yarn run bundle",
89
"bundle": "rollup -c",
9-
"test": "node test.js"
10+
"test": "node src/test.js"
1011
},
1112
"files": [
1213
"dist"
1314
],
1415
"author": "nteract & vega",
1516
"license": "MIT",
16-
"publishConfig": {
17-
"access": "public"
17+
"private": true,
18+
"workspaces": {
19+
"packages": [
20+
"packages/*"
21+
]
1822
},
1923
"dependencies": {
2024
"d3": "3.5.17",
2125
"d3-cloud": "^1.2.5",
2226
"d3-request": "^1.0.6",
23-
"d3-scale-chromatic": "^1.3.3",
24-
"datalib": "^1.9.1",
27+
"d3-scale-chromatic": "^1.5.0",
28+
"datalib": "^1.9.2",
2529
"json-stable-stringify": "^1.0.1"
2630
},
2731
"devDependencies": {
28-
"rollup": "^0.66.6",
29-
"rollup-plugin-cleanup": "^3.0.0",
30-
"rollup-plugin-commonjs": "^9.2.0",
31-
"rollup-plugin-json": "^3.1.0",
32-
"rollup-plugin-node-resolve": "^3.4.0",
33-
"vega-2": "npm:vega@^2",
34-
"vega-3": "npm:vega@^3",
35-
"vega-4": "npm:vega@^4",
36-
"vega-5": "npm:vega@^5",
37-
"vega-embed": "^6.2.1",
38-
"vega-lite-1": "npm:vega-lite@^1",
39-
"vega-lite-2": "npm:vega-lite@^2",
40-
"vega-lite-3": "npm:vega-lite@^3",
41-
"vega-lite-4": "npm:vega-lite@^4"
32+
"@rollup/plugin-json": "^4.0.0",
33+
"@rollup/plugin-node-resolve": "^6.0.0",
34+
"@rollup/plugin-replace": "^2.2.1",
35+
"rollup": "^1.27.11",
36+
"rollup-plugin-cleanup": "^3.1.1",
37+
"rollup-plugin-commonjs": "^10.1.0",
38+
"rollup-plugin-progress": "^1.1.1",
39+
"typescript": "^3.7.3",
40+
"tslib": "^1.10.0"
4241
}
4342
}

packages/any-vega/index.ts

+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
import * as v5 from "vega-embed-v5";
2+
import * as v6 from "vega-embed-v6";
3+
4+
type EmbedV5 = (el: HTMLElement | string, spec: v5.VisualizationSpec, opt?: v5.EmbedOptions) => Promise<v5.Result>;
5+
type EmbedV6 = (el: HTMLElement | string, spec: v6.VisualizationSpec, opt?: v6.EmbedOptions) => Promise<v6.Result>;
6+
7+
interface VegaEmbeds {
8+
v3: EmbedV5;
9+
v4: EmbedV5;
10+
v5: EmbedV6;
11+
}
12+
13+
export const vega: VegaEmbeds = {
14+
v3: (el, spec, opt) => import("vg3vl2").then((({embed}) => embed(el, spec, opt))),
15+
v4: (el, spec, opt) => import("vg4vl2").then((({embed}) => embed(el, spec, opt))),
16+
v5: (el, spec, opt) => import("vg5vl4").then((({embed}) => embed(el, spec, opt))),
17+
};
18+
19+
interface VegaLiteEmbeds {
20+
v2: EmbedV5;
21+
v3: EmbedV5;
22+
v4: EmbedV6;
23+
}
24+
25+
export const vegaLite: VegaLiteEmbeds = {
26+
v2: (el, spec, opt) => import("vg3vl2").then((({embed}) => embed(el, spec, opt))),
27+
v3: (el, spec, opt) => import("vg5vl3").then((({embed}) => embed(el, spec, opt))),
28+
v4: (el, spec, opt) => import("vg5vl4").then((({embed}) => embed(el, spec, opt))),
29+
};

packages/any-vega/package.json

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"name": "any-vega",
3+
"version": "1.0.0",
4+
"dependencies": {},
5+
"devDependencies": {
6+
"vega-embed-v6": "npm:vega-embed@^6",
7+
"vega-embed-v5": "npm:vega-embed@^5",
8+
"vega": "^5.9.0",
9+
"vega-lite": "^4.0.0"
10+
}
11+
}

packages/any-vega/tsconfig.json

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"extends": "../../tsconfig.base",
3+
"include": ["index.ts"],
4+
"references": [
5+
{ "path": "../vg3vl2" },
6+
{ "path": "../vg4vl2" },
7+
{ "path": "../vg5vl3" },
8+
{ "path": "../vg5vl4" }
9+
]
10+
}

packages/tsconfig.json

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"files": [],
3+
"references": [
4+
{ "path": "any-vega" },
5+
{ "path": "vg3vl2" },
6+
{ "path": "vg4vl2" },
7+
{ "path": "vg5vl3" },
8+
{ "path": "vg5vl4" }
9+
]
10+
}

packages/vg3vl2/index.ts

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
import embed from "vega-embed";
2+
export { embed };

packages/vg3vl2/package.json

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"name": "vg3vl2",
3+
"version": "1.0.0",
4+
"dependencies": {
5+
"vega": "^3.3.1",
6+
"vega-lite": "^2.7.0",
7+
"vega-embed": "^5.1.3"
8+
}
9+
}

packages/vg3vl2/tsconfig.json

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"extends": "../../tsconfig.base",
3+
"include": ["index.ts"]
4+
}

packages/vg4vl2/index.ts

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
import embed from "vega-embed";
2+
export { embed };

packages/vg4vl2/package.json

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"name": "vg4vl2",
3+
"version": "1.0.0",
4+
"dependencies": {
5+
"vega": "^4.4.0",
6+
"vega-lite": "^2.7.0",
7+
"vega-embed": "^5.1.3"
8+
}
9+
}

packages/vg4vl2/tsconfig.json

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"extends": "../../tsconfig.base",
3+
"include": ["index.ts"]
4+
}

packages/vg5vl3/index.ts

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
import embed from "vega-embed";
2+
export { embed };

packages/vg5vl3/package.json

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"name": "vg5vl3",
3+
"version": "1.0.0",
4+
"dependencies": {
5+
"vega": "^5.9.0",
6+
"vega-lite": "^3.4.0",
7+
"vega-embed": "^5.1.3"
8+
}
9+
}

packages/vg5vl3/tsconfig.json

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"extends": "../../tsconfig.base",
3+
"include": ["index.ts"]
4+
}

packages/vg5vl4/index.ts

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
import embed from "vega-embed";
2+
export { embed };

packages/vg5vl4/package.json

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"name": "vg5vl4",
3+
"version": "1.0.0",
4+
"dependencies": {
5+
"vega": "^5.9.0",
6+
"vega-lite": "^4.0.0",
7+
"vega-embed": "^6.2.1"
8+
}
9+
}

packages/vg5vl4/tsconfig.json

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"extends": "../../tsconfig.base",
3+
"include": ["index.ts"]
4+
}

rollup.config.js

+33-29
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,40 @@
1-
import json from "rollup-plugin-json";
2-
import resolve from "rollup-plugin-node-resolve";
1+
import json from "@rollup/plugin-json";
2+
import resolve from "@rollup/plugin-node-resolve";
33
import commonjs from "rollup-plugin-commonjs";
44
import cleanup from "rollup-plugin-cleanup";
5-
import pkg from "./package.json";
5+
import progress from 'rollup-plugin-progress';
6+
7+
const options = {
8+
context: "null",
9+
external: [
10+
"datalib",
11+
"datalib/src/util",
12+
"datalib/src/import/load",
13+
"d3",
14+
"d3-cloud",
15+
"d3-force",
16+
"d3-geo-projection",
17+
"d3-request",
18+
"d3-scale-chromatic",
19+
"json-stable-stringify",
20+
],
21+
plugins: [
22+
progress(),
23+
resolve(),
24+
json(),
25+
commonjs({
26+
sourceMap: false,
27+
ignore: ["canvas"],
28+
}),
29+
cleanup({ comments: "none" }),
30+
],
31+
};
632

733
export default [
8-
{
9-
input: "index.js",
10-
external: [
11-
"datalib",
12-
"datalib/src/util",
13-
"datalib/src/import/load",
14-
"d3",
15-
"d3-cloud",
16-
"d3-request",
17-
"d3-scale-chromatic",
18-
"json-stable-stringify"
19-
],
34+
Object.assign({
35+
input: "packages/any-vega/index.js",
2036
output: [
21-
{ file: pkg.main, format: "cjs" },
22-
{ file: pkg.module, format: "es" }
37+
{ dir: "dist", format: "cjs" },
2338
],
24-
plugins: [
25-
resolve({
26-
only: [/^vega.*$/]
27-
}),
28-
json(),
29-
commonjs({
30-
sourceMap: false,
31-
ignore: ["canvas"]
32-
}),
33-
cleanup({ comments: "none" })
34-
]
35-
}
39+
}, options),
3640
];

src/test.js

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
global.window = undefined;
2+
3+
const x = require("../dist");
4+
5+
console.log(x);

test.js

-1
This file was deleted.

tsconfig.base.json

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
{
2+
"compilerOptions": {
3+
"strict": true,
4+
"declaration": true,
5+
"esModuleInterop": true,
6+
"composite": true,
7+
"lib": ["esnext", "dom"],
8+
"target": "es2017",
9+
"module": "commonjs",
10+
"moduleResolution": "node",
11+
"skipLibCheck": true,
12+
"noImplicitAny": true,
13+
"plugins": [
14+
{ "name": "typescript-styled-plugin" },
15+
{ "name": "typescript-tslint-plugin" }
16+
],
17+
"resolveJsonModule": true,
18+
"preserveWatchOutput": true,
19+
"jsx": "react",
20+
"typeRoots": ["./node_modules/@types", "types"]
21+
}
22+
}

tsconfig.json

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"files": [],
3+
"references": [
4+
{ "path": "packages" }
5+
]
6+
}

0 commit comments

Comments
 (0)