From 0e4a3020c7ba6d3e4585d6f9ed7b76108fbd0ba1 Mon Sep 17 00:00:00 2001 From: Shad Sharma Date: Mon, 8 Jan 2024 17:49:03 -0800 Subject: [PATCH] MAJOR: Migrate from CommonJS to ES Module (#123) --- bin/headless.js | 17 ++++++---------- bin/musicmd.js | 25 ++++++++++++----------- header.js | 8 +------- index.js | 27 ++++++++++++------------- index.spec.js | 6 ++---- lib/chord.js | 24 +++++++--------------- lib/chord.spec.js | 4 ++-- lib/chordbook.js | 12 +++-------- lib/chordbook.spec.js | 6 ++---- lib/voicing.js | 11 ++--------- lib/voicing.spec.js | 4 +--- package-lock.json | 33 ++++++++++++------------------- package.json | 8 ++++---- parsers/events.js | 10 ++-------- parsers/events.spec.js | 10 ++-------- parsers/verse.js | 16 +++++---------- parsers/verse.spec.js | 12 ++--------- renderers/abc_renderer.js | 12 +++++------ renderers/chord_carousel.js | 21 ++++++-------------- renderers/chord_carousel.spec.js | 20 +++++-------------- renderers/chord_diagram.js | 10 +++------- renderers/chords_renderer.js | 14 +++++-------- renderers/chords_renderer.spec.js | 6 ++---- renderers/vextab_renderer.js | 12 +++++------ 24 files changed, 112 insertions(+), 216 deletions(-) diff --git a/bin/headless.js b/bin/headless.js index 8aef3dd..62ffd00 100644 --- a/bin/headless.js +++ b/bin/headless.js @@ -1,13 +1,10 @@ -"use strict"; +import "global-jsdom/register"; +import MarkdownIt from "markdown-it"; +import MarkdownItMusic from "../index.js"; +import { createSVGWindow } from "svgdom"; +import { registerWindow } from "@svgdotjs/svg.js"; -require("jsdom-global")(); - -const MarkdownIt = require("markdown-it"); -const MarkdownItMusic = require("../index"); -const { createSVGWindow } = require("svgdom"); -const { registerWindow } = require("@svgdotjs/svg.js"); - -function render(src, transpose, theme) { +export function render(src, transpose, theme) { const window = createSVGWindow(); const document = window.document; registerWindow(window, document); @@ -17,5 +14,3 @@ function render(src, transpose, theme) { md.setTheme(theme); return md.render(src); } - -module.exports = render; diff --git a/bin/musicmd.js b/bin/musicmd.js index 2e594c2..991a12c 100755 --- a/bin/musicmd.js +++ b/bin/musicmd.js @@ -1,14 +1,14 @@ #!/usr/bin/env node +import { createReadStream, createWriteStream } from "fs"; +import yargs from "yargs"; +import { hideBin } from "yargs/helpers"; +import { render } from "./headless.js"; -"use strict"; - -const render = require("./headless"); -const fs = require("fs"); -const yargs = require("yargs"); - -const argv = yargs - .scriptName("musicmd") - .command("* [markdown]", "Render the markdown to HTML") +const argv = yargs(hideBin(process.argv)) + .command({ + command: "* [markdown]", + describe: "Render the markdown to HTML", + }) .option("outfile", { alias: "o", describe: "render the output of infile to outfile", @@ -26,10 +26,11 @@ const argv = yargs default: "light", nargs: 1, }) - .help().argv; + .help() + .parse(); -const ifp = argv.markdown ? fs.createReadStream(argv.markdown) : process.stdin; -const ofp = argv.outfile ? fs.createWriteStream(argv.outfile) : process.stdout; +const ifp = argv.markdown ? createReadStream(argv.markdown) : process.stdin; +const ofp = argv.outfile ? createWriteStream(argv.outfile) : process.stdout; const chunks = []; diff --git a/header.js b/header.js index f642e07..0b28684 100644 --- a/header.js +++ b/header.js @@ -1,5 +1,3 @@ -"use strict"; - const HEADER = `