From c60210e607aad2df63ed73c07ddd355975863afb Mon Sep 17 00:00:00 2001 From: YetAnotherClown Date: Sat, 11 Jan 2025 05:09:05 -0500 Subject: [PATCH] Migrate `docusaurus-plugin-moonwave` to ESM --- docusaurus-plugin-moonwave/package.json | 3 ++- .../src/components/ClassMember.js | 8 +++---- .../src/components/InlineDescription.js | 2 +- .../src/components/LuaClass.js | 16 ++++++------- .../src/components/LuaFunction.js | 10 ++++---- .../src/components/LuaProp.js | 4 ++-- .../src/components/LuaType.js | 6 ++--- .../src/components/LuaTypeDef.js | 6 ++--- .../src/components/Markdown.js | 6 ++--- .../src/generateRobloxTypes.js | 4 ++-- docusaurus-plugin-moonwave/src/index.js | 24 +++++++++---------- .../src/remark/remarkRehypeAdmonitions.js | 2 +- 12 files changed, 46 insertions(+), 45 deletions(-) diff --git a/docusaurus-plugin-moonwave/package.json b/docusaurus-plugin-moonwave/package.json index 4d4951f..cb9166f 100644 --- a/docusaurus-plugin-moonwave/package.json +++ b/docusaurus-plugin-moonwave/package.json @@ -16,6 +16,7 @@ "url": "https://github.com/evaera/moonwave/issues" }, "homepage": "https://github.com/evaera/moonwave/tree/master/docusaurus-plugin-moonwave", + "type": "module", "dependencies": { "@mapbox/rehype-prism": "^0.9.0", "hast-util-sanitize": "^5.0.1", @@ -33,4 +34,4 @@ "hast-util-from-html": "^2.0.3", "micromark-util-symbol": "^2.0.0" } -} \ No newline at end of file +} diff --git a/docusaurus-plugin-moonwave/src/components/ClassMember.js b/docusaurus-plugin-moonwave/src/components/ClassMember.js index 0fcf22d..7032de0 100644 --- a/docusaurus-plugin-moonwave/src/components/ClassMember.js +++ b/docusaurus-plugin-moonwave/src/components/ClassMember.js @@ -1,10 +1,10 @@ import Heading from "@theme/Heading" import React from "react" -import Admonition from "./Admonition" -import Badge from "./Badge" -import SourceLink from "./SourceLink" +import Admonition from "./Admonition.js" +import Badge from "./Badge.js" +import SourceLink from "./SourceLink.js" import styles from "./styles.module.css" -import Tag from "./Tag" +import Tag from "./Tag.js" export default function ClassMember({ name, diff --git a/docusaurus-plugin-moonwave/src/components/InlineDescription.js b/docusaurus-plugin-moonwave/src/components/InlineDescription.js index 3087870..b51ac77 100644 --- a/docusaurus-plugin-moonwave/src/components/InlineDescription.js +++ b/docusaurus-plugin-moonwave/src/components/InlineDescription.js @@ -1,5 +1,5 @@ import React from "react" -import Markdown from "./Markdown" +import Markdown from "./Markdown.js" import styles from "./styles.module.css" export default function InlineDescription({ content }) { diff --git a/docusaurus-plugin-moonwave/src/components/LuaClass.js b/docusaurus-plugin-moonwave/src/components/LuaClass.js index 1f7bbc8..687a0e9 100644 --- a/docusaurus-plugin-moonwave/src/components/LuaClass.js +++ b/docusaurus-plugin-moonwave/src/components/LuaClass.js @@ -13,15 +13,15 @@ import { useEffect, useState, } from "react" -import Admonition from "./Admonition" -import Badge from "./Badge" -import ClassMember from "./ClassMember" -import LuaFunction from "./LuaFunction" -import LuaProp from "./LuaProp" -import LuaTypeDef from "./LuaTypeDef" -import Markdown from "./Markdown" +import Admonition from "./Admonition.js" +import Badge from "./Badge.js" +import ClassMember from "./ClassMember.js" +import LuaFunction from "./LuaFunction.js" +import LuaProp from "./LuaProp.js" +import LuaTypeDef from "./LuaTypeDef.js" +import Markdown from "./Markdown.js" import styles from "./styles.module.css" -import Tag from "./Tag" +import Tag from "./Tag.js" const SECTIONS = [ { diff --git a/docusaurus-plugin-moonwave/src/components/LuaFunction.js b/docusaurus-plugin-moonwave/src/components/LuaFunction.js index 44ef59c..c0c2e58 100644 --- a/docusaurus-plugin-moonwave/src/components/LuaFunction.js +++ b/docusaurus-plugin-moonwave/src/components/LuaFunction.js @@ -1,12 +1,12 @@ import Heading from "@theme/Heading" import clsx from "clsx" import React from "react" -import InlineDescription from "./InlineDescription" -import LuaType from "./LuaType" -import LuaTypeDef from "./LuaTypeDef" -import Markdown from "./Markdown" +import InlineDescription from "./InlineDescription.js" +import LuaType from "./LuaType.js" +import LuaTypeDef from "./LuaTypeDef.js" +import Markdown from "./Markdown.js" import styles from "./styles.module.css" -import { PrOp } from "./Syntax" +import { PrOp } from "./Syntax.js" const Param = ({ name, lua_type }) => ( <> diff --git a/docusaurus-plugin-moonwave/src/components/LuaProp.js b/docusaurus-plugin-moonwave/src/components/LuaProp.js index 59653e4..569baeb 100644 --- a/docusaurus-plugin-moonwave/src/components/LuaProp.js +++ b/docusaurus-plugin-moonwave/src/components/LuaProp.js @@ -1,6 +1,6 @@ import React from "react" -import LuaType from "./LuaType" -import Markdown from "./Markdown" +import LuaType from "./LuaType.js" +import Markdown from "./Markdown.js" import styles from "./styles.module.css" export default function LuaProp({ diff --git a/docusaurus-plugin-moonwave/src/components/LuaType.js b/docusaurus-plugin-moonwave/src/components/LuaType.js index e4e31ba..8fd87e4 100644 --- a/docusaurus-plugin-moonwave/src/components/LuaType.js +++ b/docusaurus-plugin-moonwave/src/components/LuaType.js @@ -1,8 +1,8 @@ import React, { useContext } from "react" -import GenericLink from "./GenericLink" -import { TypeLinksContext } from "./LuaClass" +import GenericLink from "./GenericLink.js" +import { TypeLinksContext } from "./LuaClass.js" import styles from "./styles.module.css" -import { Op, PrOp } from "./Syntax" +import { Op, PrOp } from "./Syntax.js" const isPunc = (char) => !!char.match(/[\{\}<>\-\|&]/) const isWhitespace = (char) => !!char.match(/\s/) diff --git a/docusaurus-plugin-moonwave/src/components/LuaTypeDef.js b/docusaurus-plugin-moonwave/src/components/LuaTypeDef.js index 59d364b..dad3397 100644 --- a/docusaurus-plugin-moonwave/src/components/LuaTypeDef.js +++ b/docusaurus-plugin-moonwave/src/components/LuaTypeDef.js @@ -1,7 +1,7 @@ import React from "react" -import InlineDescription from "./InlineDescription" -import LuaType from "./LuaType" -import Markdown from "./Markdown" +import InlineDescription from "./InlineDescription.js" +import LuaType from "./LuaType.js" +import Markdown from "./Markdown.js" import styles from "./styles.module.css" const TypeAlias = ({ name, luaType }) => ( diff --git a/docusaurus-plugin-moonwave/src/components/Markdown.js b/docusaurus-plugin-moonwave/src/components/Markdown.js index bfa27f5..615519c 100644 --- a/docusaurus-plugin-moonwave/src/components/Markdown.js +++ b/docusaurus-plugin-moonwave/src/components/Markdown.js @@ -8,12 +8,12 @@ import sanitize from "rehype-sanitize" import html from "rehype-stringify" import directives from "remark-directive" import remarkGfm from "remark-gfm" -import remarkRehypeAdmonitions from "../remark/remarkRehypeAdmonitions" -import remarkExtendedLinkReferences from "../remark/remarkExtendedLinkReferences" +import remarkRehypeAdmonitions from "../remark/remarkRehypeAdmonitions.js" +import remarkExtendedLinkReferences from "../remark/remarkExtendedLinkReferences.js" import parse from "remark-parse" import remark2rehype from "remark-rehype" import { unified } from "unified" -import { TypeLinksContext } from "./LuaClass" +import { TypeLinksContext } from "./LuaClass.js" const schema = { ...defaultSchema, diff --git a/docusaurus-plugin-moonwave/src/generateRobloxTypes.js b/docusaurus-plugin-moonwave/src/generateRobloxTypes.js index 23a1232..cf4e5c7 100644 --- a/docusaurus-plugin-moonwave/src/generateRobloxTypes.js +++ b/docusaurus-plugin-moonwave/src/generateRobloxTypes.js @@ -6,7 +6,7 @@ * Copyright © 2018 Eryn L. K. *****/ -const fetch = require("node-fetch") +import fetch from "node-fetch" const dataTypes = [ "Axes", @@ -42,7 +42,7 @@ const dataTypes = [ "Vector3int16", ] -module.exports.generateRobloxTypes = async function generateRobloxTypes() { +export async function generateRobloxTypes() { const req = await fetch( "https://raw.githubusercontent.com/CloneTrooper1019/Roblox-Client-Watch/roblox/API-Dump.json" ) diff --git a/docusaurus-plugin-moonwave/src/index.js b/docusaurus-plugin-moonwave/src/index.js index d7afb50..79332ba 100644 --- a/docusaurus-plugin-moonwave/src/index.js +++ b/docusaurus-plugin-moonwave/src/index.js @@ -1,8 +1,8 @@ -const path = require("path") -const fs = require("fs") -const { promisify } = require("util") +import { resolve } from "path" +import { existsSync } from "fs" +import { promisify } from "util" const exec = promisify(require("child_process").exec) -const { generateRobloxTypes } = require("./generateRobloxTypes") +import { generateRobloxTypes } from "./generateRobloxTypes.js" const capitalize = (text) => text[0].toUpperCase() + text.substring(1) @@ -259,11 +259,11 @@ async function generateTypeLinks(nameSet, luaClasses, baseUrl) { return typeLinks } -module.exports = (context, options) => ({ +export default (context, options) => ({ name: "docusaurus-plugin-moonwave", getThemePath() { - return path.resolve(__dirname, "./theme") + return resolve(__dirname, "./theme") }, getPathsToWatch() { @@ -271,7 +271,7 @@ module.exports = (context, options) => ({ }, async loadContent() { - const basePath = options.projectDir || path.resolve(process.cwd(), "..") + const basePath = options.projectDir || resolve(process.cwd(), "..") const binaryPath = options.binaryPath ?? "moonwave-extractor" @@ -402,7 +402,7 @@ module.exports = (context, options) => ({ addRoute({ path: baseUrl + "api/", exact: true, - component: path.resolve(__dirname, "components/Redirect.js"), + component: resolve(__dirname, "components/Redirect.js"), modules: { sidebarClassNames, pluginOptions, @@ -428,7 +428,7 @@ module.exports = (context, options) => ({ addRoute({ path: `${baseUrl}api/${luaClass.name}`, - component: path.resolve(__dirname, "components/LuaClass.js"), + component: resolve(__dirname, "components/LuaClass.js"), modules: { luaClass: apiDataPath, sidebarClassNames, @@ -442,7 +442,7 @@ module.exports = (context, options) => ({ }, }) -module.exports.validateOptions = ({ options }) => { +export function validateOptions({ options }) { if (!options.code) { throw new Error( "Moonwave plugin: expected option `code` to point to your source code." @@ -472,9 +472,9 @@ module.exports.validateOptions = ({ options }) => { ) } - const resolvedPath = path.resolve(process.cwd(), codePath) + const resolvedPath = resolve(process.cwd(), codePath) - if (!fs.existsSync(resolvedPath)) { + if (!existsSync(resolvedPath)) { throw new Error( `Moonwave plugin: code path ${resolvedPath} does not actually exist.` ) diff --git a/docusaurus-plugin-moonwave/src/remark/remarkRehypeAdmonitions.js b/docusaurus-plugin-moonwave/src/remark/remarkRehypeAdmonitions.js index bdd5804..31fae89 100644 --- a/docusaurus-plugin-moonwave/src/remark/remarkRehypeAdmonitions.js +++ b/docusaurus-plugin-moonwave/src/remark/remarkRehypeAdmonitions.js @@ -2,7 +2,7 @@ import { visit, EXIT } from "unist-util-visit" import { fromHtml } from "hast-util-from-html" import { renderToString } from "react-dom/server" -import Admonition from "../components/Admonition" +import Admonition from "../components/Admonition.js" /// remark-rehype handlers const handlers = {