{"id":13655747,"url":"https://github.com/TheAngryByrd/Fable.Template.Library","last_synced_at":"2025-04-23T17:30:38.354Z","repository":{"id":24114377,"uuid":"100658802","full_name":"TheAngryByrd/Fable.Template.Library","owner":"TheAngryByrd","description":"F# Template for create and publishing Fable Libraries","archived":false,"fork":false,"pushed_at":"2021-09-09T14:11:23.000Z","size":123,"stargazers_count":20,"open_issues_count":7,"forks_count":5,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-04-14T08:53:35.734Z","etag":null,"topics":["dotnet-core","dotnet-template","fable","fable-libraries","fsharp","javascript"],"latest_commit_sha":null,"homepage":"","language":"F#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TheAngryByrd.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-08-18T01:10:18.000Z","updated_at":"2023-07-02T14:34:47.000Z","dependencies_parsed_at":"2022-07-27T04:32:10.346Z","dependency_job_id":null,"html_url":"https://github.com/TheAngryByrd/Fable.Template.Library","commit_stats":null,"previous_names":["theangrybyrd/fable.library.template"],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheAngryByrd%2FFable.Template.Library","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheAngryByrd%2FFable.Template.Library/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheAngryByrd%2FFable.Template.Library/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheAngryByrd%2FFable.Template.Library/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TheAngryByrd","download_url":"https://codeload.github.com/TheAngryByrd/Fable.Template.Library/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223931581,"owners_count":17227256,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dotnet-core","dotnet-template","fable","fable-libraries","fsharp","javascript"],"created_at":"2024-08-02T04:00:33.201Z","updated_at":"2024-11-10T08:30:30.040Z","avatar_url":"https://github.com/TheAngryByrd.png","language":"F#","funding_links":[],"categories":["List"],"sub_categories":["Libs"],"readme":"# Fable.Template.Library\nF# Template for create and publishing [Fable](https://github.com/fable-compiler/Fable) Libraries\n\n\n## Getting started\n\n### Grab the template from nuget:\n\n```\ndotnet new -i \"Fable.Template.Library::*\"\n```\n\n### Use the new template:\n\n```\ndotnet new fable-library -n CoolFableLibrary\ncd CoolFableLibrary\n./build.sh\n```\n\n\n## Builds\n\nMacOS/Linux | Windows\n:---: | :---:\n[![Travis Badge](https://travis-ci.org/TheAngryByrd/Fable.Template.Library.svg?branch=master)](https://travis-ci.org/TheAngryByrd/Fable.Template.Library) | [![Build status](https://ci.appveyor.com/api/projects/status/github/TheAngryByrd/Fable.Template.Library?svg=true)](https://ci.appveyor.com/project/TheAngryByrd/fable-template-library)\n[![Build History](https://buildstats.info/travisci/chart/TheAngryByrd/Fable.Template.Library)](https://travis-ci.org/TheAngryByrd/Fable.Template.Library/builds) | [![Build History](https://buildstats.info/appveyor/chart/TheAngryByrd/fable-template-library)](https://ci.appveyor.com/project/TheAngryByrd/fable-template-library)\n\n## Nuget\n\n\nStable | Prerelease\n:---: | :---:\n[![NuGet Badge](https://buildstats.info/nuget/Fable.Template.Library)](https://www.nuget.org/packages/Fable.Template.Library/) | [![NuGet Badge](https://buildstats.info/nuget/Fable.Template.Library?includePreReleases=true)](https://www.nuget.org/packages/Fable.Template.Library/)\n\n## Building\n\nMake sure the following **requirements** are installed in your system:\n\n* [dotnet SDK](https://www.microsoft.com/net/download/core) 2.0 or higher\n* [node.js](https://nodejs.org) 6.11 or higher\n* [yarn](https://yarnpkg.com)\n* [Mono](http://www.mono-project.com/) if you're on Linux or macOS.\n\nThen you just need to type `./build.cmd` or `./build.sh`\n\n\n## A note about Fable Libraries vs Fable Bindings\n\nThere are two kinds of Fable packages:\n\n- **JS Bindings**: These don't contain any actual code, only signatures and attributes normally generated by [ts2fable](https://www.npmjs.com/package/ts2fable). They're just used to provide a type-safe to interact with a JS library from Fable.\n- **Libraries**: These contain F# code that will be compiled to JS by Fable when being referenced by a consumer project.\n\nThe distinction is important because Fable can read metadata from .dll assemblies (like signatures and attributes) but not executable code, for that it needs the **F# sources**. For JS bindings _without actual code_ you don't need to worry as they can be distributed as any other Nuget package. However, Fable libraries need a couple of extra steps:\n\n- First, the package must contain a folder named **fable** with the F# sources (and if necessary other files like JS scripts).\n- The `fable` folder must contain an **.fsproj file with the same name as the Nuget package**.\n\nThis is not difficult to do and usually only requires adding a tag to your project file ([example](https://github.com/fable-compiler/fable-react-native/blob/6a7cc0e5074b985ef94e49a631cb8285eb9950c8/src/Fable.React.Native.fsproj#L32-L34)), but you need to make sure all the sources get into the package with the proper directory structure. Also, take into account Fable will just make a simple XML parsing to extract the source files from the .fsproj, so you should avoid MSBuild conditionals, etc.\n\nBecause Fable will compile your sources you must be careful with compiler directives too (like `#if MY_SYMBOL`, etc). Though you can use this to your advantage and do some logging in debug mode (`#if DEBUG`). And remember also that Fable will always define the `FABLE_COMPILER` symbol when compiling to JS.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTheAngryByrd%2FFable.Template.Library","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FTheAngryByrd%2FFable.Template.Library","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTheAngryByrd%2FFable.Template.Library/lists"}