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