Skip to content

Commit 273f027

Browse files
authored
arrow (#223)
1 parent 46d5290 commit 273f027

File tree

5 files changed

+13
-2
lines changed

5 files changed

+13
-2
lines changed

bin/resolve-dependencies

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,10 @@ const fetch = require("node-fetch");
6060
const package = await resolve("vega-lite-api");
6161
console.log(`export const vegaliteApi = dependency("${package.name}", "${package.version}", "${package.export}");`);
6262
}
63+
{
64+
const package = await resolve("apache-arrow@4");
65+
console.log(`export const arrow = dependency("${package.name}", "${package.version}", "${package.export}");`);
66+
}
6367
})();
6468

6569
async function resolve(specifier) {

src/dependencies.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,4 @@ export const sql = dependency("sql.js", "1.5.0", "dist/sql-wasm.js");
1313
export const vega = dependency("vega", "5.20.2", "build/vega.min.js");
1414
export const vegalite = dependency("vega-lite", "5.1.0", "build/vega-lite.min.js");
1515
export const vegaliteApi = dependency("vega-lite-api", "5.0.0", "build/vega-lite-api.min.js");
16+
export const arrow = dependency("apache-arrow", "4.0.1", "Arrow.es2015.min.js");

src/fileAttachment.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import {require as requireDefault} from "d3-require";
2-
import {d3Dsv} from "./dependencies.js";
2+
import {arrow, d3Dsv} from "./dependencies.js";
33
import {SQLiteDatabaseClient} from "./sqlite.js";
44
import jszip from "./zip.js";
55

@@ -53,6 +53,10 @@ class AbstractFile {
5353
i.src = url;
5454
});
5555
}
56+
async arrow() {
57+
const [Arrow, response] = await Promise.all([requireDefault(arrow.resolve()), remote_fetch(this)]);
58+
return Arrow.Table.from(response);
59+
}
5660
async sqlite() {
5761
return SQLiteDatabaseClient.open(remote_fetch(this));
5862
}

src/library.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,13 @@ import svg from "./svg.js";
1515
import tex from "./tex.js";
1616
import vegalite from "./vegalite.js";
1717
import width from "./width.js";
18-
import {d3, graphviz, htl, inputs, lodash, plot} from "./dependencies.js";
18+
import {arrow, d3, graphviz, htl, inputs, lodash, plot} from "./dependencies.js";
1919

2020
export default Object.assign(function Library(resolver) {
2121
const require = requirer(resolver);
2222
Object.defineProperties(this, properties({
2323
FileAttachment: () => NoFileAttachments,
24+
Arrow: () => require(arrow.resolve()),
2425
Inputs: () => require(inputs.resolve()),
2526
Mutable: () => Mutable,
2627
Plot: () => require(plot.resolve()),

test/index-test.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import {Library} from "../src/index.js";
33

44
test("new Library returns a library with the expected keys", async t => {
55
t.deepEqual(Object.keys(new Library()).sort(), [
6+
"Arrow",
67
"DOM",
78
"FileAttachment",
89
"Files",

0 commit comments

Comments
 (0)