|
| 1 | +### **0.3.1** |
| 2 | +- Try/Catch is now banned. See issue #873 for more details. |
| 3 | +- Reworked file copying logic! roblox-ts now copies any file/folder it doesn't compile from src -> out. |
| 4 | + - This is useful for things like Rojo's *.meta.json files |
| 5 | +- JSON modules can now be imported like regular modules. This requires `"resolveJsonModule": true,` in tsconfig.json |
| 6 | + - JSON files that get compiled to .lua will _not_ be copied over as .json |
| 7 | +- Fixed bug where you could access `arguments` and `globalThis` (TS global variables we don't support) |
| 8 | +- --help command now fills full width of terminal |
| 9 | + |
| 10 | +- **BREAKING CHANGE** - node_modules no longer copies under `include` |
| 11 | + - You must now add `node_modules/@rbxts` manually into your rojo default.project.json. |
| 12 | + - It should sit under your `include` folder. |
| 13 | + - So if your `include` part looked like this before: |
| 14 | + ```JSON |
| 15 | + "rbxts_include": { |
| 16 | + "$path": "include", |
| 17 | + }, |
| 18 | + ``` |
| 19 | + - It should now look like this: |
| 20 | + ```JSON |
| 21 | + "rbxts_include": { |
| 22 | + "$path": "include", |
| 23 | + "node_modules": { |
| 24 | + "$path": "node_modules/@rbxts" |
| 25 | + } |
| 26 | + }, |
| 27 | + ``` |
| 28 | + |
| 29 | +### **0.3.0** |
| 30 | +- Truthiness Rework: Truthiness is now evaluated like in TypeScript/JavaScript. `0`, `""`, and `NaN` are now falsy. |
| 31 | + - Added compiler option `--logTruthyChanges`, which displays all code affected by the truthiness change. |
| 32 | +- Fixed `&&`/`||` expressions which now respect the control flow of expressions which require multiple statements in Lua. |
| 33 | +- Fixed behavior for when libraries require a different version of a package other than the one globally installed in a project. |
| 34 | +- Fixed #586 - `new ReadonlySet()` and `new ReadonlyMap()` now work. |
| 35 | +- Fixed #604 - `rbxtsc --init package` now fills out package.json better. |
| 36 | +- Fix issues relating to method vs callback logic, specifically, making `this` work better as a first parameter. This should improve object composability. See https://git.io/fjxRS |
| 37 | +- Converted almost all of our bitwise operators to bit32. |
| 38 | +- Fixed our system of checking whether something is a type vs a value. |
| 39 | +- Fixed importing system for when your project requires a package version other than the globally installed one. |
| 40 | +- Added macro variable `PKG_VERSION` which gets replaced with the "version" string in your package.json file on compile. |
| 41 | +- Added support for TS 3.6 Generators, and also added support for directly and indirectly indexing Symbol.iterator from iterable functions and methods. See https://git.io/Jem1l |
| 42 | +- Replaced our `getfenv(0).script` calls with passing in `script` as the first parameter in `TS.import` and `TS.getModule`. This means packages will have to be republished, but anyone can easily fix a broken package by inserting `script` as the first parameter themselves. |
| 43 | +- Fixed `Array.reduce` and `Array.reduceRight` functions |
| 44 | + - They now pass in the right index into the reducer function (arrays start at 0, not 1) |
| 45 | + - They now pass the array into the reducer function |
| 46 | + - They now error when attempting to reduce an empty array without an initialValue passed in |
| 47 | + - `undefined` is now a valid initialValue |
| 48 | +- Changed our limited emulation of JS behavior where many array methods wouldn't call callbacks on empty values in arrays (we considered any `nil` value `empty`). Now, every callback in every array method gets called on every item within arrays, even `nil` values if applicable. This should be more straightforward and easier to understand (and easier for our type system). This change shouldn't affect most people, since we discourage using arrays with holes anyway. |
| 49 | + - If you need to strip an array of `nil` values, use `Array.filter((v): v is NonNullable<typeof v> => v !== undefined);` |
| 50 | + - We should release a library for safely making arrays with holes for that niche use case, where `length` is tracked as a real value. |
| 51 | +- Declaring the same enum multiple times (merging) is no longer allowed. As a result `Object.keys` and `Object.values` now work with enums! |
| 52 | +- Added support for importing .json files! They will compile to .lua files. (Thanks to Vorlias) |
| 53 | + |
| 54 | +### **0.2.14** |
| 55 | +- Fixed analytics bug |
| 56 | + |
| 57 | +### **0.2.13** |
| 58 | +- Fixed #285 - Watch mode now recompiles files which import the file you changed |
| 59 | +- Fixed #296 - ensure tsconfig.json is readable |
| 60 | +- Fixed #297 - better project config errors |
| 61 | +- Fixed #573 - fixed call expressions + non null assertion. i.e. `map.get(x)![0]` |
| 62 | +- Added analytics to help track most common errors. |
| 63 | + - You can opt out globally with `rbxtsc --noAnalytics` (only needed once) |
| 64 | + - Opt back in with `rbxtsc --noAnalytics=false` |
| 65 | + |
| 66 | +### **0.2.12** |
| 67 | +- Replaced .npmignore with "files" field to resolve npm issues |
| 68 | + |
| 69 | +### **0.2.11** |
| 70 | +- Removed empty field initializers from compiled constructor. i.e. `self.field = nil;` |
| 71 | +- Renamed "bundle" to "model" |
| 72 | +- Added `rbxtsc --init plugin` |
| 73 | +- Fixed `rbxtsc --init` bug |
| 74 | + |
| 75 | +### **0.2.10** |
| 76 | +- Improved Watch mode stability |
| 77 | +- Improved error handling |
| 78 | +- Ability to recover from ts-morph failed to refresh file |
| 79 | +- Improved destructuring stability |
| 80 | +- Added `rbxtsc --init` |
| 81 | + - with the following options: |
| 82 | + - `rbxtsc --init game` |
| 83 | + - `rbxtsc --init bundle` |
| 84 | + - `rbxtsc --init package` |
| 85 | + - It will not run if you have a non-empty src folder |
0 commit comments