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
|