EITS-web/node_modules/svelte-eslint-parser/lib/parser/converts/text.js
2025-12-06 09:54:52 -05:00

41 lines
1.0 KiB
JavaScript

/** Convert for Text */
export function convertText(node, parent, ctx) {
const text = {
type: "SvelteText",
value: node.data,
parent,
...ctx.getConvertLocation(node),
};
extractTextTokens(node, ctx);
return text;
}
/** Convert for Text to Literal */
export function convertTextToLiteral(node, parent, ctx) {
const text = {
type: "SvelteLiteral",
value: node.data,
parent,
...ctx.getConvertLocation(node),
};
extractTextTokens(node, ctx);
return text;
}
/** Extract tokens */
function extractTextTokens(node, ctx) {
const loc = node;
let start = loc.start;
let word = false;
for (let index = loc.start; index < loc.end; index++) {
if (word !== Boolean(ctx.code[index].trim())) {
if (start < index) {
ctx.addToken("HTMLText", { start, end: index });
}
word = !word;
start = index;
}
}
if (start < loc.end) {
ctx.addToken("HTMLText", { start, end: loc.end });
}
}