From b913e11e10162678279397e4682b29aedb4e0047 Mon Sep 17 00:00:00 2001 From: Ayo Date: Sat, 21 Oct 2023 16:34:34 +0200 Subject: [PATCH] refactor: publish .mjs files --- app/mcfly.config.ts | 2 +- app/routes/[...index].ts | 2 +- package-lock.json | 21 +++- packages/config/{index.ts => index.js} | 0 packages/core/define-config.mjs | 3 + packages/core/define-config.ts | 9 -- packages/core/{index.ts => event-handler.mjs} | 100 +++++++++++++----- packages/core/package.json | 6 +- templates/basic/mcfly.config.ts | 2 +- templates/basic/package.json | 6 +- templates/basic/routes/[...index].ts | 2 +- 11 files changed, 105 insertions(+), 48 deletions(-) rename packages/config/{index.ts => index.js} (100%) create mode 100644 packages/core/define-config.mjs delete mode 100644 packages/core/define-config.ts rename packages/core/{index.ts => event-handler.mjs} (81%) diff --git a/app/mcfly.config.ts b/app/mcfly.config.ts index 45b89fb..ea86ebd 100644 --- a/app/mcfly.config.ts +++ b/app/mcfly.config.ts @@ -1,4 +1,4 @@ -import defineConfig from "@mcflyjs/core/define-config"; +import defineConfig from "@mcflyjs/core/define-config.mjs"; export default defineConfig({ components: "js", diff --git a/app/routes/[...index].ts b/app/routes/[...index].ts index 64393bf..8973d04 100644 --- a/app/routes/[...index].ts +++ b/app/routes/[...index].ts @@ -1,6 +1,6 @@ /** * McFly SSR logic */ -import McFly from "@mcflyjs/core"; +import McFly from "@mcflyjs/core/event-handler.mjs"; import config from "../mcfly.config"; export default McFly(config, useStorage()); diff --git a/package-lock.json b/package-lock.json index 617e93c..f020f35 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4002,12 +4002,29 @@ "version": "0.0.1", "license": "MIT", "dependencies": { - "@mcflyjs/config": "^0.0.1", - "@mcflyjs/core": "^0.1.0", + "@mcflyjs/config": "latest", + "@mcflyjs/core": "latest", "esprima": "^4.0.1", "nitropack": "latest", "ultrahtml": "^1.5.2" } + }, + "templates/basic/node_modules/@mcflyjs/config": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@mcflyjs/config/-/config-0.0.1.tgz", + "integrity": "sha512-rcP21TqHNdvEZGxckpwQk6nfSdCSi52jHjMWfeyu37iPUhwZvRWzCqfGpRVW/396sN8j+674JRbZw0mHLq03DQ==" + }, + "templates/basic/node_modules/@mcflyjs/core": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@mcflyjs/core/-/core-0.1.1.tgz", + "integrity": "sha512-JsqChhe1+MhxFUT6vUbf7/4J6Phtt2pmSenUfjrywsG0ckMzxRSF9ei9yIThmmxhAEMUkIme/axXFZ3HpM1AKQ==", + "dependencies": { + "esprima": "^4.0.1", + "h3": "^1.8.2", + "nitropack": "^2.7.0", + "ultrahtml": "^1.5.2", + "unstorage": "^1.9.0" + } } } } diff --git a/packages/config/index.ts b/packages/config/index.js similarity index 100% rename from packages/config/index.ts rename to packages/config/index.js diff --git a/packages/core/define-config.mjs b/packages/core/define-config.mjs new file mode 100644 index 0000000..27a7775 --- /dev/null +++ b/packages/core/define-config.mjs @@ -0,0 +1,3 @@ +export default function defineConfig(config) { + return () => config; +} diff --git a/packages/core/define-config.ts b/packages/core/define-config.ts deleted file mode 100644 index a09ac00..0000000 --- a/packages/core/define-config.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { NitroApp } from "nitropack"; - -export type McFlyConfig = { - onBuild?: Array<(event: NitroApp) => void>; - components: "js" | "ts"; -}; -export default function defineConfig(config: McFlyConfig) { - return () => config; -} diff --git a/packages/core/index.ts b/packages/core/event-handler.mjs similarity index 81% rename from packages/core/index.ts rename to packages/core/event-handler.mjs index 618e00b..bdf5df4 100644 --- a/packages/core/index.ts +++ b/packages/core/event-handler.mjs @@ -1,9 +1,10 @@ +// @ts-check + import { eventHandler } from "h3"; -import { Storage as NitroStorage } from "unstorage"; import { ELEMENT_NODE, parse, render, renderSync, walkSync } from "ultrahtml"; import { parseScript } from "esprima"; -export default (config: Function, storage: NitroStorage) => { +export default (config, storage) => { return eventHandler(async (event) => { const { path } = event; const { components: componentType } = config(); @@ -26,7 +27,7 @@ export default (config: Function, storage: NitroStorage) => { }); }; -const getHtml = async (path: string, storage) => { +const getHtml = async (path, storage) => { const rawPath = path[path.length - 1] === "/" ? path.slice(0, -1) : path; const filename = rawPath === "" ? "/index.html" : `${rawPath}.html`; const fallback = getPath(rawPath + "/index.html"); @@ -38,15 +39,22 @@ const getHtml = async (path: string, storage) => { return html; }; -function getPath(filename: string) { +/** + * + * @param {string} filename + * @returns string + */ +function getPath(filename) { return `assets/pages${filename}`; } -async function insertRegistry( - html: string, - type: "js" | "ts", - storage: NitroStorage -): Promise { +/** + * + * @param {string} html + * @param {"js" | "ts"} type + * @returns Promise + */ +async function insertRegistry(html, type, storage) { const ast = parse(html); const componentFiles = await getFiles(type, storage); const availableComponents = componentFiles.map((key) => @@ -80,17 +88,20 @@ async function insertRegistry( return render(ast); } -async function buildRegistry( - usedCustomElements: string[], - type: "js" | "ts", - storage: NitroStorage -) { +/** + * + * @param {Array} usedCustomElements + * @param {"js" | "ts"} type + * @returns + */ +async function buildRegistry(usedCustomElements, type, storage) { let registryScript = `