Skip to content

Commit 12a9000

Browse files
authored
add sample datasets (#284)
* add sample datasets * aapl, alphabet, citywages, industries * add links
1 parent 8c0110c commit 12a9000

File tree

3 files changed

+41
-15
lines changed

3 files changed

+41
-15
lines changed

src/fileAttachment.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ export class AbstractFile {
7979
}
8080
}
8181

82-
class FileAttachment extends AbstractFile {
82+
export class FileAttachment extends AbstractFile {
8383
constructor(url, name, mimeType) {
8484
super(name, mimeType);
8585
Object.defineProperty(this, "_url", {value: url});

src/library.js

Lines changed: 31 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import {require as requireDefault} from "d3-require";
22
import DOM from "./dom/index.js";
33
import Files from "./files/index.js";
4-
import {AbstractFile, NoFileAttachments} from "./fileAttachment.js";
4+
import {AbstractFile, FileAttachment, NoFileAttachments} from "./fileAttachment.js";
55
import Generators from "./generators/index.js";
66
import html from "./html.js";
77
import md from "./md.js";
@@ -22,28 +22,45 @@ export default Object.assign(function Library(resolver) {
2222
const require = requirer(resolver);
2323
Object.defineProperties(this, properties({
2424
FileAttachment: () => NoFileAttachments,
25-
Arrow: () => require(arrow.resolve()),
26-
Inputs: () => require(inputs.resolve()).then(Inputs => ({...Inputs, file: Inputs.fileOf(AbstractFile)})),
2725
Mutable: () => Mutable,
28-
Plot: () => require(plot.resolve()),
29-
SQLite: () => SQLite(require),
30-
SQLiteDatabaseClient: () => SQLiteDatabaseClient,
31-
_: () => require(lodash.resolve()),
32-
aq: () => require.alias({"apache-arrow": arrow.resolve()})(arquero.resolve()),
33-
d3: () => require(d3.resolve()),
26+
now,
27+
width,
28+
29+
// Tagged template literals
3430
dot: () => require(graphviz.resolve()),
3531
htl: () => require(htl.resolve()),
3632
html: () => html,
3733
md: () => md(require),
38-
mermaid: () => mermaid(require),
39-
now,
40-
require: () => require,
41-
resolve: () => resolve,
4234
svg: () => svg,
4335
tex: () => tex(require),
36+
37+
// Recommended libraries
38+
// https://observablehq.com/@observablehq/recommended-libraries
39+
_: () => require(lodash.resolve()),
40+
aq: () => require.alias({"apache-arrow": arrow.resolve()})(arquero.resolve()),
41+
Arrow: () => require(arrow.resolve()),
42+
d3: () => require(d3.resolve()),
43+
Inputs: () => require(inputs.resolve()).then(Inputs => ({...Inputs, file: Inputs.fileOf(AbstractFile)})),
44+
mermaid: () => mermaid(require),
45+
Plot: () => require(plot.resolve()),
46+
require: () => require,
47+
resolve: () => resolve, // deprecated; use async require.resolve instead
48+
SQLite: () => SQLite(require),
49+
SQLiteDatabaseClient: () => SQLiteDatabaseClient,
4450
topojson: () => require(topojson.resolve()),
4551
vl: () => vegalite(require),
46-
width,
52+
53+
// Sample datasets
54+
// https://observablehq.com/@observablehq/datasets
55+
aapl: () => new FileAttachment("https://static.observableusercontent.com/files/3ccff97fd2d93da734e76829b2b066eafdaac6a1fafdec0faf6ebc443271cfc109d29e80dd217468fcb2aff1e6bffdc73f356cc48feb657f35378e6abbbb63b9").csv({typed: true}),
56+
alphabet: () => new FileAttachment("https://static.observableusercontent.com/files/75d52e6c3130b1cae83cda89305e17b50f33e7420ef205587a135e8562bcfd22e483cf4fa2fb5df6dff66f9c5d19740be1cfaf47406286e2eb6574b49ffc685d").csv({typed: true}),
57+
cars: () => new FileAttachment("https://static.observableusercontent.com/files/048ec3dfd528110c0665dfa363dd28bc516ffb7247231f3ab25005036717f5c4c232a5efc7bb74bc03037155cb72b1abe85a33d86eb9f1a336196030443be4f6").csv({typed: true}),
58+
citywages: () => new FileAttachment("https://static.observableusercontent.com/files/39837ec5121fcc163131dbc2fe8c1a2e0b3423a5d1e96b5ce371e2ac2e20a290d78b71a4fb08b9fa6a0107776e17fb78af313b8ea70f4cc6648fad68ddf06f7a").csv({typed: true}),
59+
diamonds: () => new FileAttachment("https://static.observableusercontent.com/files/87942b1f5d061a21fa4bb8f2162db44e3ef0f7391301f867ab5ba718b225a63091af20675f0bfe7f922db097b217b377135203a7eab34651e21a8d09f4e37252").csv({typed: true}),
60+
industries: () => new FileAttachment("https://static.observableusercontent.com/files/76f13741128340cc88798c0a0b7fa5a2df8370f57554000774ab8ee9ae785ffa2903010cad670d4939af3e9c17e5e18e7e05ed2b38b848ac2fc1a0066aa0005f").csv({typed: true}),
61+
olympians: () => new FileAttachment("https://static.observableusercontent.com/files/31ca24545a0603dce099d10ee89ee5ae72d29fa55e8fc7c9ffb5ded87ac83060d80f1d9e21f4ae8eb04c1e8940b7287d179fe8060d887fb1f055f430e210007c").csv({typed: true}),
62+
penguins: () => new FileAttachment("https://static.observableusercontent.com/files/715db1223e067f00500780077febc6cebbdd90c151d3d78317c802732252052ab0e367039872ab9c77d6ef99e5f55a0724b35ddc898a1c99cb14c31a379af80a").csv({typed: true}),
63+
weather: () => new FileAttachment("https://static.observableusercontent.com/files/693a46b22b33db0f042728700e0c73e836fa13d55446df89120682d55339c6db7cc9e574d3d73f24ecc9bc7eb9ac9a1e7e104a1ee52c00aab1e77eb102913c1f").csv({typed: true}),
4764

4865
// Note: these are namespace objects, and thus exposed directly rather than
4966
// being wrapped in a function. This allows library.Generators to resolve,

test/index-test.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,20 +15,29 @@ test("new Library returns a library with the expected keys", async t => {
1515
"SQLite",
1616
"SQLiteDatabaseClient",
1717
"_",
18+
"aapl",
19+
"alphabet",
1820
"aq",
21+
"cars",
22+
"citywages",
1923
"d3",
24+
"diamonds",
2025
"dot",
2126
"htl",
2227
"html",
28+
"industries",
2329
"md",
2430
"mermaid",
2531
"now",
32+
"olympians",
33+
"penguins",
2634
"require",
2735
"resolve",
2836
"svg",
2937
"tex",
3038
"topojson",
3139
"vl",
40+
"weather",
3241
"width"
3342
]);
3443
t.end();

0 commit comments

Comments
 (0)