diff --git a/src/library.js b/src/library.js index 6abe513c..cb243fc0 100644 --- a/src/library.js +++ b/src/library.js @@ -19,14 +19,10 @@ import width from "./width.js"; export default Object.assign(function Library(resolver) { const require = requirer(resolver); Object.defineProperties(this, properties({ - DOM: () => DOM, FileAttachment: () => NoFileAttachments, - Files: () => Files, - Generators: () => Generators, Inputs: () => require("@observablehq/inputs@0.8.0/dist/inputs.umd.min.js"), Mutable: () => Mutable, Plot: () => require("@observablehq/plot@0.1.0/dist/plot.umd.min.js"), - Promises: () => Promises, SQLite: () => SQLite(require), _: () => require("lodash@4.17.21/lodash.min.js"), d3: () => require("d3@6.7.0/dist/d3.min.js"), @@ -34,13 +30,21 @@ export default Object.assign(function Library(resolver) { htl: () => require("htl@0.2.5/dist/htl.min.js"), html: () => html, md: () => md(require), - now: now, + now, require: () => require, resolve: () => resolve, svg: () => svg, tex: () => tex(require), vl: () => vegalite(require), - width: width + width, + + // 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: requireDefault.resolve}); diff --git a/test/generators/generators-test.js b/test/generators/generators-test.js index 0e8e417d..3d768431 100644 --- a/test/generators/generators-test.js +++ b/test/generators/generators-test.js @@ -5,6 +5,13 @@ import range from "../../src/generators/range"; import valueAt from "../../src/generators/valueAt"; import observe from "../../src/generators/observe"; import queue from "../../src/generators/queue"; +import Library from "../../src/library"; + +test("library.Generators.observe is a function", t => { + const library = new Library(); + t.equal(typeof library.Generators.observe, "function"); + t.end(); +}); test("filter(value, fn) filters", t => { function* input() {