|
"use strict"; |
|
Object.defineProperty(exports, "__esModule", { value: true }); |
|
exports.getFragmentFromRoot = getFragmentFromRoot; |
|
exports.getInstanceFromRoot = getInstanceFromRoot; |
|
exports.getModuleFromRoot = getModuleFromRoot; |
|
exports.getOptionsFromRoot = getOptionsFromRoot; |
|
exports.getChildren = getChildren; |
|
exports.trimChildren = trimChildren; |
|
exports.getFragment = getFragment; |
|
exports.getModifiers = getModifiers; |
|
exports.getTestFromIfBlock = getTestFromIfBlock; |
|
exports.getConsequentFromIfBlock = getConsequentFromIfBlock; |
|
exports.getAlternateFromIfBlock = getAlternateFromIfBlock; |
|
exports.getBodyFromEachBlock = getBodyFromEachBlock; |
|
exports.getFallbackFromEachBlock = getFallbackFromEachBlock; |
|
exports.getPendingFromAwaitBlock = getPendingFromAwaitBlock; |
|
exports.getThenFromAwaitBlock = getThenFromAwaitBlock; |
|
exports.getCatchFromAwaitBlock = getCatchFromAwaitBlock; |
|
exports.getDeclaratorFromConstTag = getDeclaratorFromConstTag; |
|
|
|
function getFragmentFromRoot(svelteAst) { |
|
var _a; |
|
return ((_a = svelteAst.fragment) !== null && _a !== void 0 ? _a : svelteAst.html); |
|
} |
|
function getInstanceFromRoot(svelteAst) { |
|
return svelteAst.instance; |
|
} |
|
function getModuleFromRoot(svelteAst) { |
|
return svelteAst.module; |
|
} |
|
function getOptionsFromRoot(svelteAst) { |
|
const root = svelteAst; |
|
if (root.options) { |
|
return { |
|
type: "SvelteOptions", |
|
name: "svelte:options", |
|
attributes: root.options.attributes, |
|
fragment: { |
|
type: "Fragment", |
|
nodes: [], |
|
transparent: true, |
|
}, |
|
start: root.options.start, |
|
end: root.options.end, |
|
parent: null, |
|
}; |
|
} |
|
return null; |
|
} |
|
function getChildren(fragment) { |
|
var _a; |
|
return ((_a = fragment.nodes) !== null && _a !== void 0 ? _a : fragment.children); |
|
} |
|
function trimChildren(children) { |
|
if (!startsWithWhitespace(children[0]) && |
|
!endsWithWhitespace(children[children.length - 1])) { |
|
return children; |
|
} |
|
const nodes = [...children]; |
|
while (isWhitespace(nodes[0])) { |
|
nodes.shift(); |
|
} |
|
const first = nodes[0]; |
|
if (startsWithWhitespace(first)) { |
|
nodes[0] = Object.assign(Object.assign({}, first), { data: first.data.trimStart() }); |
|
} |
|
while (isWhitespace(nodes[nodes.length - 1])) { |
|
nodes.pop(); |
|
} |
|
const last = nodes[nodes.length - 1]; |
|
if (endsWithWhitespace(last)) { |
|
nodes[nodes.length - 1] = Object.assign(Object.assign({}, last), { data: last.data.trimEnd() }); |
|
} |
|
return nodes; |
|
function startsWithWhitespace(child) { |
|
if (!child) { |
|
return false; |
|
} |
|
return child.type === "Text" && child.data.trimStart() !== child.data; |
|
} |
|
function endsWithWhitespace(child) { |
|
if (!child) { |
|
return false; |
|
} |
|
return child.type === "Text" && child.data.trimEnd() !== child.data; |
|
} |
|
function isWhitespace(child) { |
|
if (!child) { |
|
return false; |
|
} |
|
return child.type === "Text" && child.data.trim() === ""; |
|
} |
|
} |
|
function getFragment(element) { |
|
if (element.fragment) { |
|
return element.fragment; |
|
} |
|
return element; |
|
} |
|
function getModifiers(node) { |
|
var _a; |
|
return (_a = node.modifiers) !== null && _a !== void 0 ? _a : []; |
|
} |
|
|
|
function getTestFromIfBlock(block) { |
|
var _a; |
|
return ((_a = block.expression) !== null && _a !== void 0 ? _a : block.test); |
|
} |
|
function getConsequentFromIfBlock(block) { |
|
var _a; |
|
return (_a = block.consequent) !== null && _a !== void 0 ? _a : block; |
|
} |
|
function getAlternateFromIfBlock(block) { |
|
var _a; |
|
if (block.alternate) { |
|
return block.alternate; |
|
} |
|
return (_a = block.else) !== null && _a !== void 0 ? _a : null; |
|
} |
|
|
|
function getBodyFromEachBlock(block) { |
|
if (block.body) { |
|
return block.body; |
|
} |
|
return block; |
|
} |
|
function getFallbackFromEachBlock(block) { |
|
var _a; |
|
if (block.fallback) { |
|
return block.fallback; |
|
} |
|
return (_a = block.else) !== null && _a !== void 0 ? _a : null; |
|
} |
|
|
|
function getPendingFromAwaitBlock(block) { |
|
const pending = block.pending; |
|
if (!pending) { |
|
return null; |
|
} |
|
if (pending.type === "Fragment") { |
|
return pending; |
|
} |
|
return pending.skip ? null : pending; |
|
} |
|
function getThenFromAwaitBlock(block) { |
|
const then = block.then; |
|
if (!then) { |
|
return null; |
|
} |
|
if (then.type === "Fragment") { |
|
return then; |
|
} |
|
return then.skip ? null : then; |
|
} |
|
function getCatchFromAwaitBlock(block) { |
|
const catchFragment = block.catch; |
|
if (!catchFragment) { |
|
return null; |
|
} |
|
if (catchFragment.type === "Fragment") { |
|
return catchFragment; |
|
} |
|
return catchFragment.skip ? null : catchFragment; |
|
} |
|
|
|
function getDeclaratorFromConstTag(node) { |
|
var _a, _b, _c; |
|
return ((_c = (_b = (_a = node.declaration) === null || _a === void 0 ? void 0 : _a.declarations) === null || _b === void 0 ? void 0 : _b[0]) !== null && _c !== void 0 ? _c : node.expression); |
|
} |
|
|