-
Notifications
You must be signed in to change notification settings - Fork 83
/
Copy pathlibrary.js
105 lines (98 loc) · 5.91 KB
/
library.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
import {requireFrom, resolveFrom} from "d3-require";
import * as DOM from "./dom/index.js";
import * as Files from "./files/index.js";
import {AbstractFile, FileAttachment, NoFileAttachments} from "./fileAttachment.js";
import * as Generators from "./generators/index.js";
import {DuckDBClient} from "./duckdb.js";
import {html} from "./html.js";
import {leaflet} from "./leaflet.js";
import {md} from "./md.js";
import {mermaid} from "./mermaid.js";
import {Mutable} from "./mutable.js";
import {now} from "./now.js";
import * as Promises from "./promises/index.js";
import {resolve} from "./resolve.js";
import {requirer, requireDefault, setDefaultRequire} from "./require.js";
import {SQLite, SQLiteDatabaseClient} from "./sqlite.js";
import {svg} from "./svg.js";
import {tex} from "./tex.js";
import {vl} from "./vegalite.js";
import {width} from "./width.js";
import {arquero, arrow4, d3, graphviz, htl, inputs, lodash, plot, topojson} from "./dependencies.js";
import {__query} from "./table.js";
export const Library = Object.assign(Object.defineProperties(function Library(resolver) {
const require = requirer(resolver);
Object.defineProperties(this, properties({
FileAttachment: () => NoFileAttachments,
Mutable: () => Mutable,
now,
width,
// Tagged template literals
dot: () => require(graphviz.resolve()),
htl: () => require(htl.resolve()),
html: () => html,
md: () => md(require),
svg: () => svg,
tex: () => tex(require),
// Recommended libraries
// https://observablehq.com/@observablehq/recommended-libraries
_: () => require(lodash.resolve()),
aq: () => require.alias({"apache-arrow": arrow4.resolve()})(arquero.resolve()), // TODO upgrade to apache-arrow@9
Arrow: () => require(arrow4.resolve()), // TODO upgrade to apache-arrow@9
d3: () => require(d3.resolve()),
DuckDBClient: () => DuckDBClient,
Inputs: () => require(inputs.resolve()).then(Inputs => ({...Inputs, file: Inputs.fileOf(AbstractFile)})),
L: () => leaflet(require),
mermaid: () => mermaid(require),
Plot: () => require(plot.resolve()),
__query: () => __query,
require: () => require,
resolve: () => resolve, // deprecated; use async require.resolve instead
SQLite: () => SQLite(require),
SQLiteDatabaseClient: () => SQLiteDatabaseClient,
topojson: () => require(topojson.resolve()),
vl: () => vl(require),
// Sample datasets
// https://observablehq.com/@observablehq/sample-datasets
aapl: () => new FileAttachment("https://static.observableusercontent.com/files/3ccff97fd2d93da734e76829b2b066eafdaac6a1fafdec0faf6ebc443271cfc109d29e80dd217468fcb2aff1e6bffdc73f356cc48feb657f35378e6abbbb63b9").csv({typed: true}),
alphabet: () => new FileAttachment("https://static.observableusercontent.com/files/75d52e6c3130b1cae83cda89305e17b50f33e7420ef205587a135e8562bcfd22e483cf4fa2fb5df6dff66f9c5d19740be1cfaf47406286e2eb6574b49ffc685d").csv({typed: true}),
cars: () => new FileAttachment("https://static.observableusercontent.com/files/048ec3dfd528110c0665dfa363dd28bc516ffb7247231f3ab25005036717f5c4c232a5efc7bb74bc03037155cb72b1abe85a33d86eb9f1a336196030443be4f6").csv({typed: true}),
citywages: () => new FileAttachment("https://static.observableusercontent.com/files/39837ec5121fcc163131dbc2fe8c1a2e0b3423a5d1e96b5ce371e2ac2e20a290d78b71a4fb08b9fa6a0107776e17fb78af313b8ea70f4cc6648fad68ddf06f7a").csv({typed: true}),
diamonds: () => new FileAttachment("https://static.observableusercontent.com/files/87942b1f5d061a21fa4bb8f2162db44e3ef0f7391301f867ab5ba718b225a63091af20675f0bfe7f922db097b217b377135203a7eab34651e21a8d09f4e37252").csv({typed: true}),
flare: () => new FileAttachment("https://static.observableusercontent.com/files/a6b0d94a7f5828fd133765a934f4c9746d2010e2f342d335923991f31b14120de96b5cb4f160d509d8dc627f0107d7f5b5070d2516f01e4c862b5b4867533000").csv({typed: true}),
industries: () => new FileAttachment("https://static.observableusercontent.com/files/76f13741128340cc88798c0a0b7fa5a2df8370f57554000774ab8ee9ae785ffa2903010cad670d4939af3e9c17e5e18e7e05ed2b38b848ac2fc1a0066aa0005f").csv({typed: true}),
miserables: () => new FileAttachment("https://static.observableusercontent.com/files/31d904f6e21d42d4963ece9c8cc4fbd75efcbdc404bf511bc79906f0a1be68b5a01e935f65123670ed04e35ca8cae3c2b943f82bf8db49c5a67c85cbb58db052").json(),
olympians: () => new FileAttachment("https://static.observableusercontent.com/files/31ca24545a0603dce099d10ee89ee5ae72d29fa55e8fc7c9ffb5ded87ac83060d80f1d9e21f4ae8eb04c1e8940b7287d179fe8060d887fb1f055f430e210007c").csv({typed: true}),
penguins: () => new FileAttachment("https://static.observableusercontent.com/files/715db1223e067f00500780077febc6cebbdd90c151d3d78317c802732252052ab0e367039872ab9c77d6ef99e5f55a0724b35ddc898a1c99cb14c31a379af80a").csv({typed: true}),
pizza: () => new FileAttachment("https://static.observableusercontent.com/files/c653108ab176088cacbb338eaf2344c4f5781681702bd6afb55697a3f91b511c6686ff469f3e3a27c75400001a2334dbd39a4499fe46b50a8b3c278b7d2f7fb5").csv({typed: true}),
weather: () => new FileAttachment("https://static.observableusercontent.com/files/693a46b22b33db0f042728700e0c73e836fa13d55446df89120682d55339c6db7cc9e574d3d73f24ecc9bc7eb9ac9a1e7e104a1ee52c00aab1e77eb102913c1f").csv({typed: true}),
// Note: these are namespace objects, and thus exposed directly rather than
// being wrapped in a function. This allows library.Generators to resolve,
// rather than needing module.value.
DOM,
Files,
Generators,
Promises
}));
}, {
resolve: {
get: () => requireDefault.resolve,
enumerable: true,
configurable: true
},
require: {
get: () => requireDefault,
set: setDefaultRequire,
enumerable: true,
configurable: true
}
}), {
resolveFrom,
requireFrom
});
function properties(values) {
return Object.fromEntries(Object.entries(values).map(property));
}
function property([key, value]) {
return [key, ({value, writable: true, enumerable: true})];
}