@koishijs/client
Version:
Koishi Console Client
220 lines (218 loc) • 6.48 kB
JavaScript
var __create = Object.create;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getProtoOf = Object.getPrototypeOf;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
// If the importer is in node compatibility mode or this is not an ESM
// file that has been converted to a CommonJS file using a Babel-
// compatible transform (i.e. "__esModule" has not been set), then set
// "default" to the CommonJS "module.exports" for node compatibility.
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
mod
));
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
// src/index.ts
var src_exports = {};
__export(src_exports, {
apply: () => apply,
build: () => build2,
createServer: () => createServer2,
inject: () => inject
});
module.exports = __toCommonJS(src_exports);
var vite = __toESM(require("vite"));
var import_fs = require("fs");
var import_path = require("path");
var import_plugin_vue = __toESM(require("@vitejs/plugin-vue"));
var import_vite_plugin_yaml = __toESM(require("@maikolib/vite-plugin-yaml"));
async function build2(root, config = {}) {
if (!(0, import_fs.existsSync)(root + "/client")) return;
const outDir = root + "/dist";
if ((0, import_fs.existsSync)(outDir)) {
await import_fs.promises.rm(outDir, { recursive: true });
}
await import_fs.promises.mkdir(root + "/dist", { recursive: true });
const results = await vite.build(vite.mergeConfig({
root,
build: {
write: false,
outDir: "dist",
assetsDir: "",
minify: true,
emptyOutDir: true,
commonjsOptions: {
strictRequires: true
},
lib: {
entry: root + "/client/index.ts",
fileName: "index",
formats: ["es"]
},
rollupOptions: {
makeAbsoluteExternalsRelative: true,
external: [
"vue",
"vue-router",
"@vueuse/core",
"@koishijs/client"
],
output: {
format: "iife"
}
}
},
plugins: [
(0, import_plugin_vue.default)(),
(0, import_vite_plugin_yaml.default)(),
(await import("unocss/vite")).default({
presets: [
(await import("unocss/preset-mini")).default({
preflight: false
})
]
})
],
css: {
preprocessorOptions: {
scss: {
api: "modern-compiler"
}
}
},
resolve: {
alias: {
"vue-i18n": "@koishijs/client",
"@koishijs/components": "@koishijs/client"
}
},
define: {
"process.env.NODE_ENV": '"production"'
}
}, config));
for (const item of results[0].output) {
if (item.fileName === "index.mjs") item.fileName = "index.js";
const dest = root + "/dist/" + item.fileName;
if (item.type === "asset") {
await import_fs.promises.writeFile(dest, item.source);
} else {
const result = await vite.transformWithEsbuild(item.code, dest, {
minifyWhitespace: true,
charset: "utf8"
});
await import_fs.promises.writeFile(dest, result.code);
}
}
}
__name(build2, "build");
async function createServer2(baseDir, config) {
const root = (0, import_path.resolve)(__dirname, "../app");
return vite.createServer(vite.mergeConfig({
root,
base: "/vite/",
server: {
middlewareMode: true,
fs: {
allow: [
vite.searchForWorkspaceRoot(baseDir)
]
}
},
plugins: [
(0, import_plugin_vue.default)(),
(0, import_vite_plugin_yaml.default)(),
(await import("unocss/vite")).default({
presets: [
(await import("unocss/preset-mini")).default({
preflight: false
})
]
})
],
css: {
preprocessorOptions: {
scss: {
api: "modern-compiler"
}
}
},
resolve: {
dedupe: ["vue", "vue-demi", "vue-router", "element-plus", "@vueuse/core", "@popperjs/core", "marked", "xss"],
alias: {
// for backward compatibility
"../client.js": "@koishijs/client",
"../vue.js": "vue",
"../vue-router.js": "vue-router",
"../vueuse.js": "@vueuse/core"
}
},
optimizeDeps: {
include: [
"vue",
"vue-router",
"element-plus",
"@vueuse/core",
"@popperjs/core",
"marked",
"xss"
]
},
build: {
rollupOptions: {
input: root + "/index.html"
}
}
}, config));
}
__name(createServer2, "createServer");
var inject = ["yakumo"];
function apply(ctx) {
ctx.register("client", async () => {
const paths = ctx.yakumo.locate(ctx.yakumo.argv._);
for (const path of paths) {
const meta = ctx.yakumo.workspaces[path];
const deps = {
...meta.dependencies,
...meta.devDependencies,
...meta.peerDependencies,
...meta.optionalDependencies
};
let config = {};
if (meta.yakumo?.client) {
const filename = (0, import_path.resolve)(ctx.yakumo.cwd + path, meta.yakumo.client);
const exports2 = (await import(filename)).default;
if (typeof exports2 === "function") {
await exports2();
continue;
}
config = exports2;
} else if (!deps["@koishijs/client"]) {
continue;
}
await build2(ctx.yakumo.cwd + path, config);
}
});
}
__name(apply, "apply");
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
apply,
build,
createServer,
inject
});
//# sourceMappingURL=index.js.map