Skip to content

Commit 2d258a2

Browse files
committed
allow Library.require override
1 parent 057c169 commit 2d258a2

File tree

6 files changed

+18
-9
lines changed

6 files changed

+18
-9
lines changed

README.md

Lines changed: 1 addition & 1 deletion
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

Lines changed: 1 addition & 1 deletion
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

Lines changed: 1 addition & 1 deletion
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

Lines changed: 6 additions & 3 deletions
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

Lines changed: 7 additions & 1 deletion
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

Lines changed: 2 additions & 2 deletions
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());

0 commit comments

Comments
 (0)