testcafe
Version:
Automated browser testing for the modern web development stack.
41 lines • 6.05 kB
JavaScript
;
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=