UNPKG

@amplitude/ampli

Version:

Amplitude CLI

39 lines (38 loc) 1.39 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.parseSvelte = void 0; const ScriptStartPrefix = '<script'; const ScriptEndSuffix = '</script>'; const LangRegex = /\blang\s*=\s*["']([^"']*)["']/; function parseSvelte(content) { const scripts = []; for (let currentPosition = 0;; currentPosition < content.length) { const startScriptIndex = content.indexOf(ScriptStartPrefix, currentPosition); if (startScriptIndex < 0) { break; } const startTagEndIndex = content.indexOf('>', startScriptIndex); if (startTagEndIndex < 0) { break; } const endTagStartIndex = content.indexOf(ScriptEndSuffix, startTagEndIndex); if (endTagStartIndex < 0) { break; } const startRow = (content.substring(0, startScriptIndex).match(/\n/g) || []).length + 1; let lang; const langMatch = LangRegex.exec(content.substring(startScriptIndex, startTagEndIndex)); if (langMatch) { [, lang] = langMatch; } const script = { lang, code: content.substring(startTagEndIndex + 1, endTagStartIndex), startRow, }; scripts.push(script); currentPosition = endTagStartIndex + ScriptEndSuffix.length; } return scripts; } exports.parseSvelte = parseSvelte;