Skip to content

Commit 971b140

Browse files
authored
allow Library.require override (#289)
1 parent 205f277 commit 971b140

File tree

7 files changed

+21
-12
lines changed

7 files changed

+21
-12
lines changed

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -849,7 +849,7 @@ tex.options({displayMode: true})`E = mc^2`
849849

850850
<a href="#require" name="require">#</a> <b>require</b>(<i>names…</i>) [<>](https://github.com/d3/d3-require/blob/master/index.js "Source")
851851

852-
Returns a promise of the [asynchronous module definition](https://github.com/amdjs/amdjs-api/blob/master/AMD.md) (AMD) with the specified *names*, loaded from [jsDelivr](https://jsdelivr.com/). Each module *name* can be a package (or scoped package) name optionally followed by the at sign (`@`) and a semver range. For example, to load [d3-array](https://github.com/d3/d3-array):
852+
Returns a promise of the [asynchronous module definition](https://github.com/amdjs/amdjs-api/blob/master/AMD.md) (AMD) with the specified *names*, loaded from npm. Each module *name* can be a package (or scoped package) name optionally followed by the at sign (`@`) and a semver range. For example, to load [d3-array](https://github.com/d3/d3-array):
853853

854854
```js
855855
d3 = require("d3-array")

src/dependency.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
export default function dependency(name, version, main) {
22
return {
33
resolve(path = main) {
4-
return `https://cdn.jsdelivr.net/npm/${name}@${version}/${path}`;
4+
return `${name}@${version}/${path}`;
55
}
66
};
77
}

src/fileAttachment.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import {autoType, csvParse, csvParseRows, tsvParse, tsvParseRows} from "d3-dsv";
2-
import {require as requireDefault} from "d3-require";
32
import {arrow, jszip, exceljs} from "./dependencies.js";
3+
import {requireDefault} from "./require.js";
44
import {SQLiteDatabaseClient} from "./sqlite.js";
55
import {Workbook} from "./xlsx.js";
66

src/library.js

+6-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import {require as requireDefault} from "d3-require";
21
import DOM from "./dom/index.js";
32
import Files from "./files/index.js";
43
import {AbstractFile, FileAttachment, NoFileAttachments} from "./fileAttachment.js";
@@ -11,7 +10,7 @@ import Mutable from "./mutable.js";
1110
import now from "./now.js";
1211
import Promises from "./promises/index.js";
1312
import resolve from "./resolve.js";
14-
import requirer from "./require.js";
13+
import requirer, {requireDefault, setDefaultRequire} from "./require.js";
1514
import SQLite, {SQLiteDatabaseClient} from "./sqlite.js";
1615
import svg from "./svg.js";
1716
import tex from "./tex.js";
@@ -74,7 +73,11 @@ export default Object.assign(function Library(resolver) {
7473
Generators,
7574
Promises
7675
}));
77-
}, {resolve: requireDefault.resolve});
76+
}, {
77+
get resolve() { return requireDefault.resolve; },
78+
get require() { return requireDefault; },
79+
set require(r) { setDefaultRequire(r); }
80+
});
7881

7982
function properties(values) {
8083
return Object.fromEntries(Object.entries(values).map(property));

src/require.js

+7-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,10 @@
1-
import {require as requireDefault, requireFrom} from "d3-require";
1+
import {require as initialRequire} from "d3-require";
2+
3+
export let requireDefault = initialRequire;
4+
5+
export function setDefaultRequire(require) {
6+
requireDefault = require;
7+
}
28

39
export default function(resolve) {
410
return resolve == null ? requireDefault : requireFrom(resolve);

src/sqlite.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import {require as requireDefault} from "d3-require";
2-
import {sql} from "./dependencies";
1+
import {sql} from "./dependencies.js";
2+
import {requireDefault} from "./require.js";
33

44
export default async function sqlite(require) {
55
const init = await require(sql.resolve());

yarn.lock

+3-3
Original file line numberDiff line numberDiff line change
@@ -1002,9 +1002,9 @@ d3-dsv@^2.0.0:
10021002
rw "1"
10031003

10041004
d3-require@^1.2.4:
1005-
version "1.2.4"
1006-
resolved "https://registry.yarnpkg.com/d3-require/-/d3-require-1.2.4.tgz#59afc591d5089f99fecd8c45ef7539e1fee112b3"
1007-
integrity sha512-8UseEGCkBkBxIMouLMPONUBmU8DUPC1q12LARV1Lk/2Jwa32SVgmRfX8GdIeR06ZP+CG85YD3N13K2s14qCNyA==
1005+
version "1.3.0"
1006+
resolved "https://registry.yarnpkg.com/d3-require/-/d3-require-1.3.0.tgz#2b97f5e2ebcb64ac0c63c11f30056aea1c74f0ec"
1007+
integrity sha512-XaNc2azaAwXhGjmCMtxlD+AowpMfLimVsAoTMpqrvb8CWoA4QqyV12mc4Ue6KSoDvfuS831tsumfhDYxGd4FGA==
10081008

10091009
dashdash@^1.12.0:
10101010
version "1.14.1"

0 commit comments

Comments
 (0)