@anolilab/babel-preset
Advanced tools
Comparing version 1.0.0 to 1.1.0
@@ -1,2 +0,2 @@ | ||
## @anolilab/babel-preset 1.0.0 (2021-02-15) | ||
## @anolilab/babel-preset [1.1.0](https://github.com/anolilab/javascript-style-guide/compare/@anolilab/babel-preset@1.0.0...@anolilab/babel-preset@1.1.0) (2021-02-17) | ||
@@ -6,6 +6,2 @@ | ||
* added prettier config ([ac29bbc](https://github.com/anolilab/javascript-style-guide/commit/ac29bbc730467a31f9d1d1f4a95b41735d7cbfb8)) | ||
* created babel-preset, browserslist, eslint-config ([f698761](https://github.com/anolilab/javascript-style-guide/commit/f698761c50b32e4de07fc6d3d81436f5167c2f00)) | ||
* release/1.0.0 ([d237cd2](https://github.com/anolilab/javascript-style-guide/commit/d237cd25e467863e4a5dc802f644e7c0800c924a)) | ||
* reworked the mono repository, with a simpler semantic-release ([e290a22](https://github.com/anolilab/javascript-style-guide/commit/e290a2244bd9bf7d255182c3722f180bc4bb8690)) | ||
* updated rules for stylelint ([fdd469c](https://github.com/anolilab/javascript-style-guide/commit/fdd469c4d2779fa4a3d4d6aecdf013678dcd26d1)) | ||
* added bette error handling on missing babel packages ([31e8ca8](https://github.com/anolilab/javascript-style-guide/commit/31e8ca820e12fcc8dc302cf1b57e89246efb1a7e)) |
131
index.js
@@ -1,6 +0,8 @@ | ||
const { declare } = require('@babel/helper-plugin-utils'); | ||
const { declare } = require("@babel/helper-plugin-utils"); | ||
const isModuleAvailable = require('./lib/is-module-available'); | ||
const missing = require('./lib/missing'); | ||
module.exports = declare((api, options) => { | ||
// see docs about api at https://babeljs.io/docs/en/config-files#apicache | ||
api.assertVersion('^7.0.0'); | ||
api.assertVersion("^7.0.0"); | ||
@@ -10,3 +12,3 @@ const { | ||
targets = null, | ||
removePropTypes, | ||
removePropTypes = false, | ||
looseClasses = false, | ||
@@ -23,3 +25,3 @@ looseComputedProperties = false, | ||
if (typeof modules !== 'undefined' && typeof modules !== 'boolean' && modules !== 'auto') { | ||
if (typeof modules !== "undefined" && typeof modules !== "boolean" && modules !== "auto") { | ||
throw new TypeError( | ||
@@ -30,7 +32,41 @@ '@anolilab/babel-preset only accepts `true`, `false`, or `"auto"` as the value of the "modules" option', | ||
const debug = typeof options.debug === 'boolean' ? options.debug : false; | ||
if (removePropTypes && !react) { | ||
throw new Error('"removePropTypes" can\'t be enabled if react is disabled.') | ||
} | ||
let install = [] | ||
if (typescript) { | ||
if (!isModuleAvailable('@babel/preset-typescript')) { | ||
install.push('@babel/preset-typescript') | ||
} | ||
if (!isModuleAvailable('@babel/plugin-transform-typescript')) { | ||
install.push('@babel/plugin-transform-typescript') | ||
} | ||
if (!isModuleAvailable('@babel/plugin-syntax-jsx')) { | ||
install.push('@babel/plugin-syntax-jsx') | ||
} | ||
} | ||
if (react) { | ||
if (!isModuleAvailable('@babel/preset-react')) { | ||
install.push('@babel/preset-react') | ||
} | ||
if (removePropTypes && !isModuleAvailable('babel-plugin-transform-react-remove-prop-types')) { | ||
install.push('babel-plugin-transform-react-remove-prop-types') | ||
} | ||
} | ||
if (install.length !== 0) { | ||
missing(install) | ||
} | ||
const debug = typeof options.debug === "boolean" ? options.debug : false; | ||
const development = | ||
typeof options.development === 'boolean' | ||
typeof options.development === "boolean" | ||
? options.development | ||
: api.cache.using(() => process.env.NODE_ENV === 'development'); | ||
: api.cache.using(() => process.env.NODE_ENV === "development"); | ||
@@ -40,7 +76,7 @@ return { | ||
[ | ||
require('@babel/preset-env'), | ||
require("@babel/preset-env"), | ||
{ | ||
debug, | ||
exclude: ['transform-async-to-generator', 'transform-regenerator'], | ||
modules: modules === false ? false : 'auto', | ||
exclude: ["transform-async-to-generator", "transform-regenerator"], | ||
modules: modules === false ? false : "auto", | ||
targets: targets, | ||
@@ -51,3 +87,3 @@ }, | ||
? [ | ||
require('@babel/preset-typescript'), | ||
require("@babel/preset-typescript"), | ||
{ | ||
@@ -59,3 +95,3 @@ allExtensions: true, | ||
: null, | ||
react ? [require('@babel/preset-react'), { development }] : null, | ||
react ? [require("@babel/preset-react"), { development }] : null, | ||
].filter(Boolean), | ||
@@ -67,3 +103,3 @@ plugins: [ | ||
[ | ||
require('@babel/plugin-proposal-class-properties'), | ||
require("@babel/plugin-proposal-class-properties"), | ||
{ | ||
@@ -75,3 +111,3 @@ loose: true, | ||
? [ | ||
require('@babel/plugin-transform-classes'), | ||
require("@babel/plugin-transform-classes"), | ||
{ | ||
@@ -83,3 +119,3 @@ loose: true, | ||
[ | ||
require('@babel/plugin-proposal-decorators'), | ||
require("@babel/plugin-proposal-decorators"), | ||
{ | ||
@@ -92,3 +128,3 @@ legacy: true, | ||
? [ | ||
require('@babel/plugin-transform-computed-properties'), | ||
require("@babel/plugin-transform-computed-properties"), | ||
{ | ||
@@ -102,3 +138,3 @@ loose: true, | ||
? [ | ||
require('@babel/plugin-transform-parameters'), | ||
require("@babel/plugin-transform-parameters"), | ||
{ | ||
@@ -112,3 +148,3 @@ loose: true, | ||
? [ | ||
require('@babel/plugin-transform-template-literals'), | ||
require("@babel/plugin-transform-template-literals"), | ||
{ | ||
@@ -121,7 +157,7 @@ loose: false, | ||
? [ | ||
require('babel-plugin-transform-react-remove-prop-types'), | ||
require("babel-plugin-transform-react-remove-prop-types"), | ||
Object.assign( | ||
{ | ||
mode: 'wrap', | ||
ignoreFilenames: ['node_modules'], | ||
mode: "wrap", | ||
ignoreFilenames: ["node_modules"], | ||
}, | ||
@@ -132,7 +168,7 @@ removePropTypes, | ||
: null, | ||
typescript ? require('@babel/plugin-transform-typescript') : null, | ||
require('@babel/plugin-proposal-export-namespace-from'), | ||
typescript ? require("@babel/plugin-transform-typescript") : null, | ||
// Transform dynamic import to require | ||
[ | ||
require('babel-plugin-dynamic-import-node'), | ||
require("babel-plugin-dynamic-import-node"), | ||
{ | ||
@@ -142,13 +178,15 @@ noInterop: true, | ||
], | ||
typescript ? require('@babel/plugin-syntax-jsx') : null, | ||
// Adds syntax support for import() | ||
require('@babel/plugin-syntax-dynamic-import'), | ||
require('@babel/plugin-transform-property-mutators'), | ||
require('@babel/plugin-transform-member-expression-literals'), | ||
require('@babel/plugin-transform-property-literals'), | ||
require('@babel/plugin-proposal-nullish-coalescing-operator'), | ||
require('@babel/plugin-proposal-numeric-separator'), | ||
require('@babel/plugin-proposal-optional-catch-binding'), | ||
require('@babel/plugin-proposal-optional-chaining'), | ||
require("@babel/plugin-syntax-dynamic-import"), | ||
require("@babel/plugin-transform-property-mutators"), | ||
require("@babel/plugin-transform-member-expression-literals"), | ||
require("@babel/plugin-transform-property-literals"), | ||
require("@babel/plugin-proposal-nullish-coalescing-operator"), | ||
require("@babel/plugin-proposal-numeric-separator"), | ||
require("@babel/plugin-syntax-bigin"), | ||
require("@babel/plugin-proposal-optional-catch-binding"), | ||
require("@babel/plugin-proposal-optional-chaining"), | ||
[ | ||
require('@babel/plugin-proposal-object-rest-spread'), | ||
require("@babel/plugin-proposal-object-rest-spread"), | ||
{ | ||
@@ -159,19 +197,24 @@ useBuiltIns: true, | ||
// https://babeljs.io/docs/en/babel-plugin-syntax-async-generators | ||
require('@babel/plugin-syntax-async-generators'), | ||
require("@babel/plugin-syntax-async-generators"), | ||
// fast-async is a Babel plugin that implements the ES7 keywords async and await | ||
// using syntax transformation at compile-time, rather than generators. | ||
require('fast-async'), | ||
require("fast-async"), | ||
// Experimental macros support. Will be documented after it's had some time | ||
// in the wild. | ||
require('babel-plugin-macros'), | ||
transformRuntime ? [require('@babel/plugin-transform-runtime'), { | ||
absoluteRuntime: false, | ||
corejs: false, | ||
helpers: true, | ||
regenerator: false, | ||
useESModules: runtimeHelpersUseESModules, | ||
version: runtimeVersion, | ||
}] : null, | ||
require("babel-plugin-macros"), | ||
transformRuntime | ||
? [ | ||
require("@babel/plugin-transform-runtime"), | ||
{ | ||
absoluteRuntime: false, | ||
corejs: false, | ||
helpers: true, | ||
regenerator: false, | ||
useESModules: runtimeHelpersUseESModules, | ||
version: runtimeVersion, | ||
}, | ||
] | ||
: null, | ||
].filter(Boolean), | ||
}; | ||
}); |
{ | ||
"name": "@anolilab/babel-preset", | ||
"version": "1.0.0", | ||
"version": "1.1.0", | ||
"description": "A babel preset for transforming your JavaScript for Anolilab.", | ||
@@ -35,2 +35,3 @@ "keywords": [ | ||
"@babel/plugin-proposal-decorators": "^7.12.12", | ||
"@babel/plugin-proposal-export-namespace-from": "^7.12.13", | ||
"@babel/plugin-proposal-nullish-coalescing-operator": "^7.8.3", | ||
@@ -42,2 +43,3 @@ "@babel/plugin-proposal-numeric-separator": "^7.8.3", | ||
"@babel/plugin-syntax-async-generators": "^7.8.4", | ||
"@babel/plugin-syntax-bigint": "^7.8.3", | ||
"@babel/plugin-syntax-dynamic-import": "^7.8.3", | ||
@@ -59,7 +61,9 @@ "@babel/plugin-transform-classes": "^7.12.1", | ||
"devDependencies": { | ||
"@babel/core": "^7.12.10", | ||
"@babel/plugin-transform-typescript": "^7.12.1", | ||
"@babel/preset-react": "^7.12.10", | ||
"@babel/preset-typescript": "^7.12.7", | ||
"babel-plugin-transform-react-remove-prop-types": "^0.4.24" | ||
"@babel/core": "7.12.16", | ||
"@babel/plugin-syntax-jsx": "^7.12.13", | ||
"@babel/plugin-transform-typescript": "7.12.16", | ||
"@babel/preset-react": "7.12.13", | ||
"@babel/preset-typescript": "7.12.16", | ||
"@babel/runtime": "^7.12.13", | ||
"babel-plugin-transform-react-remove-prop-types": "0.4.24" | ||
}, | ||
@@ -71,2 +75,3 @@ "peerDependencies": { | ||
"optionalDependencies": { | ||
"@babel/plugin-syntax-jsx": "^7.12.13", | ||
"@babel/plugin-transform-typescript": "^7.12.1", | ||
@@ -73,0 +78,0 @@ "@babel/preset-react": "^7.12.10", |
@@ -5,3 +5,3 @@ # Babel preset | ||
Currently contains transforms for all stage 4 (ES2018) and stage 3 syntax. | ||
Currently, contains transforms for all stage 4 (ES2018) and stage 3 syntax. | ||
Additionally, stage 4 syntax that is excluded is as follows: | ||
@@ -17,3 +17,3 @@ | ||
```sh | ||
$ npm install --save-dev @anolilab/babel-preset | ||
$ npm install --save-dev @babel/core @babel/runtime @anolilab/babel-preset | ||
``` | ||
@@ -111,2 +111,8 @@ | ||
To use this preset please install | ||
```sh | ||
$ npm install --save-dev @babel/preset-typescript @babel/plugin-syntax-jsx | ||
``` | ||
This preset can be configured to support `typescript`, using `"typescript": true` in our preset. | ||
@@ -129,2 +135,8 @@ | ||
To use this preset please install | ||
```sh | ||
$ npm install --save-dev @babel/preset-react | ||
``` | ||
This preset can be configured to support `react`, using `"react": true` in our preset. | ||
@@ -131,0 +143,0 @@ |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
22650
8
259
312
32
7
5
+ Added@babel/plugin-proposal-export-namespace-from@^7.12.13
+ Added@babel/plugin-proposal-export-namespace-from@7.18.9(transitive)
+ Added@babel/plugin-syntax-bigint@7.8.3(transitive)