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
|