Fable 4.21.0

There is a newer version of this package available.
See the version list below for details.
dotnet tool install --global Fable --version 4.21.0                
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest # if you are setting up this repo
dotnet tool install --local Fable --version 4.21.0                
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=Fable&version=4.21.0                
nuke :add-package Fable --version 4.21.0                

Fable: F# |> JS

Nuget Build Join the chat at https://gitter.im/fable-compiler/Fable

Follow us on Twitter!

Fable is an F# to JavaScript compiler powered FSharp Compiler Services, designed to make F# a first-class citizen of the JavaScript ecosystem. Check the website for more information and if you find the project useful, don't forget to give us a star!

Fable actually uses a fork of FCS with a few tweaks. Binaries are in lib/fcs folder. See this PR for more info.

Getting started

Check this page.

Building

Requirements

Use VSCode Dev Container

You can use VSCode Dev Container to get a preconfigured environment both with requirements and VSCode extensions.

  1. You need to have docker installed and running.
  2. Install the Dev Container extension in VSCode
  3. Open the project in VSCode and click on the green button in the bottom left corner.
Use your machine

Make sure the following requirements are installed in your system:

Build

Run ./builsh.sh or ./build.cmd to see the build options.

When using VSCode, you can also run the build tasks from the command palette (Ctrl+Shift+P) by typing Run Task and selecting the task you want to run.

We also configured several debug configurations that you can use from the debug panel (Ctrl+Shift+D). This is useful as you can attach the debugger to the Fable compiler process to check what's going on.

Contributing

Just by using Fable you're already contributing! You can help the community a lot by sharing examples and experiences in your personal (or Fable's) blog and/or by editing the Fable Resources page.

Send bug reports (ideally with minimal code to reproduce the problem) and feature requests to this GitHub repository. To interact with the community you can use the Gitter chat but please note maintainers are not checking the chat regularly.

If you are up to contribute a fix or a feature yourself, you're more than welcome! Please send first an issue or a minimal Work In Progess PR so we can discuss the implementation details in advance.

