From 22b497d45668470bf96986e51c6342f4613709ce Mon Sep 17 00:00:00 2001 From: Mike Bostock Date: Wed, 4 May 2022 11:25:23 -0700 Subject: [PATCH] add leaflet to recommended libraries --- bin/resolve-dependencies | 4 ++++ src/dependencies.js | 1 + src/leaflet.js | 12 ++++++++++++ src/library.js | 2 ++ test/index-test.js | 1 + 5 files changed, 20 insertions(+) create mode 100644 src/leaflet.js diff --git a/bin/resolve-dependencies b/bin/resolve-dependencies index afd5866c..49e03595 100755 --- a/bin/resolve-dependencies +++ b/bin/resolve-dependencies @@ -82,6 +82,10 @@ const mains = ["unpkg", "jsdelivr", "browser", "main"]; const package = await resolve("mermaid"); console.log(`export const mermaid = dependency("${package.name}", "${package.version}", "${package.export.replace(/\.core\.js$/, ".min.js")}");`); } + { + const package = await resolve("leaflet"); + console.log(`export const leaflet = dependency("${package.name}", "${package.version}", "${package.export.replace(/-src\.js$/, ".js")}");`); + } })(); async function resolve(specifier) { diff --git a/src/dependencies.js b/src/dependencies.js index 408d7115..77e52d2d 100644 --- a/src/dependencies.js +++ b/src/dependencies.js @@ -18,3 +18,4 @@ export const arquero = dependency("arquero", "4.8.8", "dist/arquero.min.js"); export const topojson = dependency("topojson-client", "3.1.0", "dist/topojson-client.min.js"); export const exceljs = dependency("exceljs", "4.3.0", "dist/exceljs.min.js"); export const mermaid = dependency("mermaid", "9.0.0", "dist/mermaid.min.js"); +export const leaflet = dependency("leaflet", "1.8.0", "dist/leaflet.js"); diff --git a/src/leaflet.js b/src/leaflet.js new file mode 100644 index 00000000..87a0ffe6 --- /dev/null +++ b/src/leaflet.js @@ -0,0 +1,12 @@ +import {leaflet as ll} from "./dependencies.js"; + +export default async function leaflet(require) { + const L = await require(ll.resolve()); + if (!L._style) { + const link = document.createElement("link"); + link.rel = "stylesheet"; + link.href = ll.resolve("dist/leaflet.css"); + L._style = document.head.appendChild(link); + } + return L; +} diff --git a/src/library.js b/src/library.js index ce78b4a4..305be69d 100644 --- a/src/library.js +++ b/src/library.js @@ -4,6 +4,7 @@ import Files from "./files/index.js"; import {AbstractFile, FileAttachment, NoFileAttachments} from "./fileAttachment.js"; import Generators from "./generators/index.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"; @@ -41,6 +42,7 @@ export default Object.assign(function Library(resolver) { Arrow: () => require(arrow.resolve()), d3: () => require(d3.resolve()), Inputs: () => require(inputs.resolve()).then(Inputs => ({...Inputs, file: Inputs.fileOf(AbstractFile)})), + L: () => leaflet(require), mermaid: () => mermaid(require), Plot: () => require(plot.resolve()), require: () => require, diff --git a/test/index-test.js b/test/index-test.js index 7b764606..07d8c3c6 100644 --- a/test/index-test.js +++ b/test/index-test.js @@ -9,6 +9,7 @@ test("new Library returns a library with the expected keys", async t => { "Files", "Generators", "Inputs", + "L", "Mutable", "Plot", "Promises",