Skip to content

Commit

Permalink
Update d3-require.
Browse files Browse the repository at this point in the history
  • Loading branch information
mbostock committed May 10, 2018
1 parent 5a5034c commit 8de738e
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 12 deletions.
7 changes: 3 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ For examples, see https://beta.observablehq.com/@mbostock/standard-library.
* [Generators](#generators) - utilities for generators and iterators.
* [Promises](#promises) - utilities for promises.
* [require](#require) - load third-party libraries.
* [resolve](#resolve) - find third-party resources.
* [html](#html) - render HTML.
* [md](#markdown) - render Markdown.
* [svg](#svg) - render SVG.
Expand Down Expand Up @@ -711,12 +710,12 @@ d3 = require("d3-array@1.1")

See [d3-require](https://github.com/d3/d3-require) for more information.

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

Returns the resolved URL to require the module with the specified *name*. For example:
Returns a promise to the resolved URL to require the module with the specified *name*. For example:

```js
resolve("d3-array") // "https://unpkg.com/d3-array"
require.resolve("d3-array") // "https://unpkg.com/d3-array@1.2.1/build/d3-array.js"
```

## Installing
Expand Down
12 changes: 6 additions & 6 deletions src/library.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import {resolve as resolveDefault, requireFrom} from "d3-require";
import {require as requireDefault, requireFrom} from "d3-require";
import constant from "./constant";
import DOM from "./dom/index";
import Files from "./files/index";
Expand All @@ -8,26 +8,26 @@ import md from "./md";
import Mutable from "./mutable";
import now from "./now";
import Promises from "./promises/index";
import resolve from "./resolve";
import svg from "./svg";
import tex from "./tex";
import width from "./width";

export default function Library(resolve) {
if (resolve == null) resolve = resolveDefault;
var require = requireFrom(resolve);
export default function Library(resolver) {
var require = resolver == null ? requireFrom(resolver) : requireDefault;
Object.defineProperties(this, {
DOM: {value: DOM, enumerable: true},
Files: {value: Files, enumerable: true},
Generators: {value: Generators, enumerable: true},
html: {value: constant(html), enumerable: true},
md: {value: md(require, resolve), enumerable: true},
md: {value: md(require), enumerable: true},
Mutable: {value: constant(Mutable), enumerable: true},
now: {value: now, enumerable: true},
Promises: {value: Promises, enumerable: true},
require: {value: constant(require), enumerable: true},
resolve: {value: constant(resolve), enumerable: true},
svg: {value: constant(svg), enumerable: true},
tex: {value: tex(require, resolve), enumerable: true},
tex: {value: tex(require), enumerable: true},
width: {value: width, enumerable: true}
});
}
6 changes: 6 additions & 0 deletions src/resolve.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
export default function resolve(name, base) {
if (/^(\w+:)|\/\//i.test(name)) return name;
if (/^[.]{0,2}\//i.test(name)) return new URL(name, base == null ? location : base).href;
if (!name.length || /^[\s._]/.test(name) || /\s$/.test(name)) throw new Error("illegal name");
return "https://unpkg.com/" + name;
}
4 changes: 2 additions & 2 deletions src/tex.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,11 @@ function style(href) {
});
}

export default function(require, resource) {
export default function(require) {
return function() {
return Promise.all([
require("katex@0.9.0/dist/katex.min.js"),
resource("katex@0.9.0/dist/katex.min.css").then(style)
require.resolve("katex@0.9.0/dist/katex.min.css").then(style)
]).then(function(values) {
var katex = values[0], tex = renderer();

Expand Down

0 comments on commit 8de738e

Please sign in to comment.