diff options
| author | ruki <waruqi@gmail.com> | 2018-11-08 00:43:05 +0800 |
|---|---|---|
| committer | ruki <waruqi@gmail.com> | 2018-11-07 22:18:30 +0800 |
| commit | 89e95b3f143682ed9a006991bacf45c9dcba4818 (patch) | |
| tree | 4f44cf41b828577d583890bdd5a1c31e8491a6ba /node_modules/@babel/helper-plugin-utils/src | |
| parent | aa7f0199255277949790b41c56e8ec97dd4f0da4 (diff) | |
| download | xmake-docs-vuepress.tar.gz xmake-docs-vuepress.zip | |
remove node_modulesvuepress
Diffstat (limited to 'node_modules/@babel/helper-plugin-utils/src')
| -rw-r--r-- | node_modules/@babel/helper-plugin-utils/src/README.md | 41 | ||||
| -rw-r--r-- | node_modules/@babel/helper-plugin-utils/src/index.js | 95 |
2 files changed, 0 insertions, 136 deletions
diff --git a/node_modules/@babel/helper-plugin-utils/src/README.md b/node_modules/@babel/helper-plugin-utils/src/README.md deleted file mode 100644 index 4079c2d4..00000000 --- a/node_modules/@babel/helper-plugin-utils/src/README.md +++ /dev/null @@ -1,41 +0,0 @@ -# @babel/helper-plugin-utils - -The intention of this module is to provide a place for us to expose a -standardized API layer over top of what Babel's core API provides on its own. - -This is not aiming to implement APIs that are missing on a given Babel version, -but it is means to provide clear error messages if a plugin is run on a version -of Babel that doesn't have the APIs that the plugin is trying to use. - -Every one of Babel's core plugins and presets will use this module, and ideally -because of that its size should be kept to a miminum because this may or may -not be deduplicated when installed. - - -## Usage - -```js -import { declare } from "@babel/helper-plugin-utils"; - -export default declare((api, options, dirname) => { - return {}; -}); -``` - - -## What this does - -Currently, this plugin provides a few services to ensure that plugins function -well-enough to throw useful errors. - -### `options` is always passed - -Babel 6 does not pass a second parameter. This frequently means that plugins -written for Babel 7 that use `options` will attempt to destructure options -out of an `undefined` value. By supplying the default, we avoid that risk. - -### `api.assertVersion` always exists - -Babel 6 and early betas of Babel 7 do not have `assertVersion`, so this -wrapper ensures that it exists and throws a useful error message when not -supplied by Babel itself. diff --git a/node_modules/@babel/helper-plugin-utils/src/index.js b/node_modules/@babel/helper-plugin-utils/src/index.js deleted file mode 100644 index f0ecb83a..00000000 --- a/node_modules/@babel/helper-plugin-utils/src/index.js +++ /dev/null @@ -1,95 +0,0 @@ -export function declare(builder) { - return (api, options, dirname) => { - if (!api.assertVersion) { - // Inject a custom version of 'assertVersion' for Babel 6 and early - // versions of Babel 7's beta that didn't have it. - api = Object.assign(copyApiObject(api), { - assertVersion(range) { - throwVersionError(range, api.version); - }, - }); - } - - return builder(api, options || {}, dirname); - }; -} - -function copyApiObject(api) { - // Babel >= 7 <= beta.41 passed the API as a new object that had - // babel/core as the prototype. While slightly faster, it also - // means that the Object.assign copy below fails. Rather than - // keep complexity, the Babel 6 behavior has been reverted and this - // normalizes all that for Babel 7. - let proto = null; - if (typeof api.version === "string" && /^7\./.test(api.version)) { - proto = Object.getPrototypeOf(api); - if ( - proto && - (!has(proto, "version") || - !has(proto, "transform") || - !has(proto, "template") || - !has(proto, "types")) - ) { - proto = null; - } - } - - return { - ...proto, - ...api, - }; -} - -function has(obj, key) { - return Object.prototype.hasOwnProperty.call(obj, key); -} - -function throwVersionError(range, version) { - if (typeof range === "number") { - if (!Number.isInteger(range)) { - throw new Error("Expected string or integer value."); - } - range = `^${range}.0.0-0`; - } - if (typeof range !== "string") { - throw new Error("Expected string or integer value."); - } - - const limit = Error.stackTraceLimit; - - if (typeof limit === "number" && limit < 25) { - // Bump up the limit if needed so that users are more likely - // to be able to see what is calling Babel. - Error.stackTraceLimit = 25; - } - - let err; - if (version.slice(0, 2) === "7.") { - err = new Error( - `Requires Babel "^7.0.0-beta.41", but was loaded with "${version}". ` + - `You'll need to update your @babel/core version.`, - ); - } else { - err = new Error( - `Requires Babel "${range}", but was loaded with "${version}". ` + - `If you are sure you have a compatible version of @babel/core, ` + - `it is likely that something in your build process is loading the ` + - `wrong version. Inspect the stack trace of this error to look for ` + - `the first entry that doesn't mention "@babel/core" or "babel-core" ` + - `to see what is calling Babel.`, - ); - } - - if (typeof limit === "number") { - Error.stackTraceLimit = limit; - } - - throw Object.assign( - err, - ({ - code: "BABEL_VERSION_UNSUPPORTED", - version, - range, - }: any), - ); -} |
