From 73617647dbad89200d92ce3691061f5977000727 Mon Sep 17 00:00:00 2001 From: Ayo Ayco Date: Wed, 8 Jan 2025 21:21:31 +0100 Subject: [PATCH] feat: move cli to core (#55) * refactor: move cli to core * feat: move cli to core - use route-middleware in serve - eliminate need for `routes` dir in app * feat: use route-middleware in build * chore: update test gh action --- .github/workflows/test.yml | 4 +- .vscode/settings.json | 1 + package.json | 2 +- packages/cli/LICENSE | 21 --- packages/cli/README.md | 27 ---- packages/cli/package.json | 41 ------ packages/cli/test/index.test.js | 12 -- packages/{ => core}/cli/commands/build.mjs | 14 +- packages/{ => core}/cli/commands/generate.mjs | 2 +- packages/{ => core}/cli/commands/new.mjs | 2 +- packages/{ => core}/cli/commands/prepare.mjs | 0 packages/{ => core}/cli/commands/serve.mjs | 12 +- packages/{ => core}/cli/index.js | 0 ...fly-config.js => default-mcfly-config.mjs} | 0 ...aluate-scripts.js => evaluate-scripts.mjs} | 0 packages/core/event-handler.js | 16 +-- packages/core/{get-files.js => get-files.mjs} | 0 packages/core/{hooks.js => hooks.mjs} | 0 ...inject-elements.js => inject-elements.mjs} | 4 +- ...ject-fragments.js => inject-fragments.mjs} | 2 +- packages/core/package.json | 17 ++- packages/core/route-middleware.js | 124 ++++++++++++++++++ packages/{cli => core}/test/build.test.js | 2 +- packages/{cli => core}/test/generate.test.js | 2 +- packages/{cli => core}/test/new.test.js | 2 +- packages/{cli => core}/test/prepare.test.js | 2 +- packages/{cli => core}/test/serve.test.js | 2 +- packages/{cli => core}/vitest.config.mjs | 0 pnpm-lock.yaml | 70 +++++----- site/package.json | 27 ++-- site/routes/[...].ts | 3 - 31 files changed, 227 insertions(+), 184 deletions(-) delete mode 100644 packages/cli/LICENSE delete mode 100644 packages/cli/README.md delete mode 100644 packages/cli/package.json delete mode 100644 packages/cli/test/index.test.js rename packages/{ => core}/cli/commands/build.mjs (85%) rename packages/{ => core}/cli/commands/generate.mjs (94%) rename packages/{ => core}/cli/commands/new.mjs (97%) rename packages/{ => core}/cli/commands/prepare.mjs (100%) rename packages/{ => core}/cli/commands/serve.mjs (90%) rename packages/{ => core}/cli/index.js (100%) rename packages/core/{default-mcfly-config.js => default-mcfly-config.mjs} (100%) rename packages/core/{evaluate-scripts.js => evaluate-scripts.mjs} (100%) rename packages/core/{get-files.js => get-files.mjs} (100%) rename packages/core/{hooks.js => hooks.mjs} (100%) rename packages/core/{inject-elements.js => inject-elements.mjs} (96%) rename packages/core/{inject-fragments.js => inject-fragments.mjs} (98%) create mode 100644 packages/core/route-middleware.js rename packages/{cli => core}/test/build.test.js (93%) rename packages/{cli => core}/test/generate.test.js (83%) rename packages/{cli => core}/test/new.test.js (96%) rename packages/{cli => core}/test/prepare.test.js (94%) rename packages/{cli => core}/test/serve.test.js (96%) rename packages/{cli => core}/vitest.config.mjs (100%) delete mode 100644 site/routes/[...].ts diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 07b7e20..4483aed 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -21,8 +21,8 @@ jobs: - name: Checkout code uses: actions/checkout@v3 - - name: Install CLI deps - run: cd packages/cli && npm install --ignore-scripts + - name: Install core deps + run: cd packages/core && npm install --ignore-scripts - name: Run CLI tests run: npx vitest run . diff --git a/.vscode/settings.json b/.vscode/settings.json index 154bb1e..93752bb 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -5,6 +5,7 @@ "consola", "estree", "giget", + "hookable", "mcfly", "mcflyjs", "nitropack", diff --git a/package.json b/package.json index 51acc6f..4be9ccf 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ "build:preview": "pnpm --filter @mcflyjs/landing-page build:preview", "template:basic": "pnpm --filter @templates/basic dev", "create": "node ./packages/create-mcfly", - "cli": "node ./packages/cli", + "cli": "node ./packages/core/cli/index.js", "test": "vitest .", "lint": "eslint . --config eslint.config.mjs --cache", "check": "npm run format && npm run lint", diff --git a/packages/cli/LICENSE b/packages/cli/LICENSE deleted file mode 100644 index a0cb95f..0000000 --- a/packages/cli/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2023 Ayo Ayco - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/packages/cli/README.md b/packages/cli/README.md deleted file mode 100644 index 164f0aa..0000000 --- a/packages/cli/README.md +++ /dev/null @@ -1,27 +0,0 @@ -# McFly CLI - -The **McFly CLI** is the command-line tooling for [McFly](https://ayco.io/gh/McFly) -- a no-framework framework that assists in leveraging the web platform. - -## Installation - -Install the CLI using npm: - -``` -npm i -g @mcflyjs/cli -``` - -## Commands - -You can run the following **McFly CLI** commands: - -| Command | Action | -| --- | --- | -| `mcfly new` | Creates a new McFly project. | -| `mcfly serve` | Runs the developent server. | -| `mcfly build` | Builds the McFly project for production. | -| `mcfly prepare` | Prepares the McFly workspace. | -| `mcfly generate` | Generates building blocks for a McFly app. (In-progress) | - ---- -*Just keep building*
-*A project by [Ayo Ayco](https://ayco.io)* diff --git a/packages/cli/package.json b/packages/cli/package.json deleted file mode 100644 index b0da6b5..0000000 --- a/packages/cli/package.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "name": "@mcflyjs/cli", - "version": "0.1.1", - "description": "McFly CLI tools", - "type": "module", - "main": "index.js", - "bin": { - "mcfly": "./index.js" - }, - "scripts": { - "version": "npm version", - "publish": "npm publish", - "test": "vitest", - "test:ui": "vitest --ui", - "test:coverage": "vitest run --coverage" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/ayoayco/McFly.git", - "directory": "packages/cli" - }, - "author": "Ayo Ayco", - "license": "MIT", - "bugs": { - "url": "https://github.com/ayoayco/McFly/issues" - }, - "homepage": "https://mcfly.js.org", - "dependencies": { - "c12": "^2.0.1", - "citty": "^0.1.6", - "consola": "^3.3.3", - "pathe": "^1.1.2" - }, - "devDependencies": { - "@vitest/coverage-istanbul": "2.1.8", - "@vitest/coverage-v8": "2.1.8", - "@vitest/ui": "2.1.8", - "nitropack": "~2.10.4", - "vitest": "^2.1.8" - } -} diff --git a/packages/cli/test/index.test.js b/packages/cli/test/index.test.js deleted file mode 100644 index 88b3e4c..0000000 --- a/packages/cli/test/index.test.js +++ /dev/null @@ -1,12 +0,0 @@ -import { test } from 'vitest' -import { exportedForTest } from '..' -import { expect } from 'vitest' - -const testObj = exportedForTest.main - -test('should have correct subcommands', () => { - Object.keys(testObj.subCommands).forEach((key) => { - expect(testObj.subCommands[key]).toBeTypeOf('function') - expect(testObj.subCommands[key].name).toBe(key) - }) -}) diff --git a/packages/cli/commands/build.mjs b/packages/core/cli/commands/build.mjs similarity index 85% rename from packages/cli/commands/build.mjs rename to packages/core/cli/commands/build.mjs index 0395caf..38e36ea 100644 --- a/packages/cli/commands/build.mjs +++ b/packages/core/cli/commands/build.mjs @@ -2,7 +2,7 @@ import { consola } from 'consola' import { defineCommand } from 'citty' -import { resolve } from 'pathe' +import { dirname, resolve } from 'pathe' import { loadConfig } from 'c12' import { build, @@ -11,6 +11,7 @@ import { prepare, prerender, } from 'nitropack' +import { fileURLToPath } from 'node:url' async function _build(args) { consola.start('Building project...') @@ -30,6 +31,15 @@ async function _build(args) { ...(nitroConfig ?? {}), }) nitro.options.runtimeConfig.mcfly = mcflyConfig + + const __filename = fileURLToPath(import.meta.url) + const __dirname = dirname(__filename) + + nitro.options.handlers.push({ + middleware: true, + handler: resolve(__dirname, '../../route-middleware.js'), + }) + await prepare(nitro) await copyPublicAssets(nitro) await prerender(nitro) @@ -42,7 +52,7 @@ async function _build(args) { export default defineCommand({ meta: { - name: 'prepare', + name: 'build', description: 'Builds the McFly project for production.', }, diff --git a/packages/cli/commands/generate.mjs b/packages/core/cli/commands/generate.mjs similarity index 94% rename from packages/cli/commands/generate.mjs rename to packages/core/cli/commands/generate.mjs index 7a33c65..c76f64f 100644 --- a/packages/cli/commands/generate.mjs +++ b/packages/core/cli/commands/generate.mjs @@ -9,7 +9,7 @@ function generate() { export default defineCommand({ meta: { - name: 'prepare', + name: 'generate', description: 'Generates building blocks for a McFly app.', }, run() { diff --git a/packages/cli/commands/new.mjs b/packages/core/cli/commands/new.mjs similarity index 97% rename from packages/cli/commands/new.mjs rename to packages/core/cli/commands/new.mjs index 1da156c..d76ad61 100644 --- a/packages/cli/commands/new.mjs +++ b/packages/core/cli/commands/new.mjs @@ -18,7 +18,7 @@ function createNew(args) { export default defineCommand({ meta: { - name: 'prepare', + name: 'new', description: 'Creates a new McFly project.', }, args: { diff --git a/packages/cli/commands/prepare.mjs b/packages/core/cli/commands/prepare.mjs similarity index 100% rename from packages/cli/commands/prepare.mjs rename to packages/core/cli/commands/prepare.mjs diff --git a/packages/cli/commands/serve.mjs b/packages/core/cli/commands/serve.mjs similarity index 90% rename from packages/cli/commands/serve.mjs rename to packages/core/cli/commands/serve.mjs index ee8fd56..d3453c6 100644 --- a/packages/cli/commands/serve.mjs +++ b/packages/core/cli/commands/serve.mjs @@ -13,8 +13,12 @@ import { } from 'nitropack' import { resolve } from 'pathe' import { loadConfig } from 'c12' +import { fileURLToPath } from 'node:url' +import { dirname } from 'pathe' const hmrKeyRe = /^runtimeConfig\.|routeRules\./ +const __filename = fileURLToPath(import.meta.url) +const __dirname = dirname(__filename) async function printInfo() { try { @@ -91,7 +95,13 @@ async function serve(args) { ) nitro.hooks.hookOnce('restart', reload) nitro.options.runtimeConfig.mcfly = mcflyConfig + + nitro.options.handlers.push({ + middleware: true, + handler: resolve(__dirname, '../../route-middleware.js'), + }) const server = createDevServer(nitro) + // const listenOptions = parseArgs(args) await server.listen(1234) await prepare(nitro) @@ -106,7 +116,7 @@ async function serve(args) { export default defineCommand({ meta: { - name: 'prepare', + name: 'serve', description: 'Runs the dev server.', }, async run({ args }) { diff --git a/packages/cli/index.js b/packages/core/cli/index.js similarity index 100% rename from packages/cli/index.js rename to packages/core/cli/index.js diff --git a/packages/core/default-mcfly-config.js b/packages/core/default-mcfly-config.mjs similarity index 100% rename from packages/core/default-mcfly-config.js rename to packages/core/default-mcfly-config.mjs diff --git a/packages/core/evaluate-scripts.js b/packages/core/evaluate-scripts.mjs similarity index 100% rename from packages/core/evaluate-scripts.js rename to packages/core/evaluate-scripts.mjs diff --git a/packages/core/event-handler.js b/packages/core/event-handler.js index e488c26..12f1382 100644 --- a/packages/core/event-handler.js +++ b/packages/core/event-handler.js @@ -1,11 +1,11 @@ import { consola } from 'consola' import { eventHandler } from 'h3' import { createHooks } from 'hookable' -import { hooks as mcflyHooks } from './hooks.js' -import { evaluateServerScripts } from './evaluate-scripts.js' -import { injectHtmlFragments } from './inject-fragments.js' -import { injectCustomElements } from './inject-elements.js' -import defaultMcflyConfig from './default-mcfly-config.js' +import { hooks as mcflyHooks } from './hooks.mjs' +import { evaluateServerScripts } from './evaluate-scripts.mjs' +import { injectHtmlFragments } from './inject-fragments.mjs' +import { injectCustomElements } from './inject-elements.mjs' +import defaultMcflyConfig from './default-mcfly-config.mjs' import { loadConfig } from 'c12' /** @@ -17,16 +17,16 @@ import { loadConfig } from 'c12' /** * Intercepts all routes and assembles the correct HTML to return + * @deprecated * @param {{ * storage: Storage * }} param0 * @returns {EventHandler} */ export function useMcFlyRoute({ storage }) { - const hooks = createHooks() - Object.keys(mcflyHooks).forEach((hookName) => hooks.addHooks(hookName)) - return eventHandler(async (event) => { + const hooks = createHooks() + Object.keys(mcflyHooks).forEach((hookName) => hooks.addHooks(hookName)) const { path } = event let { config } = await loadConfig({ name: 'mcfly' }) diff --git a/packages/core/get-files.js b/packages/core/get-files.mjs similarity index 100% rename from packages/core/get-files.js rename to packages/core/get-files.mjs diff --git a/packages/core/hooks.js b/packages/core/hooks.mjs similarity index 100% rename from packages/core/hooks.js rename to packages/core/hooks.mjs diff --git a/packages/core/inject-elements.js b/packages/core/inject-elements.mjs similarity index 96% rename from packages/core/inject-elements.js rename to packages/core/inject-elements.mjs index 0dc7aa4..06d0ce7 100644 --- a/packages/core/inject-elements.js +++ b/packages/core/inject-elements.mjs @@ -1,8 +1,8 @@ import { ELEMENT_NODE, parse, render, walkSync } from 'ultrahtml' -import { getFiles } from './get-files.js' +import { getFiles } from './get-files.mjs' /** - * @typedef {import('../config').McFlyConfig} Config + * @typedef {import('../config/index.js').McFlyConfig} Config */ /** diff --git a/packages/core/inject-fragments.js b/packages/core/inject-fragments.mjs similarity index 98% rename from packages/core/inject-fragments.js rename to packages/core/inject-fragments.mjs index 901ae0d..86815ec 100644 --- a/packages/core/inject-fragments.js +++ b/packages/core/inject-fragments.mjs @@ -1,5 +1,5 @@ import { ELEMENT_NODE, parse, render, walkSync } from 'ultrahtml' -import { getFiles } from './get-files.js' +import { getFiles } from './get-files.mjs' /** * @typedef {import('ultrahtml').Node} HtmlNode diff --git a/packages/core/package.json b/packages/core/package.json index 87cff4d..a0b4c7e 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,13 +1,17 @@ { "name": "@mcflyjs/core", - "version": "0.6.2", + "version": "0.7.0", "description": "McFly core package", "type": "module", "main": "index.js", + "bin": { + "mcfly": "./cli/index.js" + }, "scripts": { "version": "npm version", "publish": "npm publish", - "test": "echo \"Error: no test specified\" && exit 1" + "test": "echo \"Error: no test specified\" && exit 1", + "build:middleware": "npx esbuild route-middleware.js --bundle --outfile=mcfly-middleware.js" }, "repository": { "type": "git", @@ -22,8 +26,8 @@ "homepage": "https://mcfly.js.org", "dependencies": { "c12": "^2.0.1", + "citty": "^0.1.6", "consola": "^3.3.3", - "esbuild": "^0.24.2", "esprima": "^4.0.1", "h3": "^1.13.0", "nitropack": "latest", @@ -31,7 +35,12 @@ "ultrahtml": "^1.5.3" }, "devDependencies": { + "@vitest/coverage-istanbul": "2.1.8", + "@vitest/coverage-v8": "2.1.8", + "@vitest/ui": "2.1.8", + "esbuild": "^0.24.2", "hookable": "^5.5.3", - "unstorage": "^1.14.4" + "unstorage": "^1.14.4", + "vitest": "^2.1.8" } } diff --git a/packages/core/route-middleware.js b/packages/core/route-middleware.js new file mode 100644 index 0000000..a419a63 --- /dev/null +++ b/packages/core/route-middleware.js @@ -0,0 +1,124 @@ +import { eventHandler } from 'h3' +import { useRuntimeConfig, useStorage } from 'nitropack/runtime' +import { createHooks } from 'hookable' +import { consola } from 'consola' + +import { hooks as mcflyHooks } from '@mcflyjs/core/hooks.mjs' +import defaultMcflyConfig from '@mcflyjs/core/default-mcfly-config.mjs' +import { evaluateServerScripts } from '@mcflyjs/core/evaluate-scripts.mjs' +import { injectHtmlFragments } from '@mcflyjs/core/inject-fragments.mjs' +import { injectCustomElements } from '@mcflyjs/core/inject-elements.mjs' + +/** + * @typedef {import('../config').McFlyConfig} Config + * @typedef {import('unstorage').Storage} Storage + * @typedef {import('unstorage').StorageValue} StorageValue + * @typedef {import('h3').EventHandler} EventHandler + */ + +/** + * McFly middleware event handler + */ +export default eventHandler(async (event) => { + const hooks = createHooks() + Object.keys(mcflyHooks).forEach((hookName) => hooks.addHooks(hookName)) + const { path } = event + let { mcfly: config } = useRuntimeConfig() + const storage = useStorage() + + if (!config || Object.keys(config).length === 0) { + config = defaultMcflyConfig + consola.warn(`[WARN]: McFly configuration not loaded, using defaults...`) + } + + const plugins = config.plugins + + plugins.forEach((plugin) => { + const pluginHooks = Object.keys(plugin) + pluginHooks.forEach((pluginHook) => { + hooks.hook(pluginHook, plugin[pluginHook]) + }) + }) + + const { components: componentType } = config + let html = await getHtml(path, storage) + + if (html) { + const transforms = [ + { + fn: evaluateServerScripts, + args: [''], + hook: mcflyHooks.serverScriptsEvaluated, + }, + { + fn: injectHtmlFragments, + args: [storage], + hook: mcflyHooks.fragmentsInjected, + }, + { + fn: injectCustomElements, + args: [componentType, storage], + hook: mcflyHooks.customElementsInjected, + }, + ] + + if (!!componentType && !!html) { + for (const transform of transforms) { + html = await transform.fn(html.toString(), ...transform.args) + + // call hook + if (transform.hook) { + hooks.callHook(transform.hook) + } + } + } else { + consola.error('[ERR]: Failed to insert registry', { + componentType: !componentType ? 'missing' : 'okay', + html: !html ? 'missing' : 'okay', + }) + } + } + + if (html) { + hooks.callHook(mcflyHooks.pageRendered) + } + + return ( + html ?? + new Response( + '😱 ERROR 404: Not found. You can put a 404.html on the ./src/pages directory to customize this error page.', + { status: 404 } + ) + ) +}) +/** + * Gets the storage path for a file + * @param {string} filename + * @returns {string} + */ +function getPath(filename) { + return `assets:pages${filename}` +} + +function getPurePath(path) { + return path.split('?')[0] +} +/** + * Gets the correct HTML depending on the path requested + * @param {string} path + * @param {Storage} storage + * @returns {Promise} + */ +async function getHtml(path, storage) { + const purePath = getPurePath(path) + const rawPath = + purePath[purePath.length - 1] === '/' ? purePath.slice(0, -1) : purePath + const filename = rawPath === '' ? '/index.html' : `${rawPath}.html` + const fallback = getPath(rawPath + '/index.html') + const filePath = getPath(filename) + let html = await storage.getItem(filePath) + if (!html) html = await storage.getItem(fallback) + if (!html) html = await storage.getItem(getPath('/404.html')) + + return html +} diff --git a/packages/cli/test/build.test.js b/packages/core/test/build.test.js similarity index 93% rename from packages/cli/test/build.test.js rename to packages/core/test/build.test.js index a720a30..98628f9 100644 --- a/packages/cli/test/build.test.js +++ b/packages/core/test/build.test.js @@ -1,6 +1,6 @@ import consola from 'consola' import { vi, expect, test } from 'vitest' -import { exportedForTest } from '../commands/build.mjs' +import { exportedForTest } from '../cli/commands/build.mjs' const testFn = exportedForTest.build diff --git a/packages/cli/test/generate.test.js b/packages/core/test/generate.test.js similarity index 83% rename from packages/cli/test/generate.test.js rename to packages/core/test/generate.test.js index c59455d..cd2cb77 100644 --- a/packages/cli/test/generate.test.js +++ b/packages/core/test/generate.test.js @@ -1,5 +1,5 @@ import { expect, test, vi } from 'vitest' -import { exportedForTest } from '../commands/generate.mjs' +import { exportedForTest } from '../cli/commands/generate.mjs' import consola from 'consola' const testFn = exportedForTest.generate diff --git a/packages/cli/test/new.test.js b/packages/core/test/new.test.js similarity index 96% rename from packages/cli/test/new.test.js rename to packages/core/test/new.test.js index 97c08e4..9b25ab2 100644 --- a/packages/cli/test/new.test.js +++ b/packages/core/test/new.test.js @@ -1,5 +1,5 @@ import { expect, test, vi } from 'vitest' -import { exportedForTest } from '../commands/new.mjs' +import { exportedForTest } from '../cli/commands/new.mjs' import { execSync } from 'node:child_process' import consola from 'consola' diff --git a/packages/cli/test/prepare.test.js b/packages/core/test/prepare.test.js similarity index 94% rename from packages/cli/test/prepare.test.js rename to packages/core/test/prepare.test.js index 62eec59..bdb4793 100644 --- a/packages/cli/test/prepare.test.js +++ b/packages/core/test/prepare.test.js @@ -1,5 +1,5 @@ import { test, expect, vi } from 'vitest' -import { exportedForTest } from '../commands/prepare.mjs' +import { exportedForTest } from '../cli/commands/prepare.mjs' import consola from 'consola' import { execSync } from 'node:child_process' diff --git a/packages/cli/test/serve.test.js b/packages/core/test/serve.test.js similarity index 96% rename from packages/cli/test/serve.test.js rename to packages/core/test/serve.test.js index de60ad2..d0f4c5e 100644 --- a/packages/cli/test/serve.test.js +++ b/packages/core/test/serve.test.js @@ -1,5 +1,5 @@ import { describe, expect, test, vi } from 'vitest' -import { exportedForTest } from '../commands/serve.mjs' +import { exportedForTest } from '../cli/commands/serve.mjs' import consola from 'consola' // describe.skip('FUNCTION: serve()', () => { diff --git a/packages/cli/vitest.config.mjs b/packages/core/vitest.config.mjs similarity index 100% rename from packages/cli/vitest.config.mjs rename to packages/core/vitest.config.mjs diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index eb66e23..22db933 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -36,37 +36,6 @@ importers: specifier: ^2.1.8 version: 2.1.8(@types/node@22.10.2)(@vitest/ui@2.1.8)(terser@5.37.0) - packages/cli: - dependencies: - c12: - specifier: ^2.0.1 - version: 2.0.1(magicast@0.3.5) - citty: - specifier: ^0.1.6 - version: 0.1.6 - consola: - specifier: ^3.3.3 - version: 3.3.3 - pathe: - specifier: ^1.1.2 - version: 1.1.2 - devDependencies: - '@vitest/coverage-istanbul': - specifier: 2.1.8 - version: 2.1.8(vitest@2.1.8) - '@vitest/coverage-v8': - specifier: 2.1.8 - version: 2.1.8(vitest@2.1.8) - '@vitest/ui': - specifier: 2.1.8 - version: 2.1.8(vitest@2.1.8) - nitropack: - specifier: ~2.10.4 - version: 2.10.4(typescript@5.7.2) - vitest: - specifier: ^2.1.8 - version: 2.1.8(@types/node@22.10.2)(@vitest/ui@2.1.8)(terser@5.37.0) - packages/config: dependencies: h3: @@ -85,12 +54,12 @@ importers: c12: specifier: ^2.0.1 version: 2.0.1(magicast@0.3.5) + citty: + specifier: ^0.1.6 + version: 0.1.6 consola: specifier: ^3.3.3 version: 3.3.3 - esbuild: - specifier: ^0.24.2 - version: 0.24.2 esprima: specifier: ^4.0.1 version: 4.0.1 @@ -107,12 +76,27 @@ importers: specifier: ^1.5.3 version: 1.5.3 devDependencies: + '@vitest/coverage-istanbul': + specifier: 2.1.8 + version: 2.1.8(vitest@2.1.8) + '@vitest/coverage-v8': + specifier: 2.1.8 + version: 2.1.8(vitest@2.1.8) + '@vitest/ui': + specifier: 2.1.8 + version: 2.1.8(vitest@2.1.8) + esbuild: + specifier: ^0.24.2 + version: 0.24.2 hookable: specifier: ^5.5.3 version: 5.5.3 unstorage: specifier: ^1.14.4 version: 1.14.4(db0@0.2.1)(ioredis@5.4.2) + vitest: + specifier: ^2.1.8 + version: 2.1.8(@types/node@22.10.2)(@vitest/ui@2.1.8)(terser@5.37.0) packages/create-mcfly: dependencies: @@ -125,9 +109,6 @@ importers: site: dependencies: - '@mcflyjs/cli': - specifier: workspace:* - version: link:../packages/cli '@mcflyjs/config': specifier: workspace:* version: link:../packages/config @@ -139,7 +120,7 @@ importers: dependencies: '@mcflyjs/cli': specifier: ^0.1.1 - version: link:../../packages/cli + version: 0.1.1(magicast@0.3.5) '@mcflyjs/config': specifier: ^0.2.1 version: link:../../packages/config @@ -622,6 +603,10 @@ packages: engines: {node: '>=18'} hasBin: true + '@mcflyjs/cli@0.1.1': + resolution: {integrity: sha512-YT0XVwbUO9SscfoCrNY1Tz92SwLrCKbvHYrPUWjC8UAVaaX8tekdfRDF7DiIr8PX5me3YIZUBnQw0/loFNPhvQ==} + hasBin: true + '@mcflyjs/core@0.6.1': resolution: {integrity: sha512-ozgpIRpNix7gyuFlB8ofEm+iENMvxQsgyzxMTbIrOM69QYiEV1GsjxWyUqH3QuCwA4UB1KHdyWS+PNaCWSepOQ==} @@ -3132,6 +3117,15 @@ snapshots: - encoding - supports-color + '@mcflyjs/cli@0.1.1(magicast@0.3.5)': + dependencies: + c12: 2.0.1(magicast@0.3.5) + citty: 0.1.6 + consola: 3.3.3 + pathe: 1.1.2 + transitivePeerDependencies: + - magicast + '@mcflyjs/core@0.6.1(magicast@0.3.5)(typescript@5.7.2)': dependencies: c12: 2.0.1(magicast@0.3.5) diff --git a/site/package.json b/site/package.json index d763dfc..a328eeb 100644 --- a/site/package.json +++ b/site/package.json @@ -2,19 +2,6 @@ "name": "@mcflyjs/landing-page", "description": "McFly is a full-stack no-framework framework that assists developers in leveraging the web platform.", "private": true, - "scripts": { - "start": "mcfly serve", - "prepare": "mcfly prepare", - "dev": "mcfly serve", - "build": "mcfly build", - "preview": "node .output/server/index.mjs", - "build:preview": "pnpm run build && pnpm run preview" - }, - "dependencies": { - "@mcflyjs/cli": "workspace:*", - "@mcflyjs/config": "workspace:*", - "@mcflyjs/core": "workspace:*" - }, "version": "0.0.1", "main": "index.js", "repository": { @@ -27,5 +14,17 @@ "bugs": { "url": "https://github.com/ayoayco/McFly/issues" }, - "homepage": "https://mcfly.js.org" + "homepage": "https://mcfly.js.org", + "scripts": { + "start": "mcfly serve", + "prepare": "mcfly prepare", + "dev": "mcfly serve", + "build": "mcfly build", + "preview": "node .output/server/index.mjs", + "build:preview": "pnpm run build && pnpm run preview" + }, + "dependencies": { + "@mcflyjs/config": "workspace:*", + "@mcflyjs/core": "workspace:*" + } } diff --git a/site/routes/[...].ts b/site/routes/[...].ts deleted file mode 100644 index 0354ab4..0000000 --- a/site/routes/[...].ts +++ /dev/null @@ -1,3 +0,0 @@ -import { useMcFlyRoute } from '@mcflyjs/core' - -export default useMcFlyRoute({ storage: useStorage() })