From ad4c05d601337654caaa65efe0a1ba6961756ece Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=B2=20Ribaudo?= Date: Mon, 11 Jun 2018 00:09:50 +0200 Subject: [PATCH] Static "inherits" --- .../src/index.js | 20 +++++++++++-------- .../src/index.js | 2 ++ 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/packages/babel-plugin-proposal-class-properties/src/index.js b/packages/babel-plugin-proposal-class-properties/src/index.js index 29ef4348b336..a8496532a6d1 100644 --- a/packages/babel-plugin-proposal-class-properties/src/index.js +++ b/packages/babel-plugin-proposal-class-properties/src/index.js @@ -1,5 +1,9 @@ import { declare } from "@babel/helper-plugin-utils"; -import proposalEnhancedClasses from "@babel/plugin-proposal-enhanced-classes"; +import proposalEnhancedClasses, { + enableFeature, + FEATURES, + setLoose, +} from "@babel/plugin-proposal-enhanced-classes"; export default declare((api, options) => { api.assertVersion(7); @@ -7,16 +11,16 @@ export default declare((api, options) => { const { loose } = options; return { - inherits(babel) { - return proposalEnhancedClasses(babel, { - loose, - instanceFields: true, - staticFields: true, - }); - }, + inherits: proposalEnhancedClasses, manipulateOptions(opts, parserOpts) { parserOpts.plugins.push("classProperties", "classPrivateProperties"); }, + + pre() { + setLoose(this.file, loose); + enableFeature(this.file, FEATURES.instanceFields); + enableFeature(this.file, FEATURES.staticFields); + }, }; }); diff --git a/packages/babel-plugin-proposal-enhanced-classes/src/index.js b/packages/babel-plugin-proposal-enhanced-classes/src/index.js index 245024601397..c62039191f5c 100644 --- a/packages/babel-plugin-proposal-enhanced-classes/src/index.js +++ b/packages/babel-plugin-proposal-enhanced-classes/src/index.js @@ -16,6 +16,8 @@ import { isLoose, } from "./features"; +export { enableFeature, FEATURES, setLoose }; + export default declare((api, options) => { api.assertVersion(7);