UNPKG

15.1 kBMarkdownView Raw
1# 3.19.0 (2021-06-23)
2
3* Add option to disable ES transforms. ([#623], [#624], [#625]) (Denys Kniazevych, Alan Pierce)
4
5# 3.18.2 (2021-06-07)
6
7* Properly handle imports like `import {default as myFunc} from './myFunc';`
8 when importing from files that are not ES modules. ([#619]) (Patrik Oldsberg)
9* Fix bug where other transforms were not being applied to enum value
10 expressions, so enum declarations like `A = EnumInOtherFile.A` didn't work.
11 ([#621])
12
13# 3.18.1 (2021-04-12)
14
15* Fix regression causing incomplete nullish coalescing and optional chaining in
16 some cases. ([#610])
17
18# 3.18.0 (2021-04-11)
19
20* Add `jest` transform analogous to `babel-plugin-jest-hoist`. ([#540]) (Patrik Oldsberg)
21* When calling a `register` function or `addHook`, return a function that
22 reverts the hook. ([#604]) (Anthony Fu)
23
24# 3.17.1 (2021-01-31)
25
26* Fix bug where TS method overloads in a class would cause later class fields to
27 not be handled properly. ([#593])
28
29# 3.17.0 (2020-12-29)
30
31* Fix incorrect export removal when exporting a variable defined using a
32 destructure declaration. ([#564])
33* Add support for new type syntax in TypeScript 4.1: template interpolations in
34 string literal types and `as` to remap keys in mapped types. Also add parsing
35 for static blocks and pass them through in the output. ([#567])
36* Allow passing `pirates` options `matcher` and `ignoreNodeModules` when
37 directly calling `registerJS` and related functions. ([#571], [#573])
38 (Gordon Leigh)
39* Properly emit private class field declarations in the output code so that
40 private fields can be used when they're supported by the target JS engine.
41 ([#574])
42* Fix parse error when a method or field has the name `declare`. ([#575])
43
44# 3.16.0 (2020-10-12)
45
46* Add support for TypeScript 4.0 type syntax: labeled tuples, catch clause
47 `unknown`. ([#556]) (Patrik Oldsberg)
48
49# 3.15.0 (2020-05-18)
50
51* Add support for `declare` class fields in TypeScript. ([#537])
52
53# 3.14.1 (2020-05-17)
54
55* Add support for `export type {T} from './T';` type-only export syntax. ([#533]) (Patrik Oldsberg)
56
57# 3.14.0 (2020-05-10)
58
59* Add support for TypeScript 3.8 type-only imports and exports. ([#523], [#532])
60* Add a `--production` flag to the CLI. ([#529]) (Matthew Phillips)
61* Fix crash when using `+` or `-` in constructor parameter defaults. ([#531])
62
63# 3.13.0 (2020-03-28)
64
65* Properly escape file paths in the react-hot-loader transform. ([#512]) (Jan Zípek)
66* Fix nullish coalescing when the RHS is an object literal. ([#516])
67* Support reading CLI configuration from tsconfig.json. ([#509], [#519]) (Jake Verbaten)
68
69# 3.12.1 (2020-01-13)
70
71* Fix crash when parsing `asserts b` TypeScript return signatures. ([#504])
72
73# 3.12.0 (2020-01-01)
74
75* Add support for TypeScript assertion signature syntax, other parser
76 improvements. ([#485], [#487])
77* Implement optional chaining and nullish coalescing.
78 ([#488], [#490], [#492], [#496], [#497], [#498],
79 [tech plan](https://github.com/alangpierce/sucrase/wiki/Sucrase-Optional-Chaining-and-Nullish-Coalescing-Technical-Plan))
80
81# 3.11.0 (2019-12-22)
82
83* Add runtime validation for options. ([#468])
84* Allow `.tsx` and `.jsx` options when running `sucrase` from the command line. ([#448]) (Ricardo Tomasi, Alexander Mextner)
85* Fix bug where generator markers in methods were removed. ([#463]) (Bjørn Tore Håvie)
86
87# 3.10.1 (2019-03-31)
88
89* Fix parsing of `a<b>c` in TypeScript. ([#438])
90* Add support for new TypeScript 3.4 syntax, other parser improvements. ([#439], [#440])
91* Elide TS `import =` statements that are only used as a type. ([#441])
92* Properly handle async arrow functions with multiline type parameters. ([#443])
93
94# 3.10.0 (2019-03-11)
95
96* Fix bug where `/*/` was being parsed incorrectly. ([#430])
97* Properly parse and compile JSX spread children. ([#431])
98* Implement TypeScript export elision for exported types. ([#433])
99
100# 3.9.6 (2019-03-01)
101
102* Fix Flow bug where `implements` caused the class name to be incorrectly recognized. ([#409])
103* Correctly handle `!:` in TS variable declarations. ([#410])
104* Move more import code into helper functions in prep for some upcoming changes.
105* Fix bug where some JSX component names were incorrectly turned into strings. ([#425]) (Yang Zhang)
106
107# 3.9.5 (2019-01-13)
108
109* Fix bug when processing a declaration that looks like an export assignment. ([#402])
110* Fix TS import elision for JSX fragments and custom pragmas. ([#403])
111* Treat reserved words as invalid identifiers when handling enums. ([#405])
112
113# 3.9.4 (2019-01-07)
114
115* Avoid false positive when detecting if a class has a superclass. ([#399])
116
117# 3.9.3 (2019-01-06)
118
119* Fix syntax error on arrow functions with multiline return types. ([#393])
120
121# 3.9.2 (2019-01-02)
122
123* Fix crash on optional arrow function params without type annotations. ([#389])
124* Usability bug fixes for website. ([#390])
125
126# 3.9.1 (2018-12-31)
127
128* Fix react-hot-loader transform syntax error with some export styles. ([#384])
129* Fix website to properly show react-hot-loader Babel transform output. ([#386])
130
131# 3.9.0 (2018-12-30)
132
133* Add a react-hot-loader transform. ([#376])
134* Add support for dynamic `import()` syntax in TS types. ([#380])
135* Many improvements to the website, including faster initial pageloads.
136* Small performance improvements.
137
138# 3.8.1 (2018-12-03)
139
140* Fix infinite loop when a file ends with a short identifier ([#363])
141* Small perf improvements.
142
143# 3.8.0 (2018-11-25)
144
145* Various simplifications in prep for compiling the project with AssemblyScript.
146* Performance improvements, varying from 10% to 70% better performance depending
147 on use case.
148* Fix infinite loop in flow `declare module` parsing ([#359])
149
150# 3.7.1 (2018-11-18)
151
152* Fix crash on empty export expressions ([#338])
153* Fix crash on TypeScript `declare global` ([#339])
154* Fix crash when using overloaded constructors in TypeScript ([#340])
155* Fix TypeScript import elision when imported names are shadowed by variables
156 ([#342])
157* Fix import name transform to work in code without semicolons ([#337])
158 (Alec Larson)
159
160# 3.7.0 (2018-11-11)
161
162* Fix perf regression in TypeScript parsing ([#327])
163* Fix broken line numbers in syntax errors, improve parser backtracking
164 performance ([#331])
165* Add Parser features and bugfixes from the Babel parser, including TypeScript
166 3.0 support ([#333])
167
168# 3.6.0 (2018-10-29)
169
170* Add CLI support for jsx pragmas ([#321]) (Josiah Savary)
171* Allow super.method() calls in constructor ([#324]) (Erik Arvidsson)
172
173# 3.5.0 (2018-09-30)
174
175* Change class field implementation to use initializer methods ([#313])
176* Update TypeScript and Flow support to include new language features recently
177 supported by Babel. ([#314], [#315], [#316])
178* Properly handle function name inference in named exports ([#317])
179
180# 3.4.2 (2018-08-27)
181
182* Implement destructuring in export declarations ([#305])
183* Properly handle function name inference in named exports ([#308])
184
185# 3.4.1 (2018-07-06)
186
187* Quote shorthand prop keys that contain a hyphen ([#292]) (Kevin Gao)
188* Fix infinite loop on incomplete JSX. ([#296])
189
190# 3.4.0 (2018-07-01)
191
192* Add a sucrase-node CLI that wraps node. ([#288])
193* Allow exported generator functions. ([#290])
194
195# 3.3.0 (2018-06-28)
196
197* Add a --out-extension option to the CLI. ([#282])
198* Add a -q/--quiet option in the CLI and use it in the build script. ([#284])
199* Don't emit semicolons in class bodies. ([#285])
200* Fix ugly emitted comments when removing code between tokens. ([#286])
201
202# 3.2.1 (2018-06-27)
203
204* Allow TS type parameters on object member methods. ([#276])
205* Simplify identity source map generator. ([#265])
206* Fix crash on destructured params in arrow function types. ([#278])
207* Remove @flow directives from comments when the flow transform is enabled.
208 ([#279])
209
210# 3.2.0 (2018-06-25)
211
212* Fix crash when using JSX elements as props. ([#268]) (Erik Arvidsson)
213* Fix incorrect compilation of TypeScript optional class properties with an
214 initializer. ([#264])
215* Fix crash on class fields that don't end in a semicolon. ([#271])
216* Allow trailing commas after rest elements. ([#272])
217* Don't crash on class bodies with an index signature. ([#273])
218* Allow member expression identifiers when determining React displayName.
219 ([#274])
220* Add production option and use it for JSX. ([#270]) (Erik Arvidsson)
221* Fix off-by-one error in parsing JSX fragments. ([#275])
222
223# 3.1.0 (2018-06-18)
224
225* Add basic support for source maps ([#257], [#261])
226
227# 3.0.1 (2018-06-11)
228
229* Fix crash in `getVersion`.
230
231# 3.0.0 (2018-06-10)
232
233### Breaking Changes
234
235* `transform` now returns an object ([#244]). You now should write
236 `transform(...).code` instead of just `transform(...)`. `code` is the only
237 property for now, but this allows Sucrase to return source maps and possibly
238 other values.
239* The package's `dist` folder has been restructured, so direct internal module
240 imports may break.
241
242### Other changes
243
244* Overhaul build system to use Sucrase for everything ([#243])
245* Omit import helpers when unused ([#237]) (Alec Larson)
246* Fix files accidentally included in final package ([#233])
247* Various refactors and performance improvements.
248
249# 2.2.0 (2018-05-19)
250
251* Add support for JSX fragment syntax.
252* Add support for custom JSX pragmas rather than defaulting to
253 `React.createElement` and `React.Fragment`.
254
255[#233]: https://github.com/alangpierce/sucrase/pull/233
256[#237]: https://github.com/alangpierce/sucrase/pull/237
257[#243]: https://github.com/alangpierce/sucrase/pull/243
258[#244]: https://github.com/alangpierce/sucrase/pull/244
259[#257]: https://github.com/alangpierce/sucrase/pull/257
260[#261]: https://github.com/alangpierce/sucrase/pull/261
261[#264]: https://github.com/alangpierce/sucrase/pull/264
262[#265]: https://github.com/alangpierce/sucrase/pull/265
263[#268]: https://github.com/alangpierce/sucrase/pull/268
264[#270]: https://github.com/alangpierce/sucrase/pull/270
265[#271]: https://github.com/alangpierce/sucrase/pull/271
266[#272]: https://github.com/alangpierce/sucrase/pull/272
267[#273]: https://github.com/alangpierce/sucrase/pull/273
268[#274]: https://github.com/alangpierce/sucrase/pull/274
269[#275]: https://github.com/alangpierce/sucrase/pull/275
270[#276]: https://github.com/alangpierce/sucrase/pull/276
271[#278]: https://github.com/alangpierce/sucrase/pull/278
272[#279]: https://github.com/alangpierce/sucrase/pull/279
273[#282]: https://github.com/alangpierce/sucrase/pull/282
274[#284]: https://github.com/alangpierce/sucrase/pull/284
275[#285]: https://github.com/alangpierce/sucrase/pull/285
276[#286]: https://github.com/alangpierce/sucrase/pull/286
277[#288]: https://github.com/alangpierce/sucrase/pull/288
278[#290]: https://github.com/alangpierce/sucrase/pull/290
279[#292]: https://github.com/alangpierce/sucrase/pull/292
280[#296]: https://github.com/alangpierce/sucrase/pull/296
281[#305]: https://github.com/alangpierce/sucrase/pull/305
282[#308]: https://github.com/alangpierce/sucrase/pull/308
283[#313]: https://github.com/alangpierce/sucrase/pull/313
284[#314]: https://github.com/alangpierce/sucrase/pull/314
285[#315]: https://github.com/alangpierce/sucrase/pull/315
286[#316]: https://github.com/alangpierce/sucrase/pull/316
287[#317]: https://github.com/alangpierce/sucrase/pull/317
288[#321]: https://github.com/alangpierce/sucrase/pull/321
289[#324]: https://github.com/alangpierce/sucrase/pull/324
290[#327]: https://github.com/alangpierce/sucrase/pull/327
291[#331]: https://github.com/alangpierce/sucrase/pull/331
292[#333]: https://github.com/alangpierce/sucrase/pull/333
293[#337]: https://github.com/alangpierce/sucrase/pull/337
294[#338]: https://github.com/alangpierce/sucrase/pull/338
295[#339]: https://github.com/alangpierce/sucrase/pull/339
296[#340]: https://github.com/alangpierce/sucrase/pull/340
297[#342]: https://github.com/alangpierce/sucrase/pull/342
298[#359]: https://github.com/alangpierce/sucrase/pull/359
299[#363]: https://github.com/alangpierce/sucrase/pull/363
300[#376]: https://github.com/alangpierce/sucrase/pull/376
301[#380]: https://github.com/alangpierce/sucrase/pull/380
302[#384]: https://github.com/alangpierce/sucrase/pull/384
303[#386]: https://github.com/alangpierce/sucrase/pull/386
304[#389]: https://github.com/alangpierce/sucrase/pull/389
305[#390]: https://github.com/alangpierce/sucrase/pull/390
306[#393]: https://github.com/alangpierce/sucrase/pull/393
307[#399]: https://github.com/alangpierce/sucrase/pull/399
308[#402]: https://github.com/alangpierce/sucrase/pull/402
309[#403]: https://github.com/alangpierce/sucrase/pull/403
310[#405]: https://github.com/alangpierce/sucrase/pull/405
311[#409]: https://github.com/alangpierce/sucrase/pull/409
312[#410]: https://github.com/alangpierce/sucrase/pull/410
313[#425]: https://github.com/alangpierce/sucrase/pull/425
314[#430]: https://github.com/alangpierce/sucrase/pull/430
315[#431]: https://github.com/alangpierce/sucrase/pull/431
316[#433]: https://github.com/alangpierce/sucrase/pull/433
317[#438]: https://github.com/alangpierce/sucrase/pull/438
318[#439]: https://github.com/alangpierce/sucrase/pull/439
319[#440]: https://github.com/alangpierce/sucrase/pull/440
320[#441]: https://github.com/alangpierce/sucrase/pull/441
321[#443]: https://github.com/alangpierce/sucrase/pull/443
322[#448]: https://github.com/alangpierce/sucrase/pull/448
323[#463]: https://github.com/alangpierce/sucrase/pull/463
324[#468]: https://github.com/alangpierce/sucrase/pull/468
325[#485]: https://github.com/alangpierce/sucrase/pull/485
326[#487]: https://github.com/alangpierce/sucrase/pull/487
327[#488]: https://github.com/alangpierce/sucrase/pull/488
328[#490]: https://github.com/alangpierce/sucrase/pull/490
329[#492]: https://github.com/alangpierce/sucrase/pull/492
330[#496]: https://github.com/alangpierce/sucrase/pull/496
331[#497]: https://github.com/alangpierce/sucrase/pull/497
332[#498]: https://github.com/alangpierce/sucrase/pull/498
333[#504]: https://github.com/alangpierce/sucrase/pull/504
334[#509]: https://github.com/alangpierce/sucrase/pull/509
335[#512]: https://github.com/alangpierce/sucrase/pull/512
336[#516]: https://github.com/alangpierce/sucrase/pull/516
337[#519]: https://github.com/alangpierce/sucrase/pull/519
338[#523]: https://github.com/alangpierce/sucrase/pull/523
339[#529]: https://github.com/alangpierce/sucrase/pull/529
340[#531]: https://github.com/alangpierce/sucrase/pull/531
341[#532]: https://github.com/alangpierce/sucrase/pull/532
342[#533]: https://github.com/alangpierce/sucrase/pull/533
343[#537]: https://github.com/alangpierce/sucrase/pull/537
344[#556]: https://github.com/alangpierce/sucrase/pull/556
345[#564]: https://github.com/alangpierce/sucrase/pull/564
346[#567]: https://github.com/alangpierce/sucrase/pull/567
347[#571]: https://github.com/alangpierce/sucrase/pull/571
348[#573]: https://github.com/alangpierce/sucrase/pull/573
349[#574]: https://github.com/alangpierce/sucrase/pull/574
350[#575]: https://github.com/alangpierce/sucrase/pull/575
351[#593]: https://github.com/alangpierce/sucrase/pull/593
352[#540]: https://github.com/alangpierce/sucrase/pull/540
353[#604]: https://github.com/alangpierce/sucrase/pull/604
354[#610]: https://github.com/alangpierce/sucrase/pull/610
355[#619]: https://github.com/alangpierce/sucrase/pull/619
356[#621]: https://github.com/alangpierce/sucrase/pull/621
357[#623]: https://github.com/alangpierce/sucrase/pull/623
358[#624]: https://github.com/alangpierce/sucrase/pull/624
359[#625]: https://github.com/alangpierce/sucrase/pull/625