Skip to content

Commit

Permalink
Inline ModuleAliasPlugin code so kwp doesn't have any npm dependencies
Browse files Browse the repository at this point in the history
  • Loading branch information
shafirov committed Aug 31, 2016
1 parent 36143f1 commit 3c199b2
Showing 1 changed file with 70 additions and 1 deletion.
71 changes: 70 additions & 1 deletion src/main/resources/kwp.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 3,76 @@ var fs = require('fs')
var execSync = require('child_process').execSync
var isWin = /^win/.test(process.platform);

var ModuleAliasPlugin = require("webpack/node_modules/enhanced-resolve/lib/ModuleAliasPlugin");

/* ##### MODULE ALIAS PLUGIN COPY-PASTED SO THIS DOESN"T HAVE ANY DEPENDENCIES
MIT License http://www.opensource.org/licenses/mit-license.php
Author Tobias Koppers @sokra
*/

function createInnerCallback(callback, options, message) {
var log = options.log;
if(!log) {
if(options.stack !== callback.stack) {
function callbackWrapper() {
return callback.apply(this, arguments);
}
callbackWrapper.stack = options.stack;
callbackWrapper.missing = options.missing;
}
return callback;
}
function loggingCallbackWrapper() {
log(message);
for(var i = 0; i < theLog.length; i )
log(" " theLog[i]);
return callback.apply(this, arguments);
}
var theLog = [];
loggingCallbackWrapper.log = function writeLog(msg) {
theLog.push(msg);
};
loggingCallbackWrapper.stack = options.stack;
loggingCallbackWrapper.missing = options.missing;
return loggingCallbackWrapper;
}

function ModuleAliasPlugin(aliasMap) {
this.aliasMap = aliasMap;
}
ModuleAliasPlugin.prototype.apply = function(resolver) {
var aliasMap = this.aliasMap;
resolver.plugin("module", function(request, callback) {
var fs = this.fileSystem;
var keys = Object.keys(aliasMap);
var i = 0;
(function next() {
for(;i < keys.length; i ) {
var aliasName = keys[i];
var onlyModule = /\$$/.test(aliasName);
if(onlyModule) aliasName = aliasName.substr(0, aliasName.length-1);
if((!onlyModule && request.request.indexOf(aliasName "/") === 0) || request.request === aliasName) {
var aliasValue = aliasMap[keys[i]];
if(request.request.indexOf(aliasValue "/") !== 0 && request.request != aliasValue) {
var newRequestStr = aliasValue request.request.substr(aliasName.length);
var newRequest = this.parse(newRequestStr);
var obj = {
path: request.path,
request: newRequest.path,
query: newRequest.query,
directory: newRequest.directory
};
var newCallback = createInnerCallback(callback, callback, "aliased with mapping " JSON.stringify(aliasName) ": " JSON.stringify(aliasValue) " to " newRequestStr);
if(newRequest.module) return this.doResolve("module", obj, newCallback);
if(newRequest.directory) return this.doResolve("directory", obj, newCallback);
return this.doResolve(["file", "directory"], obj, newCallback);
}
}
}
return callback();
}.call(this));
});
};

function KotlinWebpackPlugin(options) {
this.options = options
Expand Down

0 comments on commit 3c199b2

Please sign in to comment.