diff options
Diffstat (limited to 'node_modules/babel-register')
-rw-r--r-- | node_modules/babel-register/.npmignore | 3 | ||||
-rw-r--r-- | node_modules/babel-register/README.md | 103 | ||||
-rw-r--r-- | node_modules/babel-register/lib/browser.js | 7 | ||||
-rw-r--r-- | node_modules/babel-register/lib/cache.js | 68 | ||||
-rw-r--r-- | node_modules/babel-register/lib/node.js | 179 | ||||
-rw-r--r-- | node_modules/babel-register/package-lock.json | 78 | ||||
-rw-r--r-- | node_modules/babel-register/package.json | 53 |
7 files changed, 491 insertions, 0 deletions
diff --git a/node_modules/babel-register/.npmignore b/node_modules/babel-register/.npmignore new file mode 100644 index 0000000..47cdd2c --- /dev/null +++ b/node_modules/babel-register/.npmignore @@ -0,0 +1,3 @@ +src +test +node_modules diff --git a/node_modules/babel-register/README.md b/node_modules/babel-register/README.md new file mode 100644 index 0000000..413e7a6 --- /dev/null +++ b/node_modules/babel-register/README.md @@ -0,0 +1,103 @@ +# babel-register + +> The require hook will bind itself to node's require and automatically compile files on the fly. + +One of the ways you can use Babel is through the require hook. The require hook +will bind itself to node's `require` and automatically compile files on the +fly. This is equivalent to CoffeeScript's +[coffee-script/register](http://coffeescript.org/v2/annotated-source/register.html). + +## Install + +```sh +npm install babel-register --save-dev +``` + +## Usage + +```js +require("babel-register"); +``` + +All subsequent files required by node with the extensions `.es6`, `.es`, `.jsx` +and `.js` will be transformed by Babel. + +<blockquote class="babel-callout babel-callout-info"> + <h4>Polyfill not included</h4> + <p> + You must include the <a href="https://babeljs.io/docs/usage/polyfill/">polyfill</a> separately + when using features that require it, like generators. + </p> +</blockquote> + +### Ignores `node_modules` by default + +**NOTE:** By default all requires to `node_modules` will be ignored. You can +override this by passing an ignore regex via: + +```js +require("babel-register")({ + // This will override `node_modules` ignoring - you can alternatively pass + // an array of strings to be explicitly matched or a regex / glob + ignore: false +}); +``` + +## Specifying options + +```javascript +require("babel-register")({ + // Optional ignore regex - if any filenames **do** match this regex then they + // aren't compiled. + ignore: /regex/, + + // Ignore can also be specified as a function. + ignore: function(filename) { + if (filename === "/path/to/es6-file.js") { + return false; + } else { + return true; + } + }, + + // Optional only regex - if any filenames **don't** match this regex then they + // aren't compiled + only: /my_es6_folder/, + + // Setting this will remove the currently hooked extensions of .es6, `.es`, `.jsx` + // and .js so you'll have to add them back if you want them to be used again. + extensions: [".es6", ".es", ".jsx", ".js"], + + // Setting this to false will disable the cache. + cache: true +}); +``` + +You can pass in all other [options](https://babeljs.io/docs/usage/api/#options) as well, +including `plugins` and `presets`. But note that the closest [`.babelrc`](https://babeljs.io/docs/usage/babelrc/) +to each file still applies, and takes precedence over any options you pass in here. + +## Environment variables + +By default `babel-node` and `babel-register` will save to a json cache in your +temporary directory. + +This will heavily improve with the startup and compilation of your files. There +are however scenarios where you want to change this behaviour and there are +environment variables exposed to allow you to do this. + +### BABEL_CACHE_PATH + +Specify a different cache location. + +```sh +BABEL_CACHE_PATH=/foo/my-cache.json babel-node script.js +``` + +### BABEL_DISABLE_CACHE + +Disable the cache. + +```sh +BABEL_DISABLE_CACHE=1 babel-node script.js +``` diff --git a/node_modules/babel-register/lib/browser.js b/node_modules/babel-register/lib/browser.js new file mode 100644 index 0000000..47e585e --- /dev/null +++ b/node_modules/babel-register/lib/browser.js @@ -0,0 +1,7 @@ +"use strict"; + +exports.__esModule = true; + +exports.default = function () {}; + +module.exports = exports["default"];
\ No newline at end of file diff --git a/node_modules/babel-register/lib/cache.js b/node_modules/babel-register/lib/cache.js new file mode 100644 index 0000000..4fbe0d5 --- /dev/null +++ b/node_modules/babel-register/lib/cache.js @@ -0,0 +1,68 @@ +"use strict"; + +exports.__esModule = true; + +var _stringify = require("babel-runtime/core-js/json/stringify"); + +var _stringify2 = _interopRequireDefault(_stringify); + +exports.save = save; +exports.load = load; +exports.get = get; + +var _path = require("path"); + +var _path2 = _interopRequireDefault(_path); + +var _fs = require("fs"); + +var _fs2 = _interopRequireDefault(_fs); + +var _mkdirp = require("mkdirp"); + +var _homeOrTmp = require("home-or-tmp"); + +var _homeOrTmp2 = _interopRequireDefault(_homeOrTmp); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var FILENAME = process.env.BABEL_CACHE_PATH || _path2.default.join(_homeOrTmp2.default, ".babel.json"); +var data = {}; + +function save() { + var serialised = "{}"; + + try { + serialised = (0, _stringify2.default)(data, null, " "); + } catch (err) { + + if (err.message === "Invalid string length") { + err.message = "Cache too large so it's been cleared."; + console.error(err.stack); + } else { + throw err; + } + } + + (0, _mkdirp.sync)(_path2.default.dirname(FILENAME)); + _fs2.default.writeFileSync(FILENAME, serialised); +} + +function load() { + if (process.env.BABEL_DISABLE_CACHE) return; + + process.on("exit", save); + process.nextTick(save); + + if (!_fs2.default.existsSync(FILENAME)) return; + + try { + data = JSON.parse(_fs2.default.readFileSync(FILENAME)); + } catch (err) { + return; + } +} + +function get() { + return data; +}
\ No newline at end of file diff --git a/node_modules/babel-register/lib/node.js b/node_modules/babel-register/lib/node.js new file mode 100644 index 0000000..41f0936 --- /dev/null +++ b/node_modules/babel-register/lib/node.js @@ -0,0 +1,179 @@ +"use strict"; + +exports.__esModule = true; + +var _keys = require("babel-runtime/core-js/object/keys"); + +var _keys2 = _interopRequireDefault(_keys); + +var _stringify = require("babel-runtime/core-js/json/stringify"); + +var _stringify2 = _interopRequireDefault(_stringify); + +exports.default = function () { + var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + + if (opts.only != null) only = _babelCore.util.arrayify(opts.only, _babelCore.util.regexify); + if (opts.ignore != null) ignore = _babelCore.util.arrayify(opts.ignore, _babelCore.util.regexify); + + if (opts.extensions) hookExtensions(_babelCore.util.arrayify(opts.extensions)); + + if (opts.cache === false) cache = null; + + delete opts.extensions; + delete opts.ignore; + delete opts.cache; + delete opts.only; + + (0, _extend2.default)(transformOpts, opts); +}; + +var _cloneDeep = require("lodash/cloneDeep"); + +var _cloneDeep2 = _interopRequireDefault(_cloneDeep); + +var _sourceMapSupport = require("source-map-support"); + +var _sourceMapSupport2 = _interopRequireDefault(_sourceMapSupport); + +var _cache = require("./cache"); + +var registerCache = _interopRequireWildcard(_cache); + +var _extend = require("lodash/extend"); + +var _extend2 = _interopRequireDefault(_extend); + +var _babelCore = require("babel-core"); + +var babel = _interopRequireWildcard(_babelCore); + +var _fs = require("fs"); + +var _fs2 = _interopRequireDefault(_fs); + +var _path = require("path"); + +var _path2 = _interopRequireDefault(_path); + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +_sourceMapSupport2.default.install({ + handleUncaughtExceptions: false, + environment: "node", + retrieveSourceMap: function retrieveSourceMap(source) { + var map = maps && maps[source]; + if (map) { + return { + url: null, + map: map + }; + } else { + return null; + } + } +}); + +registerCache.load(); +var cache = registerCache.get(); + +var transformOpts = {}; + +var ignore = void 0; +var only = void 0; + +var oldHandlers = {}; +var maps = {}; + +var cwd = process.cwd(); + +function getRelativePath(filename) { + return _path2.default.relative(cwd, filename); +} + +function mtime(filename) { + return +_fs2.default.statSync(filename).mtime; +} + +function compile(filename) { + var result = void 0; + + var opts = new _babelCore.OptionManager().init((0, _extend2.default)({ sourceRoot: _path2.default.dirname(filename) }, (0, _cloneDeep2.default)(transformOpts), { filename: filename })); + + var cacheKey = (0, _stringify2.default)(opts) + ":" + babel.version; + + var env = process.env.BABEL_ENV || process.env.NODE_ENV; + if (env) cacheKey += ":" + env; + + if (cache) { + var cached = cache[cacheKey]; + if (cached && cached.mtime === mtime(filename)) { + result = cached; + } + } + + if (!result) { + result = babel.transformFileSync(filename, (0, _extend2.default)(opts, { + babelrc: false, + sourceMaps: "both", + ast: false + })); + } + + if (cache) { + cache[cacheKey] = result; + result.mtime = mtime(filename); + } + + maps[filename] = result.map; + + return result.code; +} + +function shouldIgnore(filename) { + if (!ignore && !only) { + return getRelativePath(filename).split(_path2.default.sep).indexOf("node_modules") >= 0; + } else { + return _babelCore.util.shouldIgnore(filename, ignore || [], only); + } +} + +function loader(m, filename) { + m._compile(compile(filename), filename); +} + +function registerExtension(ext) { + var old = oldHandlers[ext] || oldHandlers[".js"] || require.extensions[".js"]; + + require.extensions[ext] = function (m, filename) { + if (shouldIgnore(filename)) { + old(m, filename); + } else { + loader(m, filename, old); + } + }; +} + +function hookExtensions(_exts) { + (0, _keys2.default)(oldHandlers).forEach(function (ext) { + var old = oldHandlers[ext]; + if (old === undefined) { + delete require.extensions[ext]; + } else { + require.extensions[ext] = old; + } + }); + + oldHandlers = {}; + + _exts.forEach(function (ext) { + oldHandlers[ext] = require.extensions[ext]; + registerExtension(ext); + }); +} + +hookExtensions(_babelCore.util.canCompile.EXTENSIONS); + +module.exports = exports["default"];
\ No newline at end of file diff --git a/node_modules/babel-register/package-lock.json b/node_modules/babel-register/package-lock.json new file mode 100644 index 0000000..91df8f0 --- /dev/null +++ b/node_modules/babel-register/package-lock.json @@ -0,0 +1,78 @@ +{ + "name": "babel-register", + "version": "6.24.1", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "callsite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", + "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=", + "dev": true + }, + "core-js": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.0.tgz", + "integrity": "sha1-VpwFCRi+ZIazg3VSAorgRmtxcIY=" + }, + "decache": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/decache/-/decache-4.1.0.tgz", + "integrity": "sha1-IDfV7fdW3aIwyFAjZZ58PR1uAQU=", + "dev": true, + "requires": { + "callsite": "1.0.0" + } + }, + "home-or-tmp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", + "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", + "requires": { + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" + } + }, + "lodash": { + "version": "4.17.4", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" + }, + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "requires": { + "minimist": "0.0.8" + } + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" + }, + "source-map": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", + "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=" + }, + "source-map-support": { + "version": "0.4.15", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.15.tgz", + "integrity": "sha1-AyAt9lwG0r2MfsI2KhkwVv7407E=", + "requires": { + "source-map": "0.5.6" + } + } + } +} diff --git a/node_modules/babel-register/package.json b/node_modules/babel-register/package.json new file mode 100644 index 0000000..9e4d842 --- /dev/null +++ b/node_modules/babel-register/package.json @@ -0,0 +1,53 @@ +{ + "_from": "babel-register@^6.26.0", + "_id": "babel-register@6.26.0", + "_inBundle": false, + "_integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", + "_location": "/babel-register", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "babel-register@^6.26.0", + "name": "babel-register", + "escapedName": "babel-register", + "rawSpec": "^6.26.0", + "saveSpec": null, + "fetchSpec": "^6.26.0" + }, + "_requiredBy": [ + "/babel-core" + ], + "_resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", + "_shasum": "6ed021173e2fcb486d7acb45c6009a856f647071", + "_spec": "babel-register@^6.26.0", + "_where": "/home/pruss/Dev/3-minute-website/node_modules/babel-core", + "author": { + "name": "Sebastian McKenzie", + "email": "sebmck@gmail.com" + }, + "browser": "lib/browser.js", + "bundleDependencies": false, + "dependencies": { + "babel-core": "^6.26.0", + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "home-or-tmp": "^2.0.0", + "lodash": "^4.17.4", + "mkdirp": "^0.5.1", + "source-map-support": "^0.4.15" + }, + "deprecated": false, + "description": "babel require hook", + "devDependencies": { + "decache": "^4.1.0" + }, + "license": "MIT", + "main": "lib/node.js", + "name": "babel-register", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-register" + }, + "version": "6.26.0" +} |