spinjs
Version:
<p align="center"><a href="#"><img width="150" src="https://rawgit.com/sysgears/spin.js/master/logo.svg"></a></p>
58 lines • 2.52 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var path = require("path");
var fs = require("fs");
var requireModule_1 = require("../requireModule");
var JSRuleFinder_1 = require("./shared/JSRuleFinder");
var TypeScriptPlugin = (function () {
function TypeScriptPlugin() {
}
TypeScriptPlugin.prototype.configure = function (builder, spin) {
var stack = builder.stack;
if (stack.hasAll(['ts', 'webpack'])) {
var jsRuleFinder_1 = new JSRuleFinder_1.default(builder);
var jsRule = jsRuleFinder_1.rule;
var CheckerPlugin = requireModule_1.default('awesome-typescript-loader').CheckerPlugin;
jsRule.test = /\.ts$/;
jsRule.use = [{
loader: requireModule_1.default.resolve('awesome-typescript-loader'),
}];
builder.config = spin.merge(builder.config, {
module: {
rules: [
{
test: /\.html$/,
loader: 'html-loader'
},
]
},
plugins: [
new CheckerPlugin()
]
});
builder.config.resolve.extensions =
['.']
.map(function (prefix) { return jsRuleFinder_1.extensions.map(function (ext) { return prefix + ext; }); })
.reduce(function (acc, val) { return acc.concat(val); });
if (!stack.hasAny('dll')) {
for (var key in builder.config.entry) {
var entry = builder.config.entry[key];
for (var idx = 0; idx < entry.length; idx++) {
var item = entry[idx];
if (item.startsWith('./')
&& ['.js', '.jsx', '.ts', '.tsx'].indexOf(path.extname(item)) >= 0
&& item.indexOf('node_modules') < 0) {
var tsItem = './' + path.join(path.dirname(item), path.basename(item, path.extname(item))) + '.ts';
if (!fs.existsSync(item) && fs.existsSync(tsItem)) {
entry[idx] = tsItem;
}
}
}
}
}
}
};
return TypeScriptPlugin;
}());
exports.default = TypeScriptPlugin;
//# sourceMappingURL=TypeScriptPlugin.js.map