feat: auto imports
This commit is contained in:
parent
7fbc38b7cd
commit
b7f2ac2620
14 changed files with 64 additions and 71 deletions
41
package-lock.json
generated
41
package-lock.json
generated
|
@ -3843,9 +3843,9 @@
|
||||||
"integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
|
"integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
|
||||||
},
|
},
|
||||||
"node_modules/web-component-base": {
|
"node_modules/web-component-base": {
|
||||||
"version": "1.9.5",
|
"version": "1.11.0",
|
||||||
"resolved": "https://registry.npmjs.org/web-component-base/-/web-component-base-1.9.5.tgz",
|
"resolved": "https://registry.npmjs.org/web-component-base/-/web-component-base-1.11.0.tgz",
|
||||||
"integrity": "sha512-wIYHFLR0FZUdofVAk26hwngHznUys2dpAYY238v1i2yYeLtO75k59WZmdxUfHf29mh2Gyle3S8A8EoKvZ+nNjA=="
|
"integrity": "sha512-jGmw9XTNTu6fT1tnVX6YebGB38g1bYZuXo9AGXPM6j5Z9BCBFNI1fwe+sQpx/ve/p8kZF9Hkn975Xi9LwTCoGg=="
|
||||||
},
|
},
|
||||||
"node_modules/webidl-conversions": {
|
"node_modules/webidl-conversions": {
|
||||||
"version": "3.0.1",
|
"version": "3.0.1",
|
||||||
|
@ -3970,12 +3970,12 @@
|
||||||
},
|
},
|
||||||
"packages/cli": {
|
"packages/cli": {
|
||||||
"name": "@mcflyjs/cli",
|
"name": "@mcflyjs/cli",
|
||||||
"version": "0.0.15",
|
"version": "0.0.16",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"citty": "^0.1.4",
|
"citty": "^0.1.4",
|
||||||
"consola": "^3.2.3",
|
"consola": "^3.2.3",
|
||||||
"web-component-base": "latest"
|
"web-component-base": "^1.9.5"
|
||||||
},
|
},
|
||||||
"bin": {
|
"bin": {
|
||||||
"mcfly": "index.js"
|
"mcfly": "index.js"
|
||||||
|
@ -3983,13 +3983,15 @@
|
||||||
},
|
},
|
||||||
"packages/config": {
|
"packages/config": {
|
||||||
"name": "@mcflyjs/config",
|
"name": "@mcflyjs/config",
|
||||||
"version": "0.0.9",
|
"version": "0.0.10",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"devDependencies": {}
|
"dependencies": {
|
||||||
|
"web-component-base": "^1.9.5"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"packages/core": {
|
"packages/core": {
|
||||||
"name": "@mcflyjs/core",
|
"name": "@mcflyjs/core",
|
||||||
"version": "0.2.10",
|
"version": "0.2.11",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"esprima": "^4.0.1",
|
"esprima": "^4.0.1",
|
||||||
|
@ -4031,27 +4033,30 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"templates/basic/node_modules/@mcflyjs/cli": {
|
"templates/basic/node_modules/@mcflyjs/cli": {
|
||||||
"version": "0.0.14",
|
"version": "0.0.16",
|
||||||
"resolved": "https://registry.npmjs.org/@mcflyjs/cli/-/cli-0.0.14.tgz",
|
"resolved": "https://registry.npmjs.org/@mcflyjs/cli/-/cli-0.0.16.tgz",
|
||||||
"integrity": "sha512-pJiob4D4W/8hN1wNiSuDzE9W/j7yTDJucGss5IBtO/7XzTkgpNHU5ThXLExnlnI20GIrmeR3R9A+5vJ7JnMYyA==",
|
"integrity": "sha512-De70ANluAMsAhgEhHSUcbnQky7vqQ2P7qhLM7LltXfOemYz0Lt+UPTYY3K29XnZ5e3O0EVzZTYETGpeo+azkIg==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"citty": "^0.1.4",
|
"citty": "^0.1.4",
|
||||||
"consola": "^3.2.3",
|
"consola": "^3.2.3",
|
||||||
"web-component-base": "latest"
|
"web-component-base": "^1.9.5"
|
||||||
},
|
},
|
||||||
"bin": {
|
"bin": {
|
||||||
"mcfly": "index.js"
|
"mcfly": "index.js"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"templates/basic/node_modules/@mcflyjs/config": {
|
"templates/basic/node_modules/@mcflyjs/config": {
|
||||||
"version": "0.0.9",
|
"version": "0.0.10",
|
||||||
"resolved": "https://registry.npmjs.org/@mcflyjs/config/-/config-0.0.9.tgz",
|
"resolved": "https://registry.npmjs.org/@mcflyjs/config/-/config-0.0.10.tgz",
|
||||||
"integrity": "sha512-T0JGct0dh+b6ka07HdzMckECRXdGoiZDPctolL6tQ3AvaQt9+DvoyvihJTRgNdnkJyzEDeD1fDeU0aO7tiZd6A=="
|
"integrity": "sha512-PIDno3dXE914MjC7I9wLkOHqGeYrO79RUpyGZj+5gEHErsZYXZqBwI7ns4rQ7S3WDBbjmWnUX9Q13ctM0Wun9w==",
|
||||||
|
"dependencies": {
|
||||||
|
"web-component-base": "^1.9.5"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"templates/basic/node_modules/@mcflyjs/core": {
|
"templates/basic/node_modules/@mcflyjs/core": {
|
||||||
"version": "0.2.9",
|
"version": "0.2.11",
|
||||||
"resolved": "https://registry.npmjs.org/@mcflyjs/core/-/core-0.2.9.tgz",
|
"resolved": "https://registry.npmjs.org/@mcflyjs/core/-/core-0.2.11.tgz",
|
||||||
"integrity": "sha512-RpbntTIA00SGQCZODJcTbQ8HyNl9/MXlMBujNtGsQzYX4mXrb3V0VlCBy/3VDKO2Hhzbp9Fbh4waAiNHCc/5cg==",
|
"integrity": "sha512-lyCAUfX77liSX6ICAaKsXQg+MiqYAEQJWyn20ij4aoidOTaPj/cXUsrYnWdmSvdb0xccPci3dNTtNU0ml+PmGQ==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"esprima": "^4.0.1",
|
"esprima": "^4.0.1",
|
||||||
"h3": "^1.8.2",
|
"h3": "^1.8.2",
|
||||||
|
|
|
@ -2,11 +2,7 @@
|
||||||
|
|
||||||
import { consola } from "consola";
|
import { consola } from "consola";
|
||||||
import { defineCommand } from "citty";
|
import { defineCommand } from "citty";
|
||||||
import { appendFileSync, copyFileSync, readFileSync } from "node:fs";
|
|
||||||
import { createRequire } from "node:module";
|
|
||||||
import { execSync as exec } from "child_process";
|
import { execSync as exec } from "child_process";
|
||||||
import { tryCatch } from "../utils/try-catch.mjs";
|
|
||||||
import path from "node:path";
|
|
||||||
|
|
||||||
export default defineCommand({
|
export default defineCommand({
|
||||||
meta: {
|
meta: {
|
||||||
|
@ -16,32 +12,16 @@ export default defineCommand({
|
||||||
async run() {
|
async run() {
|
||||||
consola.start("Preparing McFly workspace...");
|
consola.start("Preparing McFly workspace...");
|
||||||
|
|
||||||
const require = createRequire(import.meta.url);
|
|
||||||
const globalsPath = path.dirname(require.resolve("@mcflyjs/cli"));
|
|
||||||
|
|
||||||
const steps = [
|
|
||||||
() => exec("npx nitropack prepare", { stdio: "inherit" }),
|
|
||||||
() =>
|
|
||||||
copyFileSync(
|
|
||||||
`${globalsPath}/globals/mcfly-imports.d.ts`,
|
|
||||||
".nitro/types/mcfly-imports.d.ts"
|
|
||||||
),
|
|
||||||
() => {
|
|
||||||
const ref = `\n${readFileSync(
|
|
||||||
`${globalsPath}/globals/mcfly.d.ts`
|
|
||||||
).toString()}`;
|
|
||||||
appendFileSync(".nitro/types/nitro.d.ts", ref);
|
|
||||||
},
|
|
||||||
].map((fn) => () => tryCatch(fn));
|
|
||||||
|
|
||||||
let err;
|
let err;
|
||||||
steps.every((step) => {
|
|
||||||
err = step();
|
try {
|
||||||
return !err;
|
exec("npx nitropack prepare", { stdio: "inherit" });
|
||||||
});
|
} catch (e) {
|
||||||
|
consola.error(e);
|
||||||
|
err = e;
|
||||||
|
}
|
||||||
|
|
||||||
if (err) {
|
if (err) {
|
||||||
consola.error(err);
|
|
||||||
consola.fail(
|
consola.fail(
|
||||||
"McFly workspace preparation failed. Please make sure dependencies are installed.\n"
|
"McFly workspace preparation failed. Please make sure dependencies are installed.\n"
|
||||||
);
|
);
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "@mcflyjs/cli",
|
"name": "@mcflyjs/cli",
|
||||||
"version": "0.0.15",
|
"version": "0.0.16",
|
||||||
"description": "McFly CLI tools",
|
"description": "McFly CLI tools",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
|
@ -24,6 +24,6 @@
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"citty": "^0.1.4",
|
"citty": "^0.1.4",
|
||||||
"consola": "^3.2.3",
|
"consola": "^3.2.3",
|
||||||
"web-component-base": "latest"
|
"web-component-base": "^1.9.5"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,9 +0,0 @@
|
||||||
export function tryCatch(fn) {
|
|
||||||
let error;
|
|
||||||
try {
|
|
||||||
fn();
|
|
||||||
} catch (e) {
|
|
||||||
error = e;
|
|
||||||
}
|
|
||||||
return error;
|
|
||||||
}
|
|
|
@ -18,5 +18,21 @@ export default function McFly() {
|
||||||
dir: "./src/components",
|
dir: "./src/components",
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
imports: {
|
||||||
|
presets: [
|
||||||
|
{
|
||||||
|
from: "web-component-base/WebComponent",
|
||||||
|
imports: ["WebComponent"],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: "@mcflyjs/core/event-handler",
|
||||||
|
imports: ["useMcFlyRoute"],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: "@mcflyjs/core/define-config",
|
||||||
|
imports: ["defineMcFlyConfig"],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,10 +1,9 @@
|
||||||
{
|
{
|
||||||
"name": "@mcflyjs/config",
|
"name": "@mcflyjs/config",
|
||||||
"version": "0.0.9",
|
"version": "0.0.10",
|
||||||
"description": "Nitro configuration for McFly apps",
|
"description": "Nitro configuration for McFly apps",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"main": "index.mjs",
|
"main": "index.mjs",
|
||||||
"devDependencies": {},
|
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"test": "echo \"Error: no test specified\" && exit 1"
|
"test": "echo \"Error: no test specified\" && exit 1"
|
||||||
},
|
},
|
||||||
|
@ -18,5 +17,8 @@
|
||||||
"bugs": {
|
"bugs": {
|
||||||
"url": "https://github.com/ayoayco/McFly/issues"
|
"url": "https://github.com/ayoayco/McFly/issues"
|
||||||
},
|
},
|
||||||
"homepage": "https://github.com/ayoayco/McFly#readme"
|
"homepage": "https://github.com/ayoayco/McFly#readme",
|
||||||
|
"dependencies": {
|
||||||
|
"web-component-base": "^1.9.5"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,6 +9,6 @@
|
||||||
* @param {McFlyConfig} config
|
* @param {McFlyConfig} config
|
||||||
* @returns {function(): McFlyConfig}
|
* @returns {function(): McFlyConfig}
|
||||||
*/
|
*/
|
||||||
export default function defineConfig(config) {
|
export function defineMcFlyConfig(config) {
|
||||||
return () => config;
|
return () => config;
|
||||||
}
|
}
|
|
@ -3,7 +3,7 @@ import { ELEMENT_NODE, parse, render, renderSync, walkSync } from "ultrahtml";
|
||||||
import { parseScript } from "esprima";
|
import { parseScript } from "esprima";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @typedef {import('./define-config.mjs').McFlyConfig} McFlyConfig
|
* @typedef {import('./define-config.js').McFlyConfig} Config
|
||||||
* @typedef {import('unstorage').Storage} Storage
|
* @typedef {import('unstorage').Storage} Storage
|
||||||
* @typedef {import('unstorage').StorageValue} StorageValue
|
* @typedef {import('unstorage').StorageValue} StorageValue
|
||||||
* @typedef {import('ultrahtml').Node} HtmlNode
|
* @typedef {import('ultrahtml').Node} HtmlNode
|
||||||
|
@ -14,7 +14,7 @@ import { parseScript } from "esprima";
|
||||||
/**
|
/**
|
||||||
* Intercepts all routes and assembles the correct HTML to return
|
* Intercepts all routes and assembles the correct HTML to return
|
||||||
* @param {{
|
* @param {{
|
||||||
* config: function(): McFlyConfig,
|
* config: function(): Config,
|
||||||
* storage: Storage
|
* storage: Storage
|
||||||
* }} param0
|
* }} param0
|
||||||
* @returns {EventHandler}
|
* @returns {EventHandler}
|
2
packages/core/index.js
Normal file
2
packages/core/index.js
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
export * from "./define-config.js";
|
||||||
|
export * from "./event-handler.js";
|
|
@ -1,8 +1,9 @@
|
||||||
{
|
{
|
||||||
"name": "@mcflyjs/core",
|
"name": "@mcflyjs/core",
|
||||||
"version": "0.2.10",
|
"version": "0.2.11",
|
||||||
"description": "McFly core package",
|
"description": "McFly core package",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
|
"main": "index.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"test": "echo \"Error: no test specified\" && exit 1"
|
"test": "echo \"Error: no test specified\" && exit 1"
|
||||||
},
|
},
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
import defineConfig from "@mcflyjs/core/define-config.mjs";
|
import { defineMcFlyConfig } from "#imports";
|
||||||
|
export default defineMcFlyConfig({
|
||||||
export default defineConfig({
|
|
||||||
components: "js",
|
components: "js",
|
||||||
});
|
});
|
||||||
|
|
|
@ -5,6 +5,5 @@
|
||||||
* ...reusable code are in ./src/components
|
* ...reusable code are in ./src/components
|
||||||
* @see https://ayco.io/gh/McFly#special-directories
|
* @see https://ayco.io/gh/McFly#special-directories
|
||||||
*/
|
*/
|
||||||
import { useMcFlyRoute } from "@mcflyjs/core/event-handler.mjs";
|
|
||||||
import config from "../mcfly.config.mjs";
|
import config from "../mcfly.config.mjs";
|
||||||
export default useMcFlyRoute({ config, storage: useStorage() });
|
export default useMcFlyRoute({ config, storage: useStorage() });
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
import defineConfig from "@mcflyjs/core/define-config.mjs";
|
import { defineMcFlyConfig } from "#imports";
|
||||||
|
export default defineMcFlyConfig({
|
||||||
export default defineConfig({
|
|
||||||
components: "js",
|
components: "js",
|
||||||
});
|
});
|
||||||
|
|
|
@ -5,6 +5,5 @@
|
||||||
* ...reusable code are in ./src/components
|
* ...reusable code are in ./src/components
|
||||||
* @see https://ayco.io/gh/McFly#special-directories
|
* @see https://ayco.io/gh/McFly#special-directories
|
||||||
*/
|
*/
|
||||||
import { useMcFlyRoute } from "@mcflyjs/core/event-handler.mjs";
|
|
||||||
import config from "../mcfly.config.mjs";
|
import config from "../mcfly.config.mjs";
|
||||||
export default useMcFlyRoute({ config, storage: useStorage() });
|
export default useMcFlyRoute({ config, storage: useStorage() });
|
||||||
|
|
Loading…
Reference in a new issue