UNPKG

@amplitude/ampli

Version:

Amplitude CLI

40 lines (39 loc) 1.98 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const base_1 = require("../base"); const JavaScriptVerifier_1 = require("../javascript/JavaScriptVerifier"); const TypeScriptVerifier_1 = require("../typescript/TypeScriptVerifier"); const SvelteParser_1 = require("./SvelteParser"); class SvelteVerifier extends base_1.Verifier { constructor(ampliInstanceNames = ['itly']) { super('svelte', ampliInstanceNames.map(name => `${name}.`), null, ['node_modules']); this.ampliInstanceNames = ampliInstanceNames; } async doVerify(eventNames, workingDirs) { const { jsVerifier, tsVerifier } = this.createInnerVerifiers(); return this.verifyEach((filePath, fileContents, addReference) => { const scripts = SvelteParser_1.parseSvelte(fileContents); const addScriptReference = (script, rowDelta) => (ref) => addReference(Object.assign(Object.assign({}, ref), { row: ref.row + script.startRow + rowDelta - 1 })); scripts.filter(script => script.code).forEach(script => { const scriptCode = script.code; let rowDelta = 0; if (script.lang === 'js' || script.lang === undefined) { jsVerifier.verifyFile(filePath, scriptCode, addScriptReference(script, rowDelta)); } else if (script.lang === 'ts') { if (scriptCode.substr(0, 2) === '\r\n' || scriptCode.substr(0, 1) === '\n') { rowDelta = 1; } tsVerifier.verifyFile(filePath, scriptCode, addScriptReference(script, rowDelta)); } }); }, workingDirs); } createInnerVerifiers() { return { jsVerifier: new JavaScriptVerifier_1.default(this.ampliInstanceNames), tsVerifier: new TypeScriptVerifier_1.default(this.ampliInstanceNames), }; } } exports.default = SvelteVerifier;