@stencil/core
Version:
A Compiler for Web Components and Progressive Web Apps
734 lines (592 loc) • 18.4 kB
JavaScript
(function(e, a) { for(var i in a) e[i] = a[i]; }(exports, /******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {};
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/
/******/ // Check if module is in cache
/******/ if(installedModules[moduleId]) {
/******/ return installedModules[moduleId].exports;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = {
/******/ i: moduleId,
/******/ l: false,
/******/ exports: {}
/******/ };
/******/
/******/ // Execute the module function
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ // Flag the module as loaded
/******/ module.l = true;
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/******/
/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules;
/******/
/******/ // expose the module cache
/******/ __webpack_require__.c = installedModules;
/******/
/******/ // define getter function for harmony exports
/******/ __webpack_require__.d = function(exports, name, getter) {
/******/ if(!__webpack_require__.o(exports, name)) {
/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
/******/ }
/******/ };
/******/
/******/ // define __esModule on exports
/******/ __webpack_require__.r = function(exports) {
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ }
/******/ Object.defineProperty(exports, '__esModule', { value: true });
/******/ };
/******/
/******/ // create a fake namespace object
/******/ // mode & 1: value is a module id, require it
/******/ // mode & 2: merge all properties of value into the ns
/******/ // mode & 4: return value when already ns object
/******/ // mode & 8|1: behave like require
/******/ __webpack_require__.t = function(value, mode) {
/******/ if(mode & 1) value = __webpack_require__(value);
/******/ if(mode & 8) return value;
/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
/******/ var ns = Object.create(null);
/******/ __webpack_require__.r(ns);
/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
/******/ return ns;
/******/ };
/******/
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = function(module) {
/******/ var getter = module && module.__esModule ?
/******/ function getDefault() { return module['default']; } :
/******/ function getModuleExports() { return module; };
/******/ __webpack_require__.d(getter, 'a', getter);
/******/ return getter;
/******/ };
/******/
/******/ // Object.prototype.hasOwnProperty.call
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ // __webpack_public_path__
/******/ __webpack_require__.p = "";
/******/
/******/
/******/ // Load entry module and return exports
/******/ return __webpack_require__(__webpack_require__.s = 9);
/******/ })
/************************************************************************/
/******/ ([
/* 0 */
/***/ (function(module, exports, __webpack_require__) {
var osHomeDir = __webpack_require__(11)();
var path = __webpack_require__(3);
module.exports = {
number: function(value, fallback) {
return isNaN(value) ? fallback : value;
},
quote: function(value, escapeQuotes) {
value = String(value)
.replace(/\\/g, '\\\\')
.replace(/"/g, '\"');
return escapeQuotes ?
'\\"' + value + '\\"' :
'"' + value + '"';
},
extractFilename: function(filename) {
var parts = filename.match(/^(.+?)((?::\d+){0,4})$/);
var segment = parts[2].split(':').slice(1);
return {
filename: parts[1],
line: parseInt(segment[0] || 0, 10),
column: parseInt(segment[1] || 0, 10)
};
},
fail: function(msg) {
console.error(String(msg).trimRight());
process.exit(2);
},
atHomeDir: function(filename) {
return path.join(osHomeDir, filename);
},
any: function(promises, err) {
return new Promise(function(resolve, reject) {
Promise.all(promises.map(function(item) {
if (item && typeof item.then == 'function') {
return item.then(
resolve, // any success resolves the main promise immediately
function() { /* ignore any reject */ }
);
}
return item;
})).then(function(results) {
reject(err);
}, reject);
});
},
append: function(str, appendix) {
return String(str).replace(/\s*$/, (str ? ' ' : '') + appendix);
},
assign: function(dest, src) {
for (var key in src) {
if (Object.prototype.hasOwnProperty.call(src, key)) {
dest[key] = src[key];
}
}
return dest;
}
};
/***/ }),
/* 1 */
/***/ (function(module, exports, __webpack_require__) {
var exec = __webpack_require__(6).exec;
var number = __webpack_require__(0).number;
var quote = __webpack_require__(0).quote;
var extractFilename = __webpack_require__(0).extractFilename;
var append = __webpack_require__(0).append;
function makeArguments(filename, settings) {
var info = extractFilename(filename);
var pattern = settings.pattern || '';
var values = {
projectPath: process.env.PROJECT_PATH || process.PWD || process.cwd(),
line: info.line + number(settings.line, 1),
column: info.column + number(settings.column, 1)
};
if (!/\{filename\}/.test(pattern)) {
pattern = append(pattern, '{filename}:{line}:{column}');
}
return pattern
.replace(
new RegExp('\\{(' + Object.keys(values).join('|') + ')\\}', 'g'),
function(m, name) {
return values[name];
}
)
// replace `{filename}` and adjoined right string for quoted filename,
// since filename can have spaces
//
// {filename} --line 1 --column 2
// => "filename" --line 1 --column 2
//
// {filename}:1:2
// => "filename:1:2"
//
.replace(/\{filename\}(\S*)/, function(m, rest) {
return quote(info.filename + rest, settings.escapeQuotes);
});
}
function open(cmd, filename, settings) {
return new Promise(function(resolve, reject) {
var args;
settings = settings || {};
args = makeArguments(filename, settings);
cmd = settings.patternOnly ? args : append(quote(cmd), args);
exec(cmd, function(err) {
if (err) {
reject(err);
} else {
resolve();
}
});
});
}
module.exports = open;
module.exports.factory = function(cmd, settings) {
return function openInEditor(filename) {
return open(cmd, filename, settings);
};
};
module.exports.detectAndOpenFactory = function(detect, settings) {
return function openInEditor(filename) {
return detect().then(function(cmd) {
open(cmd, filename, settings);
});
};
};
/***/ }),
/* 2 */
/***/ (function(module, exports, __webpack_require__) {
var check = __webpack_require__(14);
var any = __webpack_require__(0).any;
function detect(name, commands, args, locations) {
function run(task) {
return this(task, name, args);
}
locations = locations[process.platform] || [];
return any(
[].concat(
commands.map(run, check.command),
locations.map(run, check.path)
),
'Not detected'
);
}
module.exports = detect;
module.exports.lazy = function(name, commands, args, locations) {
var memo;
return function() {
if (!memo) {
memo = detect(name, commands, args, locations);
}
return memo;
};
};
module.exports.platformSupport = function(platforms, editor, resolveValue) {
return function() {
// we use only system parts so we haven't to check anything except os
if (platforms.indexOf(process.platform) !== -1) {
return Promise.resolve(resolveValue);
}
return Promise.reject('"Open in ' + editor + '" does not implemented for your platform (' + process.platform + ')');
};
};
/***/ }),
/* 3 */
/***/ (function(module, exports) {
module.exports = require("path");
/***/ }),
/* 4 */
/***/ (function(module, exports, __webpack_require__) {
var fs = __webpack_require__(7);
var path = __webpack_require__(3);
var lazyDetect = __webpack_require__(2).lazy;
var settings = {
pattern: '{projectPath} --line {line} {filename}'
};
var winDirs = (function() {
var jetbrainsFolder = 'c:/Program Files (x86)/JetBrains/';
if (!fs.existsSync(jetbrainsFolder)) {
return [];
}
return fs.readdirSync(jetbrainsFolder)
.map(function(name) {
return path.join(jetbrainsFolder, name);
})
.filter(function(path) {
return fs.statSync(path).isDirectory();
});
})();
module.exports = function(config) {
var detect = lazyDetect(config.name, [], '', {
darwin: [
'/Applications/' + config.appFolder + '.app/Contents/MacOS/' + config.executable
],
win32: winDirs.map(function(dir) {
return dir + '/bin/' + config.executable + '.exe';
})
});
var open = __webpack_require__(1).detectAndOpenFactory(detect, settings);
return {
settings: settings,
detect: detect,
open: open
};
};
/***/ }),
/* 5 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = {
atom: __webpack_require__(13),
code: __webpack_require__(15),
sublime: __webpack_require__(16),
webstorm: __webpack_require__(17),
phpstorm: __webpack_require__(18),
idea14ce: __webpack_require__(19),
vim: __webpack_require__(20),
visualstudio: __webpack_require__(21),
emacs: __webpack_require__(22)
};
/***/ }),
/* 6 */
/***/ (function(module, exports) {
module.exports = require("child_process");
/***/ }),
/* 7 */
/***/ (function(module, exports) {
module.exports = require("fs");
/***/ }),
/* 8 */
/***/ (function(module, exports) {
var osascript = function(script) {
return 'osascript -e \'' + script + '\'';
};
var terminal = function(cmd) {
return 'tell application "Terminal" to do script "' + cmd + '"';
};
var runInTerminal = function(cmd) {
return osascript(terminal('cd {projectPath}; ' + cmd));
};
module.exports = runInTerminal;
/***/ }),
/* 9 */
/***/ (function(module, exports, __webpack_require__) {
exports.openInEditor = __webpack_require__(10);
exports.editors = __webpack_require__(5);
/***/ }),
/* 10 */
/***/ (function(module, exports, __webpack_require__) {
var extractFilename = __webpack_require__(0).extractFilename;
var number = __webpack_require__(0).number;
var assign = __webpack_require__(0).assign;
var editors = __webpack_require__(5);
var openFactory = __webpack_require__(1).factory;
module.exports = {
configure: function(options, cb) {
options = options || {};
cb = cb || function() {};
var sourceLineOffset = number(options.line, 1);
var sourceColumnOffset = number(options.column, 1);
var editor = options.editor;
var cmd = options.cmd;
var open;
if (!cmd && !editor) {
if (editors.hasOwnProperty(process.env.OPEN_FILE)) {
editor = process.env.OPEN_FILE;
} else {
cmd = process.env.OPEN_FILE ||
process.env.VISUAL ||
process.env.EDITOR;
}
}
// if editor option is set then fail on wrong value
if (editor && !editors.hasOwnProperty(editor)) {
cb('Wrong value for `editor` option: ' + editor);
return;
}
if (cmd) {
var settings = {};
// use editor settings as base
if (editors.hasOwnProperty(editor)) {
assign(settings, editors[editor].settings);
}
open = openFactory(cmd, assign(settings, options));
} else {
if (!editor) {
cb('Editor is not specified');
return;
}
open = editors[editor].open;
}
return {
open: function(filename) {
if (!filename) {
return Promise.reject('File is not specified');
}
var info = extractFilename(filename);
return open([
info.filename,
Math.max(info.line - sourceLineOffset, 0),
Math.max(info.column - sourceColumnOffset, 0)
].join(':'));
}
};
}
};
/***/ }),
/* 11 */
/***/ (function(module, exports, __webpack_require__) {
;
var os = __webpack_require__(12);
function homedir() {
var env = process.env;
var home = env.HOME;
var user = env.LOGNAME || env.USER || env.LNAME || env.USERNAME;
if (process.platform === 'win32') {
return env.USERPROFILE || env.HOMEDRIVE + env.HOMEPATH || home || null;
}
if (process.platform === 'darwin') {
return home || (user ? '/Users/' + user : null);
}
if (process.platform === 'linux') {
return home || (process.getuid() === 0 ? '/root' : (user ? '/home/' + user : null));
}
return home || null;
}
module.exports = typeof os.homedir === 'function' ? os.homedir : homedir;
/***/ }),
/* 12 */
/***/ (function(module, exports) {
module.exports = require("os");
/***/ }),
/* 13 */
/***/ (function(module, exports, __webpack_require__) {
var atHomeDir = __webpack_require__(0).atHomeDir;
var settings = {
pattern: '{filename}:{line}:{column}'
};
var detect = __webpack_require__(2).lazy('Atom Editor', ['atom'], '-h', {
darwin: [
'/Applications/Atom.app/Contents/Resources/app/atom.sh'
],
win32: [
atHomeDir('AppData/Local/atom/bin/atom.cmd')
]
});
var open = __webpack_require__(1).detectAndOpenFactory(detect, settings);
module.exports = {
settings: settings,
detect: detect,
open: open
};
/***/ }),
/* 14 */
/***/ (function(module, exports, __webpack_require__) {
var exec = __webpack_require__(6).exec;
var fs = __webpack_require__(7);
var quote = __webpack_require__(0).quote;
function checkCommand(cmd, name, args) {
if (!args) {
return Promise.reject('No args to check command: ' + cmd);
}
return new Promise(function(resolve, reject) {
exec(cmd + ' ' + args, function(err, output) {
if (err || output.indexOf(name) !== 0) {
reject(err);
} else {
resolve(cmd);
}
});
});
}
function checkPath(path, name) {
if (!fs.existsSync(path)) {
return Promise.reject('Path does not exist: ' + path);
}
return Promise.resolve(path);
}
module.exports = {
command: checkCommand,
path: checkPath
};
/***/ }),
/* 15 */
/***/ (function(module, exports, __webpack_require__) {
var atHomeDir = __webpack_require__(0).atHomeDir;
var settings = {
pattern: '-r -g {filename}:{line}:{column}'
};
var detect = __webpack_require__(2).lazy('Visual Studio Code', ['code'], '-h', {
darwin: [
'/Applications/Visual Studio Code.app/Contents/MacOS/Electron'
],
win32: [
'C:/Program Files/Microsoft VS Code/bin/code.cmd',
'C:/Program Files (x86)/Microsoft VS Code/bin/code.cmd',
atHomeDir('AppData/Local/Code/bin/code.cmd')
]
});
var open = __webpack_require__(1).detectAndOpenFactory(detect, settings);
module.exports = {
settings: settings,
detect: detect,
open: open
};
/***/ }),
/* 16 */
/***/ (function(module, exports, __webpack_require__) {
var settings = {
pattern: '{filename}:{line}:{column}'
};
var detect = __webpack_require__(2).lazy('Sublime Text', ['subl'], '-h', {
darwin: [
'/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl'
],
win32: [
'C:/Program Files/Sublime Text/subl.exe',
'C:/Program Files/Sublime Text 2/subl.exe',
'C:/Program Files/Sublime Text 3/subl.exe',
'C:/Program Files (x86)/Sublime Text/subl.exe',
'C:/Program Files (x86)/Sublime Text 2/subl.exe',
'C:/Program Files (x86)/Sublime Text 3/subl.exe'
]
});
var open = __webpack_require__(1).detectAndOpenFactory(detect, settings);
module.exports = {
settings: settings,
detect: detect,
open: open
};
/***/ }),
/* 17 */
/***/ (function(module, exports, __webpack_require__) {
var jetbrainsEditor = __webpack_require__(4);
module.exports = jetbrainsEditor({
name: 'WebStorm IDE',
appFolder: 'WebStorm',
executable: 'webstorm'
});
/***/ }),
/* 18 */
/***/ (function(module, exports, __webpack_require__) {
var jetbrainsEditor = __webpack_require__(4);
module.exports = jetbrainsEditor({
name: 'PhpStorm IDE',
appFolder: 'PhpStorm',
executable: 'phpstorm'
});
/***/ }),
/* 19 */
/***/ (function(module, exports, __webpack_require__) {
var jetbrainsEditor = __webpack_require__(4);
module.exports = jetbrainsEditor({
name: 'IDEA 14 CE',
appFolder: 'IntelliJ IDEA 14 CE',
executable: 'idea'
});
/***/ }),
/* 20 */
/***/ (function(module, exports, __webpack_require__) {
var runInTerminal = __webpack_require__(8);
var settings = {
patternOnly: true,
escapeQuotes: true,
pattern: runInTerminal('vim {filename} \\"+call cursor({line}, {column})\\"')
};
var detect = __webpack_require__(2).platformSupport(['darwin'], 'vim');
var open = __webpack_require__(1).detectAndOpenFactory(detect, settings);
module.exports = {
settings: settings,
detect: detect,
open: open
};
/***/ }),
/* 21 */
/***/ (function(module, exports, __webpack_require__) {
var path = __webpack_require__(3);
var helperPath = path.resolve(__dirname, 'visualstudio.vbs');
var settings = {
pattern: '{filename} {line} {column}'
};
var detect = __webpack_require__(2).platformSupport(['win32'], 'Visual Studio', helperPath);
var open = __webpack_require__(1).detectAndOpenFactory(detect, settings);
module.exports = {
settings: settings,
detect: detect,
open: open
};
/***/ }),
/* 22 */
/***/ (function(module, exports, __webpack_require__) {
var runInTerminal = __webpack_require__(8);
var settings = {
patternOnly: true,
escapeQuotes: true,
pattern: runInTerminal('emacs --no-splash \\"+{line}:{column}\\" {filename}')
};
var detect = __webpack_require__(2).platformSupport(['darwin'], 'vim');
var open = __webpack_require__(1).detectAndOpenFactory(detect, settings);
module.exports = {
settings: settings,
detect: detect,
open: open
};
/***/ })
/******/ ])));