UNPKG

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