48 lines
1.6 KiB
JavaScript
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; |