2025-09-05 14:59:21 +08:00

48 lines
1.6 KiB
JavaScript

const require_chunk = require('./chunk-CUT6urMc.cjs');
const __vue_language_core = require_chunk.__toESM(require("@vue/language-core"));
const muggle_string = require_chunk.__toESM(require("muggle-string"));
//#region src/volar/entries/sfc-route-blocks.ts
const plugin = () => {
const routeBlockIdPrefix = "route_";
const routeBlockIdRe = new RegExp(`^${routeBlockIdPrefix}(\\d+)$`);
return {
version: 2.1,
getEmbeddedCodes(_fileName, sfc) {
const embeddedCodes = [];
for (let i = 0; i < sfc.customBlocks.length; i++) {
const block = sfc.customBlocks[i];
if (block.type === "route") {
const lang = block.lang === "txt" ? "json" : block.lang;
embeddedCodes.push({
id: `${routeBlockIdPrefix}${i}`,
lang
});
}
}
return embeddedCodes;
},
resolveEmbeddedCode(_fileName, sfc, embeddedCode) {
const match = embeddedCode.id.match(routeBlockIdRe);
if (match) {
const i = parseInt(match[1]);
const block = sfc.customBlocks[i];
if (!block) return;
embeddedCode.content.push([
block.content,
block.name,
0,
__vue_language_core.allCodeFeatures
]);
if (embeddedCode.lang === "json") {
const contentStr = (0, muggle_string.toString)(embeddedCode.content);
if (contentStr.trim().startsWith("{") && !contentStr.includes("$schema")) (0, muggle_string.replace)(embeddedCode.content, "{", "{\n \"$schema\": \"https://raw.githubusercontent.com/posva/unplugin-vue-router/main/route.schema.json\",");
}
}
}
};
};
var sfc_route_blocks_default = plugin;
//#endregion
module.exports = sfc_route_blocks_default;