Skip to content

Commit

Permalink
feat: Support class static initialization blocks (#47)
Browse files Browse the repository at this point in the history
  • Loading branch information
ntucker committed Oct 15, 2020
1 parent b4154f8 commit 8625b5b
Show file tree
Hide file tree
Showing 6 changed files with 27 additions and 176 deletions.
1 change: 1 addition & 0 deletions packages/babel-preset-anansi/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -177,6 +177,7 @@ are included:

- [`export v from 'mod';`](http://babeljs.io/docs/en/next/babel-plugin-proposal-export-default-from) (Disabled when using TypeScript)
- [`Decimal` parsing](https://github.com/tc39/proposal-decimal)
- [Class static initialization blocks](https://github.com/tc39/proposal-class-static-block/blob/master/README.md)

### Other

Expand Down
2 changes: 2 additions & 0 deletions packages/babel-preset-anansi/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -185,6 +185,8 @@ function buildPreset(api, options = {}) {
}
const classPropertiesOptions = { loose: options.loose };
const classPlugins = [
// must come before all other class plugins
require('@babel/plugin-proposal-class-static-block').default,
// stage 3, but must come before class-properties
[require('@babel/plugin-proposal-decorators').default, decoratorsOptions],
// stage 3 but must come before flow
Expand Down
1 change: 1 addition & 0 deletions packages/babel-preset-anansi/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
},
"dependencies": {
"@babel/plugin-proposal-class-properties": "^7.10.4",
"@babel/plugin-proposal-class-static-block": "^7.12.0",
"@babel/plugin-proposal-decorators": "^7.10.5",
"@babel/plugin-proposal-export-default-from": "^7.10.4",
"@babel/plugin-proposal-export-namespace-from": "^7.12.0",
Expand Down
2 changes: 1 addition & 1 deletion packages/generator-js/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@
"dependencies": {
"@anansi/eslint-plugin": "^0.9.14",
"@anansi/webpack-config": "^4.2.5",
"@babel/core": "^7.11.0",
"@babel/core": "^7.12.0",
"@types/mem-fs-editor": "^5.1.1",
"chalk": "^3.0.0",
"ejs": "^3.1.3",
Expand Down
2 changes: 1 addition & 1 deletion packages/webpack-config-anansi/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@
"devDependencies": {
"@anansi/babel-preset": "^1.2.9",
"@babel/cli": "^7.10.5",
"@babel/core": "^7.11.0",
"@babel/core": "^7.12.0",
"debug": "^4.1.1",
"prettier-eslint-cli": "^5.0.0",
"rimraf": "^2.6.3"
Expand Down
195 changes: 21 additions & 174 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -156,7 +156,7 @@
semver "^5.4.1"
source-map "^0.5.0"

"@babel/core@7.12.0", "@babel/core@^7.12.0":
"@babel/core@7.12.0", "@babel/core@^7.1.0", "@babel/core@^7.12.0", "@babel/core@^7.7.5", "@babel/core@^7.8.7", "@babel/core@^7.9.0":
version "7.12.0"
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.0.tgz#e42e07a086e978cdd4c61f4078d8230fb817cc86"
integrity sha512-iV7Gwg0DePKvdDZZWRTkj4MW+6/AbVWd4ZCg+zk8H1RVt5xBpUZS6vLQWwb3pyLg4BFTaGiQCPoJ4Ibmbne4fA==
Expand All @@ -178,121 +178,7 @@
semver "^5.4.1"
source-map "^0.5.0"

"@babel/core@^7.1.0", "@babel/core@^7.7.5", "@babel/core@^7.8.7":
version "7.9.0"
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.9.0.tgz#ac977b538b77e132ff706f3b8a4dbad09c03c56e"
integrity sha512-kWc7L0fw1xwvI0zi8OKVBuxRVefwGOrKSQMvrQ3dW+bIIavBY3/NpXmpjMy7bQnLgwgzWQZ8TlM57YHpHNHz4w==
dependencies:
"@babel/code-frame" "^7.8.3"
"@babel/generator" "^7.9.0"
"@babel/helper-module-transforms" "^7.9.0"
"@babel/helpers" "^7.9.0"
"@babel/parser" "^7.9.0"
"@babel/template" "^7.8.6"
"@babel/traverse" "^7.9.0"
"@babel/types" "^7.9.0"
convert-source-map "^1.7.0"
debug "^4.1.0"
gensync "^1.0.0-beta.1"
json5 "^2.1.2"
lodash "^4.17.13"
resolve "^1.3.2"
semver "^5.4.1"
source-map "^0.5.0"

"@babel/core@^7.11.0":
version "7.11.0"
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.11.0.tgz#73b9c33f1658506887f767c26dae07798b30df76"
integrity sha512-mkLq8nwaXmDtFmRkQ8ED/eA2CnVw4zr7dCztKalZXBvdK5EeNUAesrrwUqjQEzFgomJssayzB0aqlOsP1vGLqg==
dependencies:
"@babel/code-frame" "^7.10.4"
"@babel/generator" "^7.11.0"
"@babel/helper-module-transforms" "^7.11.0"
"@babel/helpers" "^7.10.4"
"@babel/parser" "^7.11.0"
"@babel/template" "^7.10.4"
"@babel/traverse" "^7.11.0"
"@babel/types" "^7.11.0"
convert-source-map "^1.7.0"
debug "^4.1.0"
gensync "^1.0.0-beta.1"
json5 "^2.1.2"
lodash "^4.17.19"
resolve "^1.3.2"
semver "^5.4.1"
source-map "^0.5.0"

"@babel/core@^7.9.0":
version "7.10.2"
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.10.2.tgz#bd6786046668a925ac2bd2fd95b579b92a23b36a"
integrity sha512-KQmV9yguEjQsXqyOUGKjS4+3K8/DlOCE2pZcq4augdQmtTy5iv5EHtmMSJ7V4c1BIPjuwtZYqYLCq9Ga+hGBRQ==
dependencies:
"@babel/code-frame" "^7.10.1"
"@babel/generator" "^7.10.2"
"@babel/helper-module-transforms" "^7.10.1"
"@babel/helpers" "^7.10.1"
"@babel/parser" "^7.10.2"
"@babel/template" "^7.10.1"
"@babel/traverse" "^7.10.1"
"@babel/types" "^7.10.2"
convert-source-map "^1.7.0"
debug "^4.1.0"
gensync "^1.0.0-beta.1"
json5 "^2.1.2"
lodash "^4.17.13"
resolve "^1.3.2"
semver "^5.4.1"
source-map "^0.5.0"

"@babel/generator@>=7":
version "7.11.4"
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.11.4.tgz#1ec7eec00defba5d6f83e50e3ee72ae2fee482be"
integrity sha512-Rn26vueFx0eOoz7iifCN2UHT6rGtnkSGWSoDRIy8jZN3B91PzeSULbswfLoOWuTuAcNwpG/mxy+uCTDnZ9Mp1g==
dependencies:
"@babel/types" "^7.11.0"
jsesc "^2.5.1"
source-map "^0.5.0"

"@babel/generator@^7.10.1":
version "7.10.1"
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.10.1.tgz#4d14458e539bcb04ffe34124143f5c489f2dbca9"
integrity sha512-AT0YPLQw9DI21tliuJIdplVfLHya6mcGa8ctkv7n4Qv+hYacJrKmNWIteAK1P9iyLikFIAkwqJ7HAOqIDLFfgA==
dependencies:
"@babel/types" "^7.10.1"
jsesc "^2.5.1"
lodash "^4.17.13"
source-map "^0.5.0"

"@babel/generator@^7.10.2":
version "7.10.2"
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.10.2.tgz#0fa5b5b2389db8bfdfcc3492b551ee20f5dd69a9"
integrity sha512-AxfBNHNu99DTMvlUPlt1h2+Hn7knPpH5ayJ8OqDWSeLld+Fi2AYBTC/IejWDM9Edcii4UzZRCsbUt0WlSDsDsA==
dependencies:
"@babel/types" "^7.10.2"
jsesc "^2.5.1"
lodash "^4.17.13"
source-map "^0.5.0"

"@babel/generator@^7.10.4":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.10.4.tgz#e49eeed9fe114b62fa5b181856a43a5e32f5f243"
integrity sha512-toLIHUIAgcQygFZRAQcsLQV3CBuX6yOIru1kJk/qqqvcRmZrYe6WavZTSG+bB8MxhnL9YPf+pKQfuiP161q7ng==
dependencies:
"@babel/types" "^7.10.4"
jsesc "^2.5.1"
lodash "^4.17.13"
source-map "^0.5.0"

"@babel/generator@^7.10.5", "@babel/generator@^7.11.0", "@babel/generator@^7.9.6":
version "7.11.0"
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.11.0.tgz#4b90c78d8c12825024568cbe83ee6c9af193585c"
integrity sha512-fEm3Uzw7Mc9Xi//qU20cBKatTfs2aOtKqmvy/Vm7RkJEGFQ4xc9myCfbXxqK//ZS8MR/ciOHw6meGASJuKmDfQ==
dependencies:
"@babel/types" "^7.11.0"
jsesc "^2.5.1"
source-map "^0.5.0"

"@babel/generator@^7.12.0":
"@babel/generator@>=7", "@babel/generator@^7.10.1", "@babel/generator@^7.10.4", "@babel/generator@^7.10.5", "@babel/generator@^7.11.0", "@babel/generator@^7.12.0", "@babel/generator@^7.9.5", "@babel/generator@^7.9.6":
version "7.12.0"
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.12.0.tgz#91a45f1c18ca8d895a35a04da1a4cf7ea3f37f98"
integrity sha512-8lnf4QcyiQMf5XQp47BltuMTocsOh6P0z/vueEh8GzhmWWlDbdvOoI5Ziddg0XYhmnx35HyByUW51/9NprF8cA==
Expand All @@ -301,16 +187,6 @@
jsesc "^2.5.1"
source-map "^0.5.0"

"@babel/generator@^7.9.0", "@babel/generator@^7.9.5":
version "7.9.5"
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.9.5.tgz#27f0917741acc41e6eaaced6d68f96c3fa9afaf9"
integrity sha512-GbNIxVB3ZJe3tLeDm1HSn2AhuD/mVcyLDpgtLXa5tplmWrJdF/elxB56XNqCuD6szyNkDi6wuoKXln3QeBmCHQ==
dependencies:
"@babel/types" "^7.9.5"
jsesc "^2.5.1"
lodash "^4.17.13"
source-map "^0.5.0"

"@babel/helper-annotate-as-pure@^7.10.1":
version "7.10.1"
resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.1.tgz#f6d08acc6f70bbd59b436262553fb2e259a1a268"
Expand Down Expand Up @@ -641,7 +517,7 @@
"@babel/types" "^7.10.4"
lodash "^4.17.13"

"@babel/helper-module-transforms@^7.10.5", "@babel/helper-module-transforms@^7.11.0":
"@babel/helper-module-transforms@^7.10.5":
version "7.11.0"
resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.11.0.tgz#b16f250229e47211abdd84b34b64737c2ab2d359"
integrity sha512-02EVu8COMuTRO1TAzdMtpBPbe6aQ1w/8fePD2YgQmxZU4gpNWaL9gK3Jp7dxlkUlUCJOTaSeA+Hrm1BRQwqIhg==
Expand Down Expand Up @@ -669,19 +545,6 @@
"@babel/types" "^7.12.0"
lodash "^4.17.19"

"@babel/helper-module-transforms@^7.9.0":
version "7.9.0"
resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz#43b34dfe15961918707d247327431388e9fe96e5"
integrity sha512-0FvKyu0gpPfIQ8EkxlrAydOWROdHpBmiCiRwLkUiBGhCUPRRbVD2/tm3sFr/c/GWFrQ/ffutGUAnx7V0FzT2wA==
dependencies:
"@babel/helper-module-imports" "^7.8.3"
"@babel/helper-replace-supers" "^7.8.6"
"@babel/helper-simple-access" "^7.8.3"
"@babel/helper-split-export-declaration" "^7.8.3"
"@babel/template" "^7.8.6"
"@babel/types" "^7.9.0"
lodash "^4.17.13"

"@babel/helper-optimise-call-expression@^7.10.1":
version "7.10.1"
resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.1.tgz#b4a1f2561870ce1247ceddb02a3860fa96d72543"
Expand Down Expand Up @@ -799,14 +662,6 @@
"@babel/template" "^7.10.4"
"@babel/types" "^7.10.4"

"@babel/helper-simple-access@^7.8.3":
version "7.8.3"
resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz#7f8109928b4dab4654076986af575231deb639ae"
integrity sha512-VNGUDjx5cCWg4vvCTR8qQ7YJYZ+HBjxOgXEl7ounz+4Sn7+LMD3CFrCTEU6/qXKbA2nKg21CwhhBzO0RpRbdCw==
dependencies:
"@babel/template" "^7.8.3"
"@babel/types" "^7.8.3"

"@babel/helper-skip-transparent-expression-wrappers@^7.11.0":
version "7.11.0"
resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.11.0.tgz#eec162f112c2f58d3af0af125e3bb57665146729"
Expand Down Expand Up @@ -872,15 +727,6 @@
"@babel/traverse" "^7.10.4"
"@babel/types" "^7.10.4"

"@babel/helpers@^7.10.1":
version "7.10.1"
resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.10.1.tgz#a6827b7cb975c9d9cef5fd61d919f60d8844a973"
integrity sha512-muQNHF+IdU6wGgkaJyhhEmI54MOZBKsFfsXFhboz1ybwJ1Kl7IHlbm2a++4jwrmY5UYsgitt5lfqo1wMFcHmyw==
dependencies:
"@babel/template" "^7.10.1"
"@babel/traverse" "^7.10.1"
"@babel/types" "^7.10.1"

"@babel/helpers@^7.10.4":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.10.4.tgz#2abeb0d721aff7c0a97376b9e1f6f65d7a475044"
Expand All @@ -890,15 +736,6 @@
"@babel/traverse" "^7.10.4"
"@babel/types" "^7.10.4"

"@babel/helpers@^7.9.0":
version "7.9.2"
resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.9.2.tgz#b42a81a811f1e7313b88cba8adc66b3d9ae6c09f"
integrity sha512-JwLvzlXVPjO8eU9c/wF9/zOIN7X6h8DYf7mG4CiFRZRvZNKEF5dQ3H3V+ASkHoIB3mWhatgl5ONhyqHRI6MppA==
dependencies:
"@babel/template" "^7.8.3"
"@babel/traverse" "^7.9.0"
"@babel/types" "^7.9.0"

"@babel/highlight@^7.0.0", "@babel/highlight@^7.8.3":
version "7.9.0"
resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.9.0.tgz#4e9b45ccb82b79607271b2979ad82c7b68163079"
Expand Down Expand Up @@ -936,11 +773,6 @@
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.10.1.tgz#2e142c27ca58aa2c7b119d09269b702c8bbad28c"
integrity sha512-AUTksaz3FqugBkbTZ1i+lDLG5qy8hIzCaAxEtttU6C0BtZZU9pkNZtWSVAht4EW9kl46YBiyTGMp9xTTGqViNg==

"@babel/parser@^7.10.2":
version "7.10.2"
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.10.2.tgz#871807f10442b92ff97e4783b9b54f6a0ca812d0"
integrity sha512-PApSXlNMJyB4JiGVhCOlzKIif+TKFTvu0aQAhnTvfP/z3vVSN6ZypH5bfUNwFXXjRQtUEBNFd2PtmCmG2Py3qQ==

"@babel/parser@^7.10.4":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.10.4.tgz#9eedf27e1998d87739fb5028a5120557c06a1a64"
Expand Down Expand Up @@ -995,6 +827,14 @@
"@babel/helper-create-class-features-plugin" "^7.10.4"
"@babel/helper-plugin-utils" "^7.10.4"

"@babel/plugin-proposal-class-static-block@^7.12.0":
version "7.12.0"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.12.0.tgz#d40305c7598c1483bbb15a2123ffaa757645b2c8"
integrity sha512-3uEJaOIsxXChxaDKmJhoduPZISC1NlLsHHoBN5rY3RlVYz5djmE5ZOQUOfNsiwwIVXy0mi+lKjZSF1cSiZ6VZg==
dependencies:
"@babel/helper-plugin-utils" "^7.10.1"
"@babel/plugin-syntax-class-static-block" "^7.12.0"

"@babel/plugin-proposal-decorators@^7.10.5", "@babel/plugin-proposal-decorators@^7.8.3":
version "7.10.5"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.10.5.tgz#42898bba478bc4b1ae242a703a953a7ad350ffb4"
Expand Down Expand Up @@ -1197,6 +1037,13 @@
dependencies:
"@babel/helper-plugin-utils" "^7.10.4"

"@babel/plugin-syntax-class-static-block@^7.12.0":
version "7.12.0"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.12.0.tgz#dd9e60e237c0246cd5cd9581d7bbc5a3d29b9bbf"
integrity sha512-ylFXe7XyXlBboTc8MG61A98qdIdPoRfpGk4ssRZeuxSrBX+9w8S/MikL3hets27O2+9ZAb8g+td0K3UuNsVZPg==
dependencies:
"@babel/helper-plugin-utils" "^7.10.1"

"@babel/plugin-syntax-decorators@^7.10.4":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.10.4.tgz#6853085b2c429f9d322d02f5a635018cdeb2360c"
Expand Down Expand Up @@ -2306,7 +2153,7 @@
"@babel/parser" "^7.10.1"
"@babel/types" "^7.10.1"

"@babel/template@^7.8.3", "@babel/template@^7.8.6":
"@babel/template@^7.8.3":
version "7.8.6"
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.8.6.tgz#86b22af15f828dfb086474f964dcc3e39c43ce2b"
integrity sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==
Expand All @@ -2315,7 +2162,7 @@
"@babel/parser" "^7.8.6"
"@babel/types" "^7.8.6"

"@babel/traverse@^7.1.0", "@babel/traverse@^7.7.0", "@babel/traverse@^7.8.6", "@babel/traverse@^7.9.0":
"@babel/traverse@^7.1.0", "@babel/traverse@^7.7.0", "@babel/traverse@^7.8.6":
version "7.9.5"
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.9.5.tgz#6e7c56b44e2ac7011a948c21e283ddd9d9db97a2"
integrity sha512-c4gH3jsvSuGUezlP6rzSJ6jf8fYjLj3hsMZRx/nX0h+fmHN0w+ekubRrHPqnMec0meycA2nwCsJ7dC8IPem2FQ==
Expand Down Expand Up @@ -2360,7 +2207,7 @@
globals "^11.1.0"
lodash "^4.17.13"

"@babel/traverse@^7.10.5", "@babel/traverse@^7.11.0":
"@babel/traverse@^7.10.5":
version "7.11.0"
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.11.0.tgz#9b996ce1b98f53f7c3e4175115605d56ed07dd24"
integrity sha512-ZB2V+LskoWKNpMq6E5UUCrjtDUh5IOTAyIl0dTjIEoXum/iKWkoIEKIRDnUucO6f+2FzNkE0oD4RLKoPIufDtg==
Expand Down

0 comments on commit 8625b5b

Please sign in to comment.