fork-ts-checker-webpack-plugin
Version:
Runs typescript type checker and linter on separate process.
53 lines (52 loc) • 2.64 kB
JavaScript
;
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
result["default"] = mod;
return result;
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const semver = __importStar(require("semver"));
const fs_extra_1 = __importDefault(require("fs-extra"));
const os_1 = __importDefault(require("os"));
const TypeScriptVueExtensionSupport_1 = require("./extension/vue/TypeScriptVueExtensionSupport");
function assertTypeScriptSupport(configuration) {
let typescriptVersion;
try {
typescriptVersion = require(configuration.typescriptPath).version;
}
catch (error) { }
if (!typescriptVersion) {
throw new Error('When you use ForkTsCheckerWebpackPlugin with typescript reporter enabled, you must install `typescript` package.');
}
if (semver.lt(typescriptVersion, '2.7.0')) {
throw new Error([
`ForkTsCheckerWebpackPlugin cannot use the current typescript version of ${typescriptVersion}.`,
'The minimum required version is 2.7.0.',
].join(os_1.default.EOL));
}
if (configuration.build && semver.lt(typescriptVersion, '3.6.0')) {
throw new Error([
`ForkTsCheckerWebpackPlugin cannot use the current typescript version of ${typescriptVersion} because of the "build" option enabled.`,
'The minimum version that supports "build" option is 3.6.0.',
'Consider upgrading `typescript` or disabling "build" option.',
].join(os_1.default.EOL));
}
if (!fs_extra_1.default.existsSync(configuration.configFile)) {
throw new Error([
`Cannot find the "${configuration.configFile}" file.`,
`Please check webpack and ForkTsCheckerWebpackPlugin configuration.`,
`Possible errors:`,
' - wrong `context` directory in webpack configuration (if `configFile` is not set or is a relative path in the fork plugin configuration)',
' - wrong `typescript.configFile` path in the plugin configuration (should be a relative or absolute path)',
].join(os_1.default.EOL));
}
if (configuration.extensions.vue.enabled) {
TypeScriptVueExtensionSupport_1.assertTypeScriptVueExtensionSupport(configuration.extensions.vue);
}
}
exports.assertTypeScriptSupport = assertTypeScriptSupport;