UNPKG

testcafe

Version:

Automated browser testing for the modern web development stack.

41 lines 6.05 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const configuration_base_1 = __importDefault(require("./configuration-base")); const option_source_1 = __importDefault(require("./option-source")); const default_values_1 = require("./default-values"); const lodash_1 = require("lodash"); const warning_message_1 = __importDefault(require("../notifications/warning-message")); const render_template_1 = __importDefault(require("../utils/render-template")); const DEFAULT_CONFIGURATION_FILENAME = 'tsconfig.json'; class TypescriptConfiguration extends configuration_base_1.default { constructor(tsConfigPath) { super(tsConfigPath || DEFAULT_CONFIGURATION_FILENAME); for (const option in default_values_1.DEFAULT_TYPESCRIPT_COMPILER_OPTIONS) this._ensureOptionWithValue(option, default_values_1.DEFAULT_TYPESCRIPT_COMPILER_OPTIONS[option], option_source_1.default.configuration); } async init() { const opts = await this._load(); if (opts && opts.compilerOptions) this.mergeOptions(opts.compilerOptions); this._notifyThatOptionsCannotBeOverriden(); } _notifyThatOptionsCannotBeOverriden() { const warnedOptions = lodash_1.intersection(this._overridenOptions, default_values_1.TYPESCRIPT_COMPILER_NON_OVERRIDABLE_OPTIONS); if (!warnedOptions.length) return; const warningMessage = warnedOptions .map(option => render_template_1.default(warning_message_1.default.cannotOverrideTypeScriptConfigOptions, option)) .join('\n'); configuration_base_1.default._showConsoleWarning(warningMessage); } _setOptionValue(option, value) { if (default_values_1.TYPESCRIPT_COMPILER_NON_OVERRIDABLE_OPTIONS.indexOf(option.name) === -1) super._setOptionValue(option, value); } } exports.default = TypescriptConfiguration; module.exports = exports.default; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXNjcmlwdC1jb25maWd1cmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbmZpZ3VyYXRpb24vdHlwZXNjcmlwdC1jb25maWd1cmF0aW9uLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsOEVBQWlEO0FBQ2pELG9FQUEyQztBQUMzQyxxREFBb0g7QUFDcEgsbUNBQXNDO0FBQ3RDLHVGQUFnRTtBQUNoRSwrRUFBc0Q7QUFFdEQsTUFBTSw4QkFBOEIsR0FBRyxlQUFlLENBQUM7QUFFdkQsTUFBcUIsdUJBQXdCLFNBQVEsNEJBQWE7SUFDOUQsWUFBYSxZQUFZO1FBQ3JCLEtBQUssQ0FBQyxZQUFZLElBQUksOEJBQThCLENBQUMsQ0FBQztRQUV0RCxLQUFLLE1BQU0sTUFBTSxJQUFJLG9EQUFtQztZQUNwRCxJQUFJLENBQUMsc0JBQXNCLENBQUMsTUFBTSxFQUFFLG9EQUFtQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLHVCQUFZLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDckgsQ0FBQztJQUVELEtBQUssQ0FBQyxJQUFJO1FBQ04sTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFFaEMsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLGVBQWU7WUFDNUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFNUMsSUFBSSxDQUFDLG1DQUFtQyxFQUFFLENBQUM7SUFDL0MsQ0FBQztJQUVELG1DQUFtQztRQUMvQixNQUFNLGFBQWEsR0FBRyxxQkFBWSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSw0REFBMkMsQ0FBQyxDQUFDO1FBRXhHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTTtZQUNyQixPQUFPO1FBRVgsTUFBTSxjQUFjLEdBQUcsYUFBYTthQUMvQixHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyx5QkFBYyxDQUFDLHlCQUFnQixDQUFDLHFDQUFxQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO2FBQzdGLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVoQiw0QkFBYSxDQUFDLG1CQUFtQixDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxlQUFlLENBQUUsTUFBTSxFQUFFLEtBQUs7UUFDMUIsSUFBSSw0REFBMkMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN2RSxLQUFLLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM3QyxDQUFDO0NBQ0o7QUFsQ0QsMENBa0NDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IENvbmZpZ3VyYXRpb24gZnJvbSAnLi9jb25maWd1cmF0aW9uLWJhc2UnO1xuaW1wb3J0IG9wdGlvblNvdXJjZSBmcm9tICcuL29wdGlvbi1zb3VyY2UnO1xuaW1wb3J0IHsgREVGQVVMVF9UWVBFU0NSSVBUX0NPTVBJTEVSX09QVElPTlMsIFRZUEVTQ1JJUFRfQ09NUElMRVJfTk9OX09WRVJSSURBQkxFX09QVElPTlMgfSBmcm9tICcuL2RlZmF1bHQtdmFsdWVzJztcbmltcG9ydCB7IGludGVyc2VjdGlvbiB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgV0FSTklOR19NRVNTQUdFUyBmcm9tICcuLi9ub3RpZmljYXRpb25zL3dhcm5pbmctbWVzc2FnZSc7XG5pbXBvcnQgcmVuZGVyVGVtcGxhdGUgZnJvbSAnLi4vdXRpbHMvcmVuZGVyLXRlbXBsYXRlJztcblxuY29uc3QgREVGQVVMVF9DT05GSUdVUkFUSU9OX0ZJTEVOQU1FID0gJ3RzY29uZmlnLmpzb24nO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBUeXBlc2NyaXB0Q29uZmlndXJhdGlvbiBleHRlbmRzIENvbmZpZ3VyYXRpb24ge1xuICAgIGNvbnN0cnVjdG9yICh0c0NvbmZpZ1BhdGgpIHtcbiAgICAgICAgc3VwZXIodHNDb25maWdQYXRoIHx8IERFRkFVTFRfQ09ORklHVVJBVElPTl9GSUxFTkFNRSk7XG5cbiAgICAgICAgZm9yIChjb25zdCBvcHRpb24gaW4gREVGQVVMVF9UWVBFU0NSSVBUX0NPTVBJTEVSX09QVElPTlMpXG4gICAgICAgICAgICB0aGlzLl9lbnN1cmVPcHRpb25XaXRoVmFsdWUob3B0aW9uLCBERUZBVUxUX1RZUEVTQ1JJUFRfQ09NUElMRVJfT1BUSU9OU1tvcHRpb25dLCBvcHRpb25Tb3VyY2UuY29uZmlndXJhdGlvbik7XG4gICAgfVxuXG4gICAgYXN5bmMgaW5pdCAoKSB7XG4gICAgICAgIGNvbnN0IG9wdHMgPSBhd2FpdCB0aGlzLl9sb2FkKCk7XG5cbiAgICAgICAgaWYgKG9wdHMgJiYgb3B0cy5jb21waWxlck9wdGlvbnMpXG4gICAgICAgICAgICB0aGlzLm1lcmdlT3B0aW9ucyhvcHRzLmNvbXBpbGVyT3B0aW9ucyk7XG5cbiAgICAgICAgdGhpcy5fbm90aWZ5VGhhdE9wdGlvbnNDYW5ub3RCZU92ZXJyaWRlbigpO1xuICAgIH1cblxuICAgIF9ub3RpZnlUaGF0T3B0aW9uc0Nhbm5vdEJlT3ZlcnJpZGVuICgpIHtcbiAgICAgICAgY29uc3Qgd2FybmVkT3B0aW9ucyA9IGludGVyc2VjdGlvbih0aGlzLl9vdmVycmlkZW5PcHRpb25zLCBUWVBFU0NSSVBUX0NPTVBJTEVSX05PTl9PVkVSUklEQUJMRV9PUFRJT05TKTtcblxuICAgICAgICBpZiAoIXdhcm5lZE9wdGlvbnMubGVuZ3RoKVxuICAgICAgICAgICAgcmV0dXJuO1xuXG4gICAgICAgIGNvbnN0IHdhcm5pbmdNZXNzYWdlID0gd2FybmVkT3B0aW9uc1xuICAgICAgICAgICAgLm1hcChvcHRpb24gPT4gcmVuZGVyVGVtcGxhdGUoV0FSTklOR19NRVNTQUdFUy5jYW5ub3RPdmVycmlkZVR5cGVTY3JpcHRDb25maWdPcHRpb25zLCBvcHRpb24pKVxuICAgICAgICAgICAgLmpvaW4oJ1xcbicpO1xuXG4gICAgICAgIENvbmZpZ3VyYXRpb24uX3Nob3dDb25zb2xlV2FybmluZyh3YXJuaW5nTWVzc2FnZSk7XG4gICAgfVxuXG4gICAgX3NldE9wdGlvblZhbHVlIChvcHRpb24sIHZhbHVlKSB7XG4gICAgICAgIGlmIChUWVBFU0NSSVBUX0NPTVBJTEVSX05PTl9PVkVSUklEQUJMRV9PUFRJT05TLmluZGV4T2Yob3B0aW9uLm5hbWUpID09PSAtMSlcbiAgICAgICAgICAgIHN1cGVyLl9zZXRPcHRpb25WYWx1ZShvcHRpb24sIHZhbHVlKTtcbiAgICB9XG59XG4iXX0=