From cab3052ec471235887c82b62d0a4c8461d236026 Mon Sep 17 00:00:00 2001 From: partens Date: Fri, 8 Mar 2024 11:58:54 +0100 Subject: [PATCH] Make compatible with ES Module imports --- README.md | 10 +++++++++- .../js/src/main/scala/viz/vega/facades/VegaEmbed.scala | 2 +- core/js/src/main/scala/viz/vega/facades/VegaView.scala | 2 +- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index e2b6594..d82991b 100644 --- a/README.md +++ b/README.md @@ -31,5 +31,13 @@ Currently, there are some niggling problems which remain after generation; 1. Some givens of union types have duplicate shapes, need to comment out the encoder / decoders for some of them 2. introduce a nulltype parameter. - +## Import map + +```json +{ + "imports": { + "@vega/npm": "https://cdn.jsdelivr.net/npm/" + } +} +``` diff --git a/core/js/src/main/scala/viz/vega/facades/VegaEmbed.scala b/core/js/src/main/scala/viz/vega/facades/VegaEmbed.scala index ea72574..d828ac9 100644 --- a/core/js/src/main/scala/viz/vega/facades/VegaEmbed.scala +++ b/core/js/src/main/scala/viz/vega/facades/VegaEmbed.scala @@ -90,7 +90,7 @@ trait EmbedOptions: end EmbedOptions @js.native -@JSImport("vega-embed", JSImport.Default, "vegaEmbed") +@JSImport("@vega/npm/vega-embed@6/+esm", JSImport.Namespace, "vegaEmbed") object VegaEmbed extends js.Object: def apply(element: HTMLElement, spec: js.Object, options: EmbedOptions): js.Promise[EmbedResult] = js.native diff --git a/core/js/src/main/scala/viz/vega/facades/VegaView.scala b/core/js/src/main/scala/viz/vega/facades/VegaView.scala index 0f29f3f..a25f6c7 100644 --- a/core/js/src/main/scala/viz/vega/facades/VegaView.scala +++ b/core/js/src/main/scala/viz/vega/facades/VegaView.scala @@ -41,7 +41,7 @@ end Options */ @js.native @annotation.nowarn("msg=unused explicit parameter") -@JSImport("vega-view", JSImport.Namespace, "vega.View") +@JSImport("@vega/npm/vega-view@5/+esm", JSImport.Namespace, "vega.View") class VegaView(parsedSpec: js.Dynamic, config: js.Dynamic) extends js.Object: def runAsync(): Unit = js.native