List of changelogs

Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last updated
4.23.0 1,366 10/28/2024
4.22.0 3,848 10/2/2024
4.21.0 1,850 9/19/2024
4.20.0 2,839 9/4/2024
4.19.3 9,997 6/17/2024
4.19.2 372 6/13/2024
4.19.1 162 6/13/2024
4.19.0 744 6/10/2024
4.18.0 1,745 5/23/2024
4.17.0 9,238 4/23/2024
4.16.0 8,718 3/20/2024
4.15.0 942 3/18/2024
4.14.0 12,289 3/1/2024
4.13.0 4,216 2/20/2024
4.12.2 10,507 2/13/2024
4.12.1 683 2/13/2024
4.11.0 5,461 1/30/2024
4.10.0 11,293 1/25/2024
4.9.0 23,721 12/14/2023
4.8.1 1,551 12/12/2023
4.8.0 668 12/12/2023
4.7.0 6,489 12/6/2023
4.6.0 8,039 11/27/2023
4.5.0 22,359 11/7/2023
4.4.1 2,795 10/25/2023
4.4.0 10,290 10/24/2023
4.3.0 3,986 10/18/2023
4.2.2 2,683 10/14/2023
4.2.1 8,737 9/29/2023
4.1.4 47,732 5/16/2023
4.1.3 7,124 4/28/2023
4.1.2 3,840 4/22/2023
4.1.1 615 4/22/2023
4.1.0 1,033 4/18/2023
4.1.0-beta-001 628 4/16/2023
4.0.5 1,865 4/8/2023
4.0.4 1,962 4/4/2023
4.0.3 2,119 3/30/2023
4.0.2 1,060 3/27/2023
4.0.1 19,244 3/18/2023
4.0.0 6,611 3/14/2023
4.0.0-theta-018 44,043 11/19/2022
4.0.0-theta-017 579 11/16/2022
4.0.0-theta-016 728 11/13/2022
4.0.0-theta-015 548 11/5/2022
4.0.0-theta-014 365 10/31/2022
4.0.0-theta-012 1,150 10/14/2022
4.0.0-theta-011 902 10/4/2022
4.0.0-theta-010 372 9/28/2022
4.0.0-theta-009 367 9/28/2022
4.0.0-theta-008 418 9/22/2022
4.0.0-theta-007 349 9/21/2022
4.0.0-theta-006 389 9/18/2022
4.0.0-theta-005 325 9/17/2022
4.0.0-theta-004 443 9/14/2022
4.0.0-theta-003 288 9/12/2022
4.0.0-theta-002 251 9/11/2022
4.0.0-theta-001 328 9/9/2022
4.0.0-snake-island-alpha-026 356 9/8/2022
4.0.0-snake-island-alpha-025 324 9/6/2022
4.0.0-snake-island-alpha-024 484 9/2/2022
4.0.0-snake-island-alpha-023 296 8/30/2022
4.0.0-snake-island-alpha-021 744 8/21/2022
4.0.0-snake-island-alpha-020 379 8/14/2022
4.0.0-snake-island-alpha-019 427 7/31/2022
4.0.0-snake-island-alpha-018 282 7/30/2022
4.0.0-snake-island-alpha-017 328 7/27/2022
4.0.0-snake-island-alpha-016 289 7/26/2022
4.0.0-snake-island-alpha-015 259 7/26/2022
4.0.0-snake-island-alpha-014 304 7/25/2022
4.0.0-snake-island-alpha-013 273 7/25/2022
4.0.0-snake-island-alpha-012 414 7/12/2022
4.0.0-snake-island-alpha-011 275 6/23/2022
4.0.0-snake-island-alpha-010 286 6/3/2022
4.0.0-snake-island-alpha-009 248 6/2/2022
4.0.0-snake-island-alpha-008 275 6/1/2022
4.0.0-snake-island-alpha-007 297 5/25/2022
4.0.0-snake-island-alpha-006 255 5/24/2022
4.0.0-snake-island-alpha-005 276 5/23/2022
4.0.0-snake-island-alpha-004 248 5/21/2022
4.0.0-snake-island-alpha-003 275 5/20/2022
4.0.0-snake-island-alpha-002 249 5/19/2022
4.0.0-snake-island-alpha-001 274 5/11/2022
3.7.22 3,383 5/11/2023
3.7.21 233 5/11/2023
3.7.20 36,053 9/27/2022
3.7.19 525 9/27/2022
3.7.18 8,123 8/16/2022
3.7.17 6,640 7/21/2022
3.7.16 4,359 7/5/2022
3.7.15 914 6/29/2022
3.7.14 4,537 6/14/2022
3.7.12 3,731 5/27/2022
3.7.11 6,195 5/1/2022
3.7.10 766 4/29/2022
3.7.9 10,035 4/1/2022
3.7.8 1,727 3/24/2022
3.7.7 5,340 3/22/2022
3.7.6 2,796 3/16/2022
3.7.5 21,841 3/1/2022
3.7.4 912 2/25/2022
3.7.3 4,569 2/23/2022
3.7.2 1,345 2/22/2022
3.7.1 6,169 2/17/2022
3.7.0 8,460 2/7/2022
3.7.0-beta-015 1,211 1/26/2022
3.7.0-beta-014 303 1/24/2022
3.7.0-beta-012 356 1/18/2022
3.7.0-beta-011 284 1/14/2022
3.7.0-beta-010 255 1/14/2022
3.7.0-beta-009 266 1/12/2022
3.7.0-beta-008 239 1/11/2022
3.7.0-beta-007 266 1/11/2022
3.7.0-beta-006 253 1/11/2022
3.7.0-beta-005 277 1/7/2022
3.7.0-beta-004 244 1/5/2022
3.7.0-beta-003 315 1/4/2022
3.7.0-beta-002 231 12/28/2021
3.7.0-beta-001 257 12/20/2021
3.6.3 19,139 12/1/2021
3.6.2 8,741 11/26/2021
3.6.1 12,031 11/23/2021
3.6.0 1,681 11/19/2021
3.6.0-beta-003 382 11/17/2021
3.6.0-beta-002 231 11/15/2021
3.6.0-beta-001 264 11/14/2021
3.4.10 1,400 11/8/2021
3.4.9 2,356 11/5/2021
3.4.8 496 11/4/2021
3.4.7 1,609 10/28/2021
3.4.6 1,073 10/26/2021
3.4.5 746 10/21/2021
3.4.4 872 10/20/2021
3.4.3 14,318 10/14/2021
3.4.2 1,287 10/5/2021
3.4.1 521 10/4/2021
3.4.0 861 10/1/2021
3.3.1 1,715 9/27/2021
3.3.0 3,483 9/16/2021
3.3.0-beta-002 452 8/28/2021
3.3.0-beta-001 237 8/27/2021
3.2.14 1,365 9/11/2021
3.2.12 4,801 8/26/2021
3.2.11 6,122 8/19/2021
3.2.10 2,849 8/2/2021
3.2.9 47,204 7/8/2021
3.2.8 2,539 6/26/2021
3.2.7 507 6/25/2021
3.2.6 2,701 6/22/2021
3.2.5 865 6/21/2021
3.2.4 722 6/16/2021
3.2.3 677 6/11/2021
3.2.2 943 6/3/2021
3.2.1 16,831 5/28/2021
3.2.0 534 5/28/2021
3.1.16 7,509 5/14/2021
3.1.15 6,781 4/16/2021
3.1.14 4,923 4/9/2021
3.1.12 3,185 3/23/2021
3.1.11 4,935 3/17/2021
3.1.10 1,212 3/16/2021
3.1.9 2,760 3/15/2021
3.1.8 522 3/15/2021
3.1.7 993 3/11/2021
3.1.6 575 3/11/2021
3.1.5 6,941 2/18/2021
3.1.4 932 2/12/2021
3.1.3 517 2/12/2021
3.1.2 10,491 1/25/2021
3.1.1 6,076 1/13/2021
3.1.0 970 1/11/2021
3.1.0-beta-001 376 1/8/2021
3.0.5 1,937 12/22/2020
3.0.4 1,256 12/19/2020
3.0.3 611 12/18/2020
3.0.2 1,102 12/16/2020
3.0.1 1,296 12/11/2020
3.0.0 3,399 12/4/2020
3.0.0-nagareyama-rc-011 614 12/2/2020
3.0.0-nagareyama-rc-010 500 11/28/2020
3.0.0-nagareyama-rc-009 1,044 11/25/2020
3.0.0-nagareyama-rc-008 568 11/19/2020
3.0.0-nagareyama-rc-007 789 11/15/2020
3.0.0-nagareyama-rc-006 590 11/13/2020
3.0.0-nagareyama-rc-005 409 11/12/2020
3.0.0-nagareyama-rc-004 471 11/10/2020
3.0.0-nagareyama-rc-003 440 11/9/2020
3.0.0-nagareyama-rc-002 529 11/8/2020
3.0.0-nagareyama-rc-001 519 11/7/2020
3.0.0-nagareyama-beta-005 449 10/31/2020
3.0.0-nagareyama-beta-004 587 10/27/2020
3.0.0-nagareyama-beta-003 441 10/25/2020
3.0.0-nagareyama-beta-002 569 10/23/2020
3.0.0-nagareyama-beta-001 401 10/23/2020
3.0.0-nagareyama-alpha-017 377 10/22/2020
3.0.0-nagareyama-alpha-016 378 10/22/2020
3.0.0-nagareyama-alpha-015 450 10/19/2020
3.0.0-nagareyama-alpha-014 458 10/18/2020
3.0.0-nagareyama-alpha-012 418 10/15/2020
3.0.0-nagareyama-alpha-011 408 10/15/2020
3.0.0-nagareyama-alpha-010 433 10/13/2020
3.0.0-nagareyama-alpha-009 444 10/11/2020
3.0.0-nagareyama-alpha-008 513 10/5/2020
3.0.0-nagareyama-alpha-007 445 10/2/2020
3.0.0-nagareyama-alpha-006 424 9/30/2020
3.0.0-nagareyama-alpha-005 370 9/29/2020
3.0.0-nagareyama-alpha-004 448 9/28/2020
3.0.0-nagareyama-alpha-003 416 9/14/2020
3.0.0-nagareyama-alpha-002 402 9/13/2020
3.0.0-nagareyama-alpha-001 524 9/13/2020

## Added

- [JS/TS] Add support for `OrdinalIgnoreCase` overload for `String.EndsWith` (#3892) (by @goswinr)
- [JS/TS] Add `uri.Port`, `uri.IsDefaultPort` (by @MangelMaxime)

## Changed

- [Python] Remove `$` sign when reporting an error from `assert_equal` and `assert_not_equal` (#3878) (by @joprice)
- [All] Don't hide original error when failing to scan an assembly for plugin (#3896) (by @MangelMaxime)

## Fixed

- [JS/TS] Fix escaping of `{` and `}` in FormattableString (#3890) (by @roboz0r)
- [JS/TS] Fix `uri.Host` to return the host name without the port (by @MangelMaxime)
- [JS/TS] Fix TypeScript compilation by resolving type of `jsOptions` (#3894) (by @ManngelMaxime)