46 lines
1.7 KiB
JavaScript
46 lines
1.7 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.convertAttributeValueTokenToLiteral = exports.convertTextToLiteral = exports.convertText = void 0;
|
|
/** Convert for Text */
|
|
function convertText(node, parent, ctx) {
|
|
const text = Object.assign({ type: "SvelteText", value: node.data, parent }, ctx.getConvertLocation(node));
|
|
extractTextTokens(node, ctx);
|
|
return text;
|
|
}
|
|
exports.convertText = convertText;
|
|
/** Convert for Text to Literal */
|
|
function convertTextToLiteral(node, parent, ctx) {
|
|
const text = Object.assign({ type: "SvelteLiteral", value: node.data, parent }, ctx.getConvertLocation(node));
|
|
extractTextTokens(node, ctx);
|
|
return text;
|
|
}
|
|
exports.convertTextToLiteral = convertTextToLiteral;
|
|
/** Convert for AttributeValueToken to Literal */
|
|
function convertAttributeValueTokenToLiteral(node, parent, ctx) {
|
|
const valueLoc = node.quote
|
|
? { start: node.start + 1, end: node.end - 1 }
|
|
: node;
|
|
const text = Object.assign({ type: "SvelteLiteral", value: node.value, parent }, ctx.getConvertLocation(valueLoc));
|
|
extractTextTokens(valueLoc, ctx);
|
|
return text;
|
|
}
|
|
exports.convertAttributeValueTokenToLiteral = convertAttributeValueTokenToLiteral;
|
|
/** 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 });
|
|
}
|
|
}
|