6.24.1 • Published 7 years ago

babel-plugin-transform-es2015-computed-properties v6.24.1

Weekly downloads
2,095,872
License
MIT
Repository
github
Last release
7 years ago

babel-plugin-transform-es2015-computed-properties

Compile ES2015 computed properties to ES5

Example

In

var obj = {
  ["x" + foo]: "heh",
  ["y" + bar]: "noo",
  foo: "foo",
  bar: "bar"
};

Out

var _obj;

function _defineProperty(obj, key, value) {
  if (key in obj) {
    Object.defineProperty(obj, key, {
      value: value,
      enumerable: true,
      configurable: true,
      writable: true
    });
  } else {
    obj[key] = value;
  }

  return obj;
}

var obj = (
  _obj = {},
  _defineProperty(_obj, "x" + foo, "heh"),
  _defineProperty(_obj, "y" + bar, "noo"),
  _defineProperty(_obj, "foo", "foo"),
  _defineProperty(_obj, "bar", "bar"),
  _obj
);

Installation

npm install --save-dev babel-plugin-transform-es2015-computed-properties

Usage

Via .babelrc (Recommended)

.babelrc

Without options:

{
  "plugins": ["transform-es2015-computed-properties"]
}

With options:

{
  "plugins": [
    ["transform-es2015-computed-properties", {
      "loose": true
    }]
  ]
}

Via CLI

babel --plugins transform-es2015-computed-properties script.js

Via Node API

require("babel-core").transform("code", {
  plugins: ["transform-es2015-computed-properties"]
});

Options

loose

boolean, defaults to false

Just like method assignment in classes, in loose mode, computed property names use simple assignments instead of being defined. This is unlikely to be an issue in production code.

Example

In

var obj = {
  ["x" + foo]: "heh",
  ["y" + bar]: "noo",
  foo: "foo",
  bar: "bar"
};

Out

var _obj;

var obj = (
  _obj = {},
  _obj["x" + foo] = "heh",
  _obj["y" + bar] = "noo",
  _obj.foo = "foo",
  _obj.bar = "bar",
  _obj
);
babel-preset-env@arisageha/react-lazyload@arisageha/react-lazyload-fix@phil8795/pecuniarius-apicthpb-plugin-socialuinz-notification@mink-opn/build-tokens@everything-registry/sub-chunk-1204sam-carouselkafirchain-tetriscpm-8cr7-excourse-vue-tplcpm-12cpm-13cpm-14cpm-15cpm-16cpm-17cpm-18cpm-19cpm-20cpm-21cpm-5cpm-6cpm-7cpm-10cpm-11cpm-9cpm-defsencha-touch-babelsolregex2libra-tma-packstart-starwars-libstatwolf-babel-presetkylin-aaaaaasearch-input-reactsearch-list-reactmini-vue-validateeasy-babeleasyplayer-myvcloudcam-playkit-js-hlsnois-react-toasttim-react-nativetest-carosello-campustechfox-icontechfox-react-featherteadanteatextfield-sampleteste_cegidenb-babel-zen@zalastax/nolb-babel-plugin-t@yued/babel-preset-env@yocode/stacksa_react_reflux_demoakpackak-rn-packagerawesome-react-stars@afria/afria-libraries@artiso-solutions/vue-html-to-paper@arielapaula/components@arielapaula/testbetter-babel-cli@benzinga/babel-preset-benzinga-webpackbuddy-plugin-babelbuilder-react-comp@bitfirer/vue-qriously@bonsaiswap-lib/lib@bonsaiswapv3/core@bonsaiswapv3/deploy@borealisswap/borealis-swap-libbuilder-ts-librarybuilder-victory-componentcampus-carosellocampus1campus2campus3campus4async-computed-vue3aq-web-frontatelierbabel-preset-avalonbabel-preset-csharpbabel-preset-es2040babel-preset-es2015-commonjs-nostrictbabel-preset-es2015-loose-rollupbabel-preset-es2015-minbabel-preset-es2015-minus-generatorsbabel-preset-es2015-native-generatorsbabel-preset-es2015-sanebabel-preset-es2015-sans-regeneratorbabel-preset-es2015-scriptbabel-preset-es2015-subset-loosebabel-preset-es2015-tinybabel-preset-es2015-tree-shakingbabel-preset-es2015-webpack2babel-preset-es2015-without-function-namebabel-preset-es2015-without-regeneratorbabel-preset-es2015-without-strictbabel-preset-es2015-without-strict-and-regenerator
7.0.0-beta.3

7 years ago

7.0.0-beta.2

7 years ago

7.0.0-beta.1

7 years ago

7.0.0-beta.0

7 years ago

7.0.0-alpha.20

7 years ago

7.0.0-alpha.19

7 years ago

7.0.0-alpha.18

7 years ago

7.0.0-alpha.17

7 years ago

7.0.0-alpha.16

7 years ago

7.0.0-alpha.15

7 years ago

7.0.0-alpha.14

7 years ago

7.0.0-alpha.12

7 years ago

7.0.0-alpha.11

7 years ago

7.0.0-alpha.10

7 years ago

7.0.0-alpha.9

7 years ago

7.0.0-alpha.8

7 years ago

6.24.1

7 years ago

7.0.0-alpha.7

7 years ago

7.0.0-alpha.3

7 years ago

7.0.0-alpha.1

7 years ago

6.22.0

7 years ago

6.8.0

8 years ago

6.6.5

8 years ago

6.6.4

8 years ago

6.5.2

8 years ago

6.5.0-1

8 years ago

6.5.0

8 years ago

6.4.0

8 years ago

6.3.13

8 years ago

6.2.4

8 years ago

6.1.18

8 years ago

6.1.17

8 years ago

6.1.10

8 years ago

6.1.5

8 years ago

6.1.4

8 years ago

6.0.14

8 years ago

6.0.2

8 years ago