"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const lodash_1 = require("lodash"); const test_page_url_1 = require("../../api/test-page-url"); const type_assertions_1 = require("../../errors/runtime/type-assertions"); class TestFileCompilerBase { constructor({ baseUrl }) { const escapedExt = (0, lodash_1.flatten)([this.getSupportedExtension()]) .map(ext => (0, lodash_1.escapeRegExp)(ext)) .join('|'); this.supportedExtensionRe = new RegExp(`(${escapedExt})$`); this._ensureBaseUrl(baseUrl); } _ensureBaseUrl(url) { if (!url) return; this.baseUrl = url; (0, type_assertions_1.assertType)(type_assertions_1.is.string, '_ensureBaseUrl', 'The base URL', this.baseUrl); (0, test_page_url_1.assertBaseUrl)(this.baseUrl, '_ensureBaseUrl'); this.baseUrl = (0, test_page_url_1.getUrl)(this.baseUrl); } _hasTests( /* code */) { throw new Error('Not implemented'); } getSupportedExtension() { throw new Error('Not implemented'); } async precompile( /* testFilesInfo */) { throw new Error('Not implemented'); } async compile( /* code, filename */) { throw new Error('Not implemented'); } async execute( /* compiledCode, filename */) { throw new Error('Not implemented'); } canCompile(code, filename) { return this.supportedExtensionRe.test(filename); } get canCompileInEsm() { return false; } get canPrecompile() { return false; } cleanUp() { // NOTE: Optional. Do nothing by default. } } exports.default = TestFileCompilerBase; module.exports = exports.default; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21waWxlci90ZXN0LWZpbGUvYmFzZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLG1DQUEyRDtBQUMzRCwyREFBZ0U7QUFDaEUsMEVBQXNFO0FBRXRFLE1BQXFCLG9CQUFvQjtJQUNyQyxZQUFhLEVBQUUsT0FBTyxFQUFFO1FBQ3BCLE1BQU0sVUFBVSxHQUFHLElBQUEsZ0JBQU8sRUFBQyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLENBQUM7YUFDckQsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBQSxxQkFBUSxFQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ3pCLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVmLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLFVBQVUsSUFBSSxDQUFDLENBQUM7UUFFM0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsY0FBYyxDQUFFLEdBQUc7UUFDZixJQUFJLENBQUMsR0FBRztZQUNKLE9BQU87UUFFWCxJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztRQUVuQixJQUFBLDRCQUFVLEVBQUMsb0JBQUUsQ0FBQyxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsY0FBYyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN0RSxJQUFBLDZCQUFhLEVBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBRTlDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBQSxzQkFBTSxFQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsU0FBUyxFQUFFLFVBQVU7UUFDakIsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxxQkFBcUI7UUFDakIsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxLQUFLLENBQUMsVUFBVSxFQUFFLG1CQUFtQjtRQUNqQyxNQUFNLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELEtBQUssQ0FBQyxPQUFPLEVBQUUsb0JBQW9CO1FBQy9CLE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU8sRUFBRSw0QkFBNEI7UUFDdkMsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxVQUFVLENBQUUsSUFBSSxFQUFFLFFBQVE7UUFDdEIsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCxJQUFJLGVBQWU7UUFDZixPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2IsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUVELE9BQU87UUFDSCx5Q0FBeUM7SUFDN0MsQ0FBQztDQUNKO0FBMURELHVDQTBEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGVzY2FwZVJlZ0V4cCBhcyBlc2NhcGVSZSwgZmxhdHRlbiB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBhc3NlcnRCYXNlVXJsLCBnZXRVcmwgfSBmcm9tICcuLi8uLi9hcGkvdGVzdC1wYWdlLXVybCc7XG5pbXBvcnQgeyBhc3NlcnRUeXBlLCBpcyB9IGZyb20gJy4uLy4uL2Vycm9ycy9ydW50aW1lL3R5cGUtYXNzZXJ0aW9ucyc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFRlc3RGaWxlQ29tcGlsZXJCYXNlIHtcbiAgICBjb25zdHJ1Y3RvciAoeyBiYXNlVXJsIH0pIHtcbiAgICAgICAgY29uc3QgZXNjYXBlZEV4dCA9IGZsYXR0ZW4oW3RoaXMuZ2V0U3VwcG9ydGVkRXh0ZW5zaW9uKCldKVxuICAgICAgICAgICAgLm1hcChleHQgPT4gZXNjYXBlUmUoZXh0KSlcbiAgICAgICAgICAgIC5qb2luKCd8Jyk7XG5cbiAgICAgICAgdGhpcy5zdXBwb3J0ZWRFeHRlbnNpb25SZSA9IG5ldyBSZWdFeHAoYCgke2VzY2FwZWRFeHR9KSRgKTtcblxuICAgICAgICB0aGlzLl9lbnN1cmVCYXNlVXJsKGJhc2VVcmwpO1xuICAgIH1cblxuICAgIF9lbnN1cmVCYXNlVXJsICh1cmwpIHtcbiAgICAgICAgaWYgKCF1cmwpXG4gICAgICAgICAgICByZXR1cm47XG5cbiAgICAgICAgdGhpcy5iYXNlVXJsID0gdXJsO1xuXG4gICAgICAgIGFzc2VydFR5cGUoaXMuc3RyaW5nLCAnX2Vuc3VyZUJhc2VVcmwnLCAnVGhlIGJhc2UgVVJMJywgdGhpcy5iYXNlVXJsKTtcbiAgICAgICAgYXNzZXJ0QmFzZVVybCh0aGlzLmJhc2VVcmwsICdfZW5zdXJlQmFzZVVybCcpO1xuXG4gICAgICAgIHRoaXMuYmFzZVVybCA9IGdldFVybCh0aGlzLmJhc2VVcmwpO1xuICAgIH1cblxuICAgIF9oYXNUZXN0cyAoLyogY29kZSAqLykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCcpO1xuICAgIH1cblxuICAgIGdldFN1cHBvcnRlZEV4dGVuc2lvbiAoKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkJyk7XG4gICAgfVxuXG4gICAgYXN5bmMgcHJlY29tcGlsZSAoLyogdGVzdEZpbGVzSW5mbyAqLykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCcpO1xuICAgIH1cblxuICAgIGFzeW5jIGNvbXBpbGUgKC8qIGNvZGUsIGZpbGVuYW1lICovKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkJyk7XG4gICAgfVxuXG4gICAgYXN5bmMgZXhlY3V0ZSAoLyogY29tcGlsZWRDb2RlLCBmaWxlbmFtZSAqLykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCcpO1xuICAgIH1cblxuICAgIGNhbkNvbXBpbGUgKGNvZGUsIGZpbGVuYW1lKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnN1cHBvcnRlZEV4dGVuc2lvblJlLnRlc3QoZmlsZW5hbWUpO1xuICAgIH1cblxuICAgIGdldCBjYW5Db21waWxlSW5Fc20gKCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgZ2V0IGNhblByZWNvbXBpbGUgKCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY2xlYW5VcCAoKSB7XG4gICAgICAgIC8vIE5PVEU6IE9wdGlvbmFsLiBEbyBub3RoaW5nIGJ5IGRlZmF1bHQuXG4gICAgfVxufVxuIl19