UNPKG

svelte-draft

Version:
50 lines (49 loc) 2.09 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const typedraft_1 = require("typedraft"); const template_section_1 = require("./template-section"); function TranslateScript(body) { const translated = []; body.get("body").forEach(each => { if (each.isVariableDeclaration() && each.node.declarations.length === 1) { const [declarator] = each.get("declarations"); if (typedraft_1.ToString(declarator.node).startsWith("$")) { return; } const init = declarator.get("init"); if (init.isIdentifier() && init.node.name === "props") { const id = declarator.get("id"); if (id.isObjectPattern()) { const raw_props = id.get("properties"); const props_info = raw_props.map((each) => { const key = each.node.key.name; let value = null; const raw_value = each.get("value"); if (raw_value.isAssignmentPattern()) { value = typedraft_1.ToString(raw_value.node.right); } return { key, value }; }); const props_init = props_info.map(each => { const value = each.value === null ? "" : ` = ${each.value}`; return typedraft_1.ToAst(`export let ${each.key}${value};`); }); translated.push(...props_init); } } else { translated.push(each.node); } } else if (!template_section_1.IsTemplate(each)) { translated.push(each.node); } }); return translated.map(each => `${typedraft_1.ToString(each, { comments: false })}`).join("\n"); } exports.TranslateScript = TranslateScript;