Move plugin processing to top of plugins (#6381)

* centralize plugin options

* Centralize plugins options

- move more options to the top
- move validations that depend on options to the top

* use isLoose option

* Move more validations to the top

* Move ref parameter for rewriteModuleStatementsAndPrepareHeader() to the top

* fix eslint errors

* remove unused parameter

* set default systemGlobal value

* Revert "Move ref parameter for rewriteModuleStatementsAndPrepareHeader() to the top"

This reverts commit b3855302d17fa19d8acb4c8accab3680c8d2710e.

* Revert "Move more validations to the top"

This reverts commit e5861d8a034ff8f553391f55654f753bcf428a5d.

* fix allowMutablePropsOnTags option usage

* improve naming

* change Contructor definition for sake of consistency

* move allowMutablePropsOnTags validation to the top

* add missing !
This commit is contained in:
Anton Rusinov
2017-10-10 07:51:34 +03:00
committed by Logan Smyth
parent d89063bb32
commit fcdfc61bdb
17 changed files with 135 additions and 130 deletions

View File

@@ -2,7 +2,9 @@ import nameFunction from "babel-helper-function-name";
import template from "babel-template";
import syntaxClassProperties from "babel-plugin-syntax-class-properties";
export default function({ types: t }) {
export default function({ types: t }, options) {
const { loose } = options;
const findBareSupers = {
Super(path) {
if (path.parentPath.isCallExpression({ callee: path.node })) {
@@ -48,14 +50,15 @@ export default function({ types: t }) {
),
);
const buildClassProperty = loose
? buildClassPropertyLoose
: buildClassPropertySpec;
return {
inherits: syntaxClassProperties,
visitor: {
Class(path, state) {
const buildClassProperty = state.opts.loose
? buildClassPropertyLoose
: buildClassPropertySpec;
Class(path) {
const isDerived = !!path.node.superClass;
let constructor;
const props = [];