├── fsx-script ├── .npmrc ├── .paket │ ├── load │ │ └── netstandard2.0 │ │ │ ├── dev │ │ │ └── dev.group.fsx │ │ │ ├── Fable.Core.csx │ │ │ ├── Fable.Core.fsx │ │ │ ├── Fable.Elmish.csx │ │ │ ├── Fable.Elmish.fsx │ │ │ ├── Fable.Browser.Blob.csx │ │ │ ├── Fable.Browser.Blob.fsx │ │ │ ├── Fable.Browser.Event.csx │ │ │ ├── Fable.Browser.Event.fsx │ │ │ ├── Fable.React.csx │ │ │ ├── Fable.React.fsx │ │ │ ├── Fable.Browser.WebStorage.csx │ │ │ ├── Fable.Browser.WebStorage.fsx │ │ │ ├── Fable.Elmish.React.csx │ │ │ ├── Fable.Elmish.React.fsx │ │ │ ├── Fable.Browser.Dom.csx │ │ │ ├── Fable.Browser.Dom.fsx │ │ │ ├── main.group.fsx │ │ │ └── main.group.csx │ └── Paket.Restore.targets ├── public │ ├── fable.ico │ └── index.html ├── .config │ └── dotnet-tools.json ├── README.md ├── paket.dependencies ├── package.json ├── webpack.config.js ├── src │ └── App.fsx ├── paket.lock └── .gitignore ├── fulma ├── README.md └── .gitignore ├── nodejsbundle ├── build │ └── main.js ├── src │ ├── App.fsproj │ └── App.fs ├── package.json ├── webpack.config.js ├── README.md └── .gitignore ├── browser ├── public │ ├── fable.ico │ └── index.html ├── package.json ├── src │ ├── App.fsproj │ └── App.fs ├── webpack.config.js ├── README.md └── .gitignore ├── interop ├── public │ ├── fable.ico │ ├── alert.js │ ├── index.html │ ├── MyClass.js │ └── canvas.js ├── package.json ├── src │ ├── App.fsproj │ └── App.fs ├── webpack.config.js ├── README.md └── .gitignore ├── minimal ├── public │ ├── fable.ico │ └── index.html ├── Nuget.Config ├── src │ ├── App.fsproj │ └── App.fs ├── package.json ├── webpack.config.js ├── README.md └── .gitignore ├── withpaket ├── src │ ├── paket.references │ ├── App.fsproj │ └── App.fs ├── public │ ├── fable.ico │ └── index.html ├── paket.dependencies ├── .config │ └── dotnet-tools.json ├── package.json ├── webpack.config.js ├── paket.lock ├── README.md ├── .gitignore └── .paket │ └── Paket.Restore.targets ├── promises ├── public │ ├── fable.ico │ └── index.html ├── package.json ├── src │ ├── App.fsproj │ └── App.fs ├── webpack.config.js ├── README.md └── .gitignore ├── mocha ├── src │ ├── App.fs │ └── App.fsproj ├── tests │ ├── Tests.fsproj │ └── Tests.fs ├── package.json ├── README.md └── .gitignore ├── interopFableFromJS ├── public │ ├── fable.ico │ └── index.html ├── src │ ├── App.fs │ └── App.fsproj ├── package.json ├── webpack.config.js ├── README.md └── .gitignore ├── reactComponent ├── .npmignore ├── src │ ├── react-sample-component.fsproj │ └── index.fs ├── package.json ├── webpack.config.js ├── README.md └── .gitignore ├── nodejs ├── package.json ├── src │ ├── App.fsproj │ └── App.fs ├── README.md └── .gitignore ├── LICENSE ├── README.md └── .gitignore /fsx-script/.npmrc: -------------------------------------------------------------------------------- 1 | registry=https://registry.npmjs.org/ -------------------------------------------------------------------------------- /fsx-script/.paket/load/netstandard2.0/dev/dev.group.fsx: -------------------------------------------------------------------------------- 1 | namespace PaketLoadScripts 2 | -------------------------------------------------------------------------------- /fulma/README.md: -------------------------------------------------------------------------------- 1 | # Fable 2 Fulma 2 | 3 | See https://github.com/MangelMaxime/fulma-demo -------------------------------------------------------------------------------- /nodejsbundle/build/main.js: -------------------------------------------------------------------------------- 1 | var app = require("./App.js"); 2 | exports.main = app.app.main; -------------------------------------------------------------------------------- /browser/public/fable.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fable-compiler/fable2-samples/HEAD/browser/public/fable.ico -------------------------------------------------------------------------------- /interop/public/fable.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fable-compiler/fable2-samples/HEAD/interop/public/fable.ico -------------------------------------------------------------------------------- /minimal/public/fable.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fable-compiler/fable2-samples/HEAD/minimal/public/fable.ico -------------------------------------------------------------------------------- /withpaket/src/paket.references: -------------------------------------------------------------------------------- 1 | Fable.Core 2 | Fable.Promise 3 | Fable.Fetch 4 | Fable.Browser.Dom 5 | Thoth.Json -------------------------------------------------------------------------------- /promises/public/fable.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fable-compiler/fable2-samples/HEAD/promises/public/fable.ico -------------------------------------------------------------------------------- /withpaket/public/fable.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fable-compiler/fable2-samples/HEAD/withpaket/public/fable.ico -------------------------------------------------------------------------------- /fsx-script/public/fable.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fable-compiler/fable2-samples/HEAD/fsx-script/public/fable.ico -------------------------------------------------------------------------------- /mocha/src/App.fs: -------------------------------------------------------------------------------- 1 | module App 2 | 3 | open Fable.Core.JsInterop 4 | open Fable.Import 5 | 6 | let randomFeature() = [1;2;3] -------------------------------------------------------------------------------- /interopFableFromJS/public/fable.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fable-compiler/fable2-samples/HEAD/interopFableFromJS/public/fable.ico -------------------------------------------------------------------------------- /reactComponent/.npmignore: -------------------------------------------------------------------------------- 1 | src/bin 2 | src/obj 3 | yarn-error.log 4 | yarn-debug.log 5 | npm-debug.log 6 | *.tgz 7 | yarn.lock 8 | 9 | -------------------------------------------------------------------------------- /interopFableFromJS/src/App.fs: -------------------------------------------------------------------------------- 1 | module App 2 | 3 | open Fable.Core.JsInterop 4 | open Fable.Import 5 | open Fable.Core 6 | 7 | let sayHelloFable() = "Hello Fable!" -------------------------------------------------------------------------------- /interop/public/alert.js: -------------------------------------------------------------------------------- 1 | function triggerAlert( message) { 2 | alert(message); 3 | } 4 | 5 | const someString = "And I Like that!"; 6 | 7 | export { triggerAlert, someString }; 8 | -------------------------------------------------------------------------------- /fsx-script/.paket/load/netstandard2.0/Fable.Core.csx: -------------------------------------------------------------------------------- 1 | namespace PaketLoadScripts 2 | 3 | #r "C:\\Users\\Maxime\\.nuget\\packages\\fable.core\\3.1.5\\lib\\netstandard2.0\\Fable.Core.dll" -------------------------------------------------------------------------------- /fsx-script/.paket/load/netstandard2.0/Fable.Core.fsx: -------------------------------------------------------------------------------- 1 | namespace PaketLoadScripts 2 | 3 | #r "C:\\Users\\Maxime\\.nuget\\packages\\fable.core\\3.1.5\\lib\\netstandard2.0\\Fable.Core.dll" -------------------------------------------------------------------------------- /withpaket/paket.dependencies: -------------------------------------------------------------------------------- 1 | source https://nuget.org/api/v2 2 | storage:none 3 | 4 | nuget Fable.Core 5 | nuget Fable.Promise 6 | nuget Fable.Fetch 7 | nuget Fable.Browser.Dom 8 | nuget Thoth.Json 9 | -------------------------------------------------------------------------------- /withpaket/.config/dotnet-tools.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": 1, 3 | "isRoot": true, 4 | "tools": { 5 | "paket": { 6 | "version": "5.242.2", 7 | "commands": [ 8 | "paket" 9 | ] 10 | } 11 | } 12 | } -------------------------------------------------------------------------------- /fsx-script/.config/dotnet-tools.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": 1, 3 | "isRoot": true, 4 | "tools": { 5 | "paket": { 6 | "version": "5.242.2", 7 | "commands": [ 8 | "paket" 9 | ] 10 | } 11 | } 12 | } -------------------------------------------------------------------------------- /withpaket/src/App.fsproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | netstandard2.0 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /fsx-script/.paket/load/netstandard2.0/Fable.Elmish.csx: -------------------------------------------------------------------------------- 1 | namespace PaketLoadScripts 2 | 3 | #load "C:\\Users\\Maxime\\Documents\\Workspaces\\Github\\Fable\\fable2-samples\\fsx-script\\.paket\\load\\netstandard2.0\\Fable.Core.csx" 4 | #r "C:\\Users\\Maxime\\.nuget\\packages\\fable.elmish\\3.0.6\\lib\\netstandard2.0\\Fable.Elmish.dll" -------------------------------------------------------------------------------- /fsx-script/.paket/load/netstandard2.0/Fable.Elmish.fsx: -------------------------------------------------------------------------------- 1 | namespace PaketLoadScripts 2 | 3 | #load "C:\\Users\\Maxime\\Documents\\Workspaces\\Github\\Fable\\fable2-samples\\fsx-script\\.paket\\load\\netstandard2.0\\Fable.Core.fsx" 4 | #r "C:\\Users\\Maxime\\.nuget\\packages\\fable.elmish\\3.0.6\\lib\\netstandard2.0\\Fable.Elmish.dll" -------------------------------------------------------------------------------- /fsx-script/.paket/load/netstandard2.0/Fable.Browser.Blob.csx: -------------------------------------------------------------------------------- 1 | namespace PaketLoadScripts 2 | 3 | #load "C:\\Users\\Maxime\\Documents\\Workspaces\\Github\\Fable\\fable2-samples\\fsx-script\\.paket\\load\\netstandard2.0\\Fable.Core.csx" 4 | #r "C:\\Users\\Maxime\\.nuget\\packages\\fable.browser.blob\\1.1.0\\lib\\netstandard2.0\\Browser.Blob.dll" -------------------------------------------------------------------------------- /fsx-script/.paket/load/netstandard2.0/Fable.Browser.Blob.fsx: -------------------------------------------------------------------------------- 1 | namespace PaketLoadScripts 2 | 3 | #load "C:\\Users\\Maxime\\Documents\\Workspaces\\Github\\Fable\\fable2-samples\\fsx-script\\.paket\\load\\netstandard2.0\\Fable.Core.fsx" 4 | #r "C:\\Users\\Maxime\\.nuget\\packages\\fable.browser.blob\\1.1.0\\lib\\netstandard2.0\\Browser.Blob.dll" -------------------------------------------------------------------------------- /fsx-script/.paket/load/netstandard2.0/Fable.Browser.Event.csx: -------------------------------------------------------------------------------- 1 | namespace PaketLoadScripts 2 | 3 | #load "C:\\Users\\Maxime\\Documents\\Workspaces\\Github\\Fable\\fable2-samples\\fsx-script\\.paket\\load\\netstandard2.0\\Fable.Core.csx" 4 | #r "C:\\Users\\Maxime\\.nuget\\packages\\fable.browser.event\\1.0.0\\lib\\netstandard2.0\\Browser.Event.dll" -------------------------------------------------------------------------------- /fsx-script/.paket/load/netstandard2.0/Fable.Browser.Event.fsx: -------------------------------------------------------------------------------- 1 | namespace PaketLoadScripts 2 | 3 | #load "C:\\Users\\Maxime\\Documents\\Workspaces\\Github\\Fable\\fable2-samples\\fsx-script\\.paket\\load\\netstandard2.0\\Fable.Core.fsx" 4 | #r "C:\\Users\\Maxime\\.nuget\\packages\\fable.browser.event\\1.0.0\\lib\\netstandard2.0\\Browser.Event.dll" -------------------------------------------------------------------------------- /mocha/src/App.fsproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | netstandard2.0 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /browser/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "private": true, 3 | "scripts": { 4 | "start": "webpack-dev-server" 5 | }, 6 | "dependencies": { 7 | "@babel/core": "^7.8.7", 8 | "fable-compiler": "^2.4.18", 9 | "fable-loader": "^2.1.8", 10 | "webpack": "^4.42.0", 11 | "webpack-cli": "^3.3.12", 12 | "webpack-dev-server": "^4.11.1" 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /interop/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "private": true, 3 | "scripts": { 4 | "start": "webpack-dev-server" 5 | }, 6 | "dependencies": { 7 | "@babel/core": "^7.8.7", 8 | "fable-compiler": "^2.4.18", 9 | "fable-loader": "^2.1.8", 10 | "webpack": "^4.42.0", 11 | "webpack-cli": "^3.3.12", 12 | "webpack-dev-server": "^4.11.1" 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /promises/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "private": true, 3 | "scripts": { 4 | "start": "webpack-dev-server" 5 | }, 6 | "dependencies": { 7 | "@babel/core": "^7.8.7", 8 | "fable-compiler": "^2.4.18", 9 | "fable-loader": "^2.1.8", 10 | "webpack": "^4.42.0", 11 | "webpack-cli": "^3.3.12", 12 | "webpack-dev-server": "^4.11.1" 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /interopFableFromJS/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "private": true, 3 | "scripts": { 4 | "start": "webpack-dev-server" 5 | }, 6 | "dependencies": { 7 | "@babel/core": "^7.8.7", 8 | "fable-compiler": "^2.4.18", 9 | "fable-loader": "^2.1.8", 10 | "webpack": "^4.42.0", 11 | "webpack-cli": "^3.3.12", 12 | "webpack-dev-server": "^4.11.1" 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /nodejs/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "private": true, 3 | "scripts": { 4 | "build": "fable-splitter src -o build --commonjs", 5 | "test": "node build/App.js" 6 | }, 7 | "dependencies": { 8 | "@babel/core": "^7.8.7", 9 | "fable-compiler": "^2.4.18", 10 | "fable-loader": "^2.1.8", 11 | "fable-splitter": "^2.1.12", 12 | "isomorphic-fetch": "^2.2.1" 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /minimal/Nuget.Config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /withpaket/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "private": true, 3 | "scripts": { 4 | "postinstall": "dotnet tool restore", 5 | "start": "webpack-dev-server" 6 | }, 7 | "dependencies": { 8 | "@babel/core": "^7.8.7", 9 | "fable-compiler": "^2.4.18", 10 | "fable-loader": "^2.1.8", 11 | "webpack": "^4.42.0", 12 | "webpack-cli": "^3.3.12", 13 | "webpack-dev-server": "^4.11.1" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /browser/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Fable 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /promises/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Fable 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | -------------------------------------------------------------------------------- /browser/src/App.fsproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | netstandard2.0 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /interop/src/App.fsproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | netstandard2.0 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /minimal/src/App.fsproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | netstandard2.0 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /withpaket/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Fable 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /minimal/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "private": true, 3 | "scripts": { 4 | "start": "webpack-dev-server" 5 | }, 6 | "dependencies": { 7 | "@babel/core": "^7.8.7", 8 | "fable-compiler": "^2.4.18", 9 | "fable-loader": "^2.1.8", 10 | "react": "^16.13.0", 11 | "react-dom": "^16.13.0", 12 | "webpack": "^4.42.0", 13 | "webpack-cli": "^3.3.12", 14 | "webpack-dev-server": "^4.11.1" 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /fsx-script/README.md: -------------------------------------------------------------------------------- 1 | # Fable 2.3 ~ Compiling script 2 | 3 | ## Requirements 4 | 5 | Paket should be installed as global cli tool: 6 | 7 | > dotnet tool install -g Paket 8 | 9 | ## Installation 10 | 11 | > npm i 12 | 13 | Installs both `node_modules` and `paket references`. 14 | Generates `.paket/load/netstandard2.0/main.group.fsx` afterwards. 15 | 16 | ## Build 17 | 18 | > npm run build 19 | 20 | ## Run 21 | 22 | > npm start -------------------------------------------------------------------------------- /interopFableFromJS/src/App.fsproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | netstandard2.0 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /minimal/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Fable 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | -------------------------------------------------------------------------------- /fsx-script/paket.dependencies: -------------------------------------------------------------------------------- 1 | storage: none 2 | generate_load_scripts: true 3 | source https://www.nuget.org/api/v2 4 | framework: netstandard2.0 5 | 6 | nuget Fable.Elmish.React 7 | 8 | // Needed for intellisense workaround in Ionide 9 | // See https://github.com/ionide/ionide-vscode-fsharp/issues/839#issuecomment-396296095 10 | group dev 11 | source https://www.nuget.org/api/v2 12 | framework: netstandard2.0 13 | 14 | nuget NETStandard.Library -------------------------------------------------------------------------------- /mocha/tests/Tests.fsproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | netstandard2.0 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /interop/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Fable 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /fsx-script/.paket/load/netstandard2.0/Fable.React.csx: -------------------------------------------------------------------------------- 1 | namespace PaketLoadScripts 2 | 3 | #load "C:\\Users\\Maxime\\Documents\\Workspaces\\Github\\Fable\\fable2-samples\\fsx-script\\.paket\\load\\netstandard2.0\\Fable.Browser.Dom.csx" 4 | #load "C:\\Users\\Maxime\\Documents\\Workspaces\\Github\\Fable\\fable2-samples\\fsx-script\\.paket\\load\\netstandard2.0\\Fable.Core.csx" 5 | #r "C:\\Users\\Maxime\\.nuget\\packages\\fable.react\\5.3.6\\lib\\netstandard2.0\\Fable.React.dll" -------------------------------------------------------------------------------- /fsx-script/.paket/load/netstandard2.0/Fable.React.fsx: -------------------------------------------------------------------------------- 1 | namespace PaketLoadScripts 2 | 3 | #load "C:\\Users\\Maxime\\Documents\\Workspaces\\Github\\Fable\\fable2-samples\\fsx-script\\.paket\\load\\netstandard2.0\\Fable.Browser.Dom.fsx" 4 | #load "C:\\Users\\Maxime\\Documents\\Workspaces\\Github\\Fable\\fable2-samples\\fsx-script\\.paket\\load\\netstandard2.0\\Fable.Core.fsx" 5 | #r "C:\\Users\\Maxime\\.nuget\\packages\\fable.react\\5.3.6\\lib\\netstandard2.0\\Fable.React.dll" -------------------------------------------------------------------------------- /interop/public/MyClass.js: -------------------------------------------------------------------------------- 1 | class MyClass { 2 | constructor( value ) { 3 | this.awesomeInteger = value; 4 | } 5 | 6 | get awesomeInteger() { 7 | return this._awesomeInteger; 8 | } 9 | 10 | set awesomeInteger( newValue ) { 11 | this._awesomeInteger = newValue; 12 | } 13 | 14 | isAwesome() { 15 | return this._awesomeInteger === 42; 16 | } 17 | 18 | static getPI() { 19 | return Math.PI; 20 | } 21 | } 22 | 23 | export { MyClass as default} -------------------------------------------------------------------------------- /nodejs/src/App.fsproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | netstandard2.0 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /nodejsbundle/src/App.fsproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | netstandard2.0 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /interopFableFromJS/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Fable 5 | 6 | 7 | 8 | 9 | 10 | 11 | 14 | 15 | -------------------------------------------------------------------------------- /fsx-script/.paket/load/netstandard2.0/Fable.Browser.WebStorage.csx: -------------------------------------------------------------------------------- 1 | namespace PaketLoadScripts 2 | 3 | #load "C:\\Users\\Maxime\\Documents\\Workspaces\\Github\\Fable\\fable2-samples\\fsx-script\\.paket\\load\\netstandard2.0\\Fable.Browser.Event.csx" 4 | #load "C:\\Users\\Maxime\\Documents\\Workspaces\\Github\\Fable\\fable2-samples\\fsx-script\\.paket\\load\\netstandard2.0\\Fable.Core.csx" 5 | #r "C:\\Users\\Maxime\\.nuget\\packages\\fable.browser.webstorage\\1.0.0\\lib\\netstandard2.0\\Browser.WebStorage.dll" -------------------------------------------------------------------------------- /fsx-script/.paket/load/netstandard2.0/Fable.Browser.WebStorage.fsx: -------------------------------------------------------------------------------- 1 | namespace PaketLoadScripts 2 | 3 | #load "C:\\Users\\Maxime\\Documents\\Workspaces\\Github\\Fable\\fable2-samples\\fsx-script\\.paket\\load\\netstandard2.0\\Fable.Browser.Event.fsx" 4 | #load "C:\\Users\\Maxime\\Documents\\Workspaces\\Github\\Fable\\fable2-samples\\fsx-script\\.paket\\load\\netstandard2.0\\Fable.Core.fsx" 5 | #r "C:\\Users\\Maxime\\.nuget\\packages\\fable.browser.webstorage\\1.0.0\\lib\\netstandard2.0\\Browser.WebStorage.dll" -------------------------------------------------------------------------------- /mocha/tests/Tests.fs: -------------------------------------------------------------------------------- 1 | module Tests 2 | 3 | open Fable.Core 4 | open Fable.Core.JsInterop 5 | open App 6 | 7 | let inline equal (expected: 'T) (actual: 'T): unit = 8 | Testing.Assert.AreEqual(expected, actual) 9 | 10 | let [] describe (name: string) (f: unit->unit) = jsNative 11 | let [] it (msg: string) (f: unit->unit) = jsNative 12 | 13 | describe "my tests" <| fun _ -> 14 | it "calls App.randomFeature() successfully" <| fun () -> 15 | randomFeature() |> Seq.sum = 6 |> equal true 16 | -------------------------------------------------------------------------------- /mocha/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "private": true, 3 | "scripts": { 4 | "build": "fable-splitter src -o build --commonjs", 5 | "testApp": "node build/App.js", 6 | "pretest": "fable-splitter tests -o build --commonjs", 7 | "test": "mocha build -t 10000" 8 | }, 9 | "dependencies": { 10 | "@babel/core": "^7.8.7", 11 | "fable-compiler": "^2.4.18", 12 | "fable-loader": "^2.1.8", 13 | "mocha": "^10.1.0", 14 | "fable-splitter": "^2.1.12", 15 | "isomorphic-fetch": "^2.2.1" 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /fsx-script/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "private": true, 3 | "dependencies": { 4 | "@babel/core": "7.8.7", 5 | "fable-compiler": "2.4.18", 6 | "fable-loader": "2.1.8", 7 | "webpack": "4.42.0", 8 | "webpack-cli": "3.3.12", 9 | "webpack-dev-server": "4.11.1" 10 | }, 11 | "scripts": { 12 | "postinstall": "dotnet tool restore && dotnet paket restore && dotnet paket generate-load-scripts -f netstandard2.0 -t fsx", 13 | "start": "webpack-dev-server", 14 | "build": "webpack -p" 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /nodejsbundle/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "private": true, 3 | "scripts": { 4 | "build": "npx webpack --config webpack.config.js", 5 | "test": "node build/main.js" 6 | }, 7 | "dependencies": { 8 | "@babel/core": "^7.8.7", 9 | "@babel/preset-env": "^7.8.7", 10 | "babel-loader": "^8.0.6", 11 | "fable-compiler": "^2.4.18", 12 | "fable-loader": "^2.1.8", 13 | "isomorphic-fetch": "^2.2.1", 14 | "webpack": "^4.42.0" 15 | }, 16 | "devDependencies": { 17 | "webpack-cli": "^3.3.12" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /reactComponent/src/react-sample-component.fsproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netstandard2.0 5 | react-sample-component 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /fsx-script/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Fable fsx sample 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /fsx-script/.paket/load/netstandard2.0/Fable.Elmish.React.csx: -------------------------------------------------------------------------------- 1 | namespace PaketLoadScripts 2 | 3 | #load "C:\\Users\\Maxime\\Documents\\Workspaces\\Github\\Fable\\fable2-samples\\fsx-script\\.paket\\load\\netstandard2.0\\Fable.Core.csx" 4 | #load "C:\\Users\\Maxime\\Documents\\Workspaces\\Github\\Fable\\fable2-samples\\fsx-script\\.paket\\load\\netstandard2.0\\Fable.Elmish.csx" 5 | #load "C:\\Users\\Maxime\\Documents\\Workspaces\\Github\\Fable\\fable2-samples\\fsx-script\\.paket\\load\\netstandard2.0\\Fable.React.csx" 6 | #r "C:\\Users\\Maxime\\.nuget\\packages\\fable.elmish.react\\3.0.1\\lib\\netstandard2.0\\Fable.Elmish.React.dll" -------------------------------------------------------------------------------- /fsx-script/.paket/load/netstandard2.0/Fable.Elmish.React.fsx: -------------------------------------------------------------------------------- 1 | namespace PaketLoadScripts 2 | 3 | #load "C:\\Users\\Maxime\\Documents\\Workspaces\\Github\\Fable\\fable2-samples\\fsx-script\\.paket\\load\\netstandard2.0\\Fable.Core.fsx" 4 | #load "C:\\Users\\Maxime\\Documents\\Workspaces\\Github\\Fable\\fable2-samples\\fsx-script\\.paket\\load\\netstandard2.0\\Fable.Elmish.fsx" 5 | #load "C:\\Users\\Maxime\\Documents\\Workspaces\\Github\\Fable\\fable2-samples\\fsx-script\\.paket\\load\\netstandard2.0\\Fable.React.fsx" 6 | #r "C:\\Users\\Maxime\\.nuget\\packages\\fable.elmish.react\\3.0.1\\lib\\netstandard2.0\\Fable.Elmish.React.dll" -------------------------------------------------------------------------------- /promises/src/App.fsproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | netstandard2.0 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /browser/webpack.config.js: -------------------------------------------------------------------------------- 1 | // Note this only includes basic configuration for development mode. 2 | // For a more comprehensive configuration check: 3 | // https://github.com/fable-compiler/webpack-config-template 4 | 5 | var path = require("path"); 6 | 7 | module.exports = { 8 | mode: "development", 9 | entry: "./src/App.fsproj", 10 | output: { 11 | path: path.join(__dirname, "./public"), 12 | filename: "bundle.js", 13 | }, 14 | devServer: { 15 | contentBase: "./public", 16 | port: 8080, 17 | }, 18 | module: { 19 | rules: [{ 20 | test: /\.fs(x|proj)?$/, 21 | use: "fable-loader" 22 | }] 23 | } 24 | } -------------------------------------------------------------------------------- /interop/webpack.config.js: -------------------------------------------------------------------------------- 1 | // Note this only includes basic configuration for development mode. 2 | // For a more comprehensive configuration check: 3 | // https://github.com/fable-compiler/webpack-config-template 4 | 5 | var path = require("path"); 6 | 7 | module.exports = { 8 | mode: "development", 9 | entry: "./src/App.fsproj", 10 | output: { 11 | path: path.join(__dirname, "./public"), 12 | filename: "bundle.js", 13 | }, 14 | devServer: { 15 | contentBase: "./public", 16 | port: 8080, 17 | }, 18 | module: { 19 | rules: [{ 20 | test: /\.fs(x|proj)?$/, 21 | use: "fable-loader" 22 | }] 23 | } 24 | } -------------------------------------------------------------------------------- /minimal/webpack.config.js: -------------------------------------------------------------------------------- 1 | // Note this only includes basic configuration for development mode. 2 | // For a more comprehensive configuration check: 3 | // https://github.com/fable-compiler/webpack-config-template 4 | 5 | var path = require("path"); 6 | 7 | module.exports = { 8 | mode: "development", 9 | entry: "./src/App.fsproj", 10 | output: { 11 | path: path.join(__dirname, "./public"), 12 | filename: "bundle.js", 13 | }, 14 | devServer: { 15 | contentBase: "./public", 16 | port: 8080, 17 | }, 18 | module: { 19 | rules: [{ 20 | test: /\.fs(x|proj)?$/, 21 | use: "fable-loader" 22 | }] 23 | } 24 | } -------------------------------------------------------------------------------- /promises/webpack.config.js: -------------------------------------------------------------------------------- 1 | // Note this only includes basic configuration for development mode. 2 | // For a more comprehensive configuration check: 3 | // https://github.com/fable-compiler/webpack-config-template 4 | 5 | var path = require("path"); 6 | 7 | module.exports = { 8 | mode: "development", 9 | entry: "./src/App.fsproj", 10 | output: { 11 | path: path.join(__dirname, "./public"), 12 | filename: "bundle.js", 13 | }, 14 | devServer: { 15 | contentBase: "./public", 16 | port: 8080, 17 | }, 18 | module: { 19 | rules: [{ 20 | test: /\.fs(x|proj)?$/, 21 | use: "fable-loader" 22 | }] 23 | } 24 | } -------------------------------------------------------------------------------- /withpaket/webpack.config.js: -------------------------------------------------------------------------------- 1 | // Note this only includes basic configuration for development mode. 2 | // For a more comprehensive configuration check: 3 | // https://github.com/fable-compiler/webpack-config-template 4 | 5 | var path = require("path"); 6 | 7 | module.exports = { 8 | mode: "development", 9 | entry: "./src/App.fsproj", 10 | output: { 11 | path: path.join(__dirname, "./public"), 12 | filename: "bundle.js", 13 | }, 14 | devServer: { 15 | contentBase: "./public", 16 | port: 8080, 17 | }, 18 | module: { 19 | rules: [{ 20 | test: /\.fs(x|proj)?$/, 21 | use: "fable-loader" 22 | }] 23 | } 24 | } -------------------------------------------------------------------------------- /fsx-script/webpack.config.js: -------------------------------------------------------------------------------- 1 | const path = require("path"); 2 | 3 | module.exports = { 4 | entry: './src/App.fsx', 5 | output: { 6 | path: path.join(__dirname, "./public"), 7 | filename: "bundle.js", 8 | }, 9 | mode: "development", 10 | devServer: { 11 | contentBase: "./public", 12 | port: 8080, 13 | }, 14 | module: { 15 | rules: [ 16 | { 17 | test: /\.fs(x|proj)?$/, 18 | use: { 19 | loader: "fable-loader" 20 | } 21 | } 22 | ] 23 | }, 24 | externals: { 25 | "react": "React", 26 | "react-dom": "ReactDOM", 27 | } 28 | }; 29 | -------------------------------------------------------------------------------- /nodejs/src/App.fs: -------------------------------------------------------------------------------- 1 | module App 2 | 3 | open Fable.Core.JsInterop 4 | open Fable.Import 5 | open Fetch 6 | 7 | importSideEffects "isomorphic-fetch" 8 | 9 | // we get a json from our fetch request with a url field 10 | // so we create this type to map the json object 11 | type PictureInfo = { Url : string } 12 | 13 | // This function will fetch a random dog url every reload of the page 14 | let getRandomDogImage url = 15 | fetch url [] // use the fetch api to load our resource 16 | |> Promise.bind (fun res -> res.text()) // get the resul 17 | |> Promise.map (fun txt -> // bind the result to make further operation 18 | printfn "Result: %s" txt 19 | ) 20 | 21 | // start our app! 22 | getRandomDogImage "https://random.dog/woof.json" |> ignore 23 | 24 | -------------------------------------------------------------------------------- /fsx-script/.paket/load/netstandard2.0/Fable.Browser.Dom.csx: -------------------------------------------------------------------------------- 1 | namespace PaketLoadScripts 2 | 3 | #load "C:\\Users\\Maxime\\Documents\\Workspaces\\Github\\Fable\\fable2-samples\\fsx-script\\.paket\\load\\netstandard2.0\\Fable.Browser.Blob.csx" 4 | #load "C:\\Users\\Maxime\\Documents\\Workspaces\\Github\\Fable\\fable2-samples\\fsx-script\\.paket\\load\\netstandard2.0\\Fable.Browser.Event.csx" 5 | #load "C:\\Users\\Maxime\\Documents\\Workspaces\\Github\\Fable\\fable2-samples\\fsx-script\\.paket\\load\\netstandard2.0\\Fable.Browser.WebStorage.csx" 6 | #load "C:\\Users\\Maxime\\Documents\\Workspaces\\Github\\Fable\\fable2-samples\\fsx-script\\.paket\\load\\netstandard2.0\\Fable.Core.csx" 7 | #r "C:\\Users\\Maxime\\.nuget\\packages\\fable.browser.dom\\1.1.0\\lib\\netstandard2.0\\Browser.Dom.dll" -------------------------------------------------------------------------------- /fsx-script/.paket/load/netstandard2.0/Fable.Browser.Dom.fsx: -------------------------------------------------------------------------------- 1 | namespace PaketLoadScripts 2 | 3 | #load "C:\\Users\\Maxime\\Documents\\Workspaces\\Github\\Fable\\fable2-samples\\fsx-script\\.paket\\load\\netstandard2.0\\Fable.Browser.Blob.fsx" 4 | #load "C:\\Users\\Maxime\\Documents\\Workspaces\\Github\\Fable\\fable2-samples\\fsx-script\\.paket\\load\\netstandard2.0\\Fable.Browser.Event.fsx" 5 | #load "C:\\Users\\Maxime\\Documents\\Workspaces\\Github\\Fable\\fable2-samples\\fsx-script\\.paket\\load\\netstandard2.0\\Fable.Browser.WebStorage.fsx" 6 | #load "C:\\Users\\Maxime\\Documents\\Workspaces\\Github\\Fable\\fable2-samples\\fsx-script\\.paket\\load\\netstandard2.0\\Fable.Core.fsx" 7 | #r "C:\\Users\\Maxime\\.nuget\\packages\\fable.browser.dom\\1.1.0\\lib\\netstandard2.0\\Browser.Dom.dll" -------------------------------------------------------------------------------- /interopFableFromJS/webpack.config.js: -------------------------------------------------------------------------------- 1 | // Note this only includes basic configuration for development mode. 2 | // For a more comprehensive configuration check: 3 | // https://github.com/fable-compiler/webpack-config-template 4 | 5 | var path = require("path"); 6 | 7 | module.exports = { 8 | mode: "development", 9 | entry: "./src/App.fsproj", 10 | output: { 11 | path: path.join(__dirname, "./public"), 12 | filename: "bundle.js", 13 | libraryTarget: 'var', 14 | library: 'MyFableLib' 15 | }, 16 | devServer: { 17 | contentBase: "./public", 18 | port: 8080, 19 | }, 20 | module: { 21 | rules: [{ 22 | test: /\.fs(x|proj)?$/, 23 | use: "fable-loader" 24 | }] 25 | } 26 | } -------------------------------------------------------------------------------- /nodejsbundle/src/App.fs: -------------------------------------------------------------------------------- 1 | module App 2 | 3 | open Fable.Core.JsInterop 4 | open Fable.Import 5 | open Fetch 6 | 7 | importSideEffects "isomorphic-fetch" 8 | 9 | // we get a json from our fetch request with a url field 10 | // so we create this type to map the json object 11 | type PictureInfo = { Url : string } 12 | 13 | // This function will fetch a random dog url every reload of the page 14 | let getRandomDogImage url = 15 | fetch url [] // use the fetch api to load our resource 16 | |> Promise.bind (fun res -> res.text()) // get the resul 17 | |> Promise.map (fun txt -> // bind the result to make further operation 18 | printfn "Result: %s" txt 19 | ) 20 | 21 | // start our app! 22 | getRandomDogImage "https://random.dog/woof.json" |> ignore 23 | 24 | -------------------------------------------------------------------------------- /reactComponent/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "fs-react-component", 3 | "main": "build/index.js", 4 | "homepage": "https://github.com/fable-compiler/fable2-samples", 5 | "license": "MIT", 6 | "peerDependencies": { 7 | "react": "^16.13.0" 8 | }, 9 | "dependencies": { 10 | "core-js": "3.6.4" 11 | }, 12 | "scripts": { 13 | "start": "webpack --watch", 14 | "build": "webpack" 15 | }, 16 | "devDependencies": { 17 | "@babel/core": "^7.8.7", 18 | "@babel/polyfill": "^7.8.7", 19 | "@babel/preset-env": "^7.8.7", 20 | "babel-loader": "^8.0.6", 21 | "fable-compiler": "^2.4.18", 22 | "fable-loader": "^2.1.8", 23 | "react": "^16.13.0", 24 | "webpack": "^4.42.0", 25 | "webpack-cli": "^3.3.11" 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /fsx-script/.paket/load/netstandard2.0/main.group.fsx: -------------------------------------------------------------------------------- 1 | namespace PaketLoadScripts 2 | 3 | #r "C:\\Users\\Maxime\\.nuget\\packages\\fable.elmish.react\\3.0.1\\lib\\netstandard2.0\\Fable.Elmish.React.dll" 4 | #r "C:\\Users\\Maxime\\.nuget\\packages\\fable.browser.blob\\1.1.0\\lib\\netstandard2.0\\Browser.Blob.dll" 5 | #r "C:\\Users\\Maxime\\.nuget\\packages\\fable.browser.event\\1.0.0\\lib\\netstandard2.0\\Browser.Event.dll" 6 | #r "C:\\Users\\Maxime\\.nuget\\packages\\fable.elmish\\3.0.6\\lib\\netstandard2.0\\Fable.Elmish.dll" 7 | #r "C:\\Users\\Maxime\\.nuget\\packages\\fable.react\\5.3.6\\lib\\netstandard2.0\\Fable.React.dll" 8 | #r "C:\\Users\\Maxime\\.nuget\\packages\\fable.browser.webstorage\\1.0.0\\lib\\netstandard2.0\\Browser.WebStorage.dll" 9 | #r "C:\\Users\\Maxime\\.nuget\\packages\\fable.core\\3.1.5\\lib\\netstandard2.0\\Fable.Core.dll" 10 | #r "C:\\Users\\Maxime\\.nuget\\packages\\fable.browser.dom\\1.1.0\\lib\\netstandard2.0\\Browser.Dom.dll" -------------------------------------------------------------------------------- /minimal/src/App.fs: -------------------------------------------------------------------------------- 1 | module App 2 | 3 | (** 4 | The famous Increment/Decrement ported from Elm. 5 | You can find more info about Elmish architecture and samples at https://elmish.github.io/ 6 | *) 7 | 8 | open Elmish 9 | open Elmish.React 10 | open Fable.React 11 | open Fable.React.Props 12 | 13 | // MODEL 14 | 15 | type Model = int 16 | 17 | type Msg = 18 | | Increment 19 | | Decrement 20 | 21 | let init() : Model = 0 22 | 23 | // UPDATE 24 | 25 | let update (msg:Msg) (model:Model) = 26 | match msg with 27 | | Increment -> model + 1 28 | | Decrement -> model - 1 29 | 30 | // VIEW (rendered with React) 31 | 32 | let view (model:Model) dispatch = 33 | 34 | div [] 35 | [ button [ OnClick (fun _ -> dispatch Increment) ] [ str "+" ] 36 | div [] [ str (string model) ] 37 | button [ OnClick (fun _ -> dispatch Decrement) ] [ str "-" ] ] 38 | 39 | // App 40 | Program.mkSimple init update view 41 | |> Program.withReactSynchronous "elmish-app" 42 | |> Program.withConsoleTrace 43 | |> Program.run 44 | -------------------------------------------------------------------------------- /fsx-script/.paket/load/netstandard2.0/main.group.csx: -------------------------------------------------------------------------------- 1 | namespace PaketLoadScripts 2 | 3 | #r "C:\\Users\\Maxime\\.nuget\\packages\\fable.elmish.react\\3.0.1\\lib\\netstandard2.0\\Fable.Elmish.React.dll" 4 | #r "C:\\Users\\Maxime\\.nuget\\packages\\fable.browser.blob\\1.1.0\\lib\\netstandard2.0\\Browser.Blob.dll" 5 | #r "C:\\Users\\Maxime\\.nuget\\packages\\fable.browser.event\\1.0.0\\lib\\netstandard2.0\\Browser.Event.dll" 6 | #r "C:\\Users\\Maxime\\.nuget\\packages\\fable.elmish\\3.0.6\\lib\\netstandard2.0\\Fable.Elmish.dll" 7 | #r "C:\\Users\\Maxime\\.nuget\\packages\\fsharp.core\\4.7.0\\lib\\netstandard2.0\\FSharp.Core.dll" 8 | #r "C:\\Users\\Maxime\\.nuget\\packages\\fable.react\\5.3.6\\lib\\netstandard2.0\\Fable.React.dll" 9 | #r "C:\\Users\\Maxime\\.nuget\\packages\\fable.browser.webstorage\\1.0.0\\lib\\netstandard2.0\\Browser.WebStorage.dll" 10 | #r "C:\\Users\\Maxime\\.nuget\\packages\\fable.core\\3.1.5\\lib\\netstandard2.0\\Fable.Core.dll" 11 | #r "C:\\Users\\Maxime\\.nuget\\packages\\fable.browser.dom\\1.1.0\\lib\\netstandard2.0\\Browser.Dom.dll" -------------------------------------------------------------------------------- /nodejs/README.md: -------------------------------------------------------------------------------- 1 | # Fable Node.js App 2 | 3 | This is a simple Fable Node.js app. 4 | 5 | ## Requirements 6 | 7 | * [dotnet SDK](https://www.microsoft.com/net/download/core) 2.1 or higher 8 | * [node.js](https://nodejs.org) with [npm](https://www.npmjs.com/) 9 | * An F# editor like Visual Studio, Visual Studio Code with [Ionide](http://ionide.io/) or [JetBrains Rider](https://www.jetbrains.com/rider/). 10 | 11 | ## Building and running the app 12 | 13 | * Install JS dependencies: `npm install` 14 | * Build Node.js app `npm run build` 15 | * Try Node.js app `node build/App.js` 16 | 17 | ## Project structure 18 | 19 | ### npm 20 | 21 | JS dependencies are declared in `package.json`, while `package-lock.json` is a lock file automatically generated. 22 | 23 | ### Fable-splitter 24 | 25 | [Fable-splitter]() is a standalone tool which outputs separated files instead of a single bundle. Here all the js files are put into the `build` dir. And the main entry point is our `App.js` file. 26 | 27 | ### F# 28 | 29 | The sample only contains two F# files: the project (.fsproj) and a source file (.fs) in the `src` folder. 30 | -------------------------------------------------------------------------------- /nodejsbundle/webpack.config.js: -------------------------------------------------------------------------------- 1 | var path = require("path"); 2 | 3 | var babelOptions = { 4 | presets: [ 5 | ["@babel/preset-env", { 6 | "targets": { 7 | "node": true, 8 | }, 9 | }] 10 | ], 11 | }; 12 | 13 | console.log("Bundling function..."); 14 | 15 | module.exports = { 16 | mode: "production", 17 | target: "node", 18 | node: { 19 | __dirname: false, 20 | __filename: false, 21 | }, 22 | entry: './src/App.fsproj', 23 | output: { 24 | path: path.join(__dirname, "./build"), 25 | filename: 'App.js', 26 | library:"app", 27 | libraryTarget: 'commonjs' 28 | }, 29 | plugins: [ ], 30 | module: { 31 | rules: [{ 32 | test: /\.fs(x|proj)?$/, 33 | use: { 34 | loader: "fable-loader", 35 | options: { 36 | babel: babelOptions, 37 | define: []  38 | } 39 | } 40 | }, 41 | { 42 | test: /\.js$/, 43 | exclude: /node_modules/, 44 | use: { 45 | loader: 'babel-loader', 46 | options: babelOptions 47 | }, 48 | } 49 | ] 50 | }, 51 | }; -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 Fable 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /mocha/README.md: -------------------------------------------------------------------------------- 1 | # Fable Mocha App 2 | 3 | This is a simple Fable Node.js app featuring a mocha test suite. 4 | 5 | ## Requirements 6 | 7 | * [dotnet SDK](https://www.microsoft.com/net/download/core) 2.1 or higher 8 | * [node.js](https://nodejs.org) with [npm](https://www.npmjs.com/) 9 | * An F# editor like Visual Studio, Visual Studio Code with [Ionide](http://ionide.io/) or [JetBrains Rider](https://www.jetbrains.com/rider/). 10 | 11 | ## Building and running the app 12 | 13 | * Install JS dependencies: `npm install` 14 | * Build Node.js app `npm run build` 15 | * Try Node.js app `node build/App.js` 16 | 17 | ## Building and running the tests 18 | 19 | * Build: `npm run pretest` 20 | * Run: `npm test` 21 | 22 | ## Project structure 23 | 24 | ### npm 25 | 26 | JS dependencies are declared in `package.json`, while `package-lock.json` is a lock file automatically generated. 27 | 28 | ### Fable-splitter 29 | 30 | [Fable-splitter]() is a standalone tool which outputs separated files instead of a single bundle. Here all the js files are put into the `build` dir. And the main entry point is our `App.js` file. 31 | 32 | ### F# 33 | 34 | The sample only contains two F# files: the project (.fsproj) and a source file (.fs) in the `src` folder. 35 | -------------------------------------------------------------------------------- /reactComponent/webpack.config.js: -------------------------------------------------------------------------------- 1 | var path = require('path'); 2 | const babelConf = { 3 | presets: [ 4 | ["@babel/preset-env", { 5 | "modules":false, 6 | "corejs": 3, 7 | "useBuiltIns": "usage" 8 | }] 9 | ]} 10 | module.exports = { 11 | entry: './src/react-sample-component.fsproj', 12 | output: { 13 | path: path.resolve(__dirname, 'build'), 14 | filename: 'index.js', 15 | libraryTarget: 'amd' // This is important 16 | }, 17 | mode: "production", 18 | module: { 19 | rules: [ 20 | { 21 | test: /\.js$/, 22 | include: path.resolve(__dirname, 'split'), 23 | exclude: /(node_modules|build)/, 24 | use: { 25 | loader: 'babel-loader', 26 | options: { 27 | babel: babelConf 28 | } 29 | } 30 | }, 31 | { 32 | test: /\.fs(x|proj)?$/, 33 | use: { 34 | loader: "fable-loader", 35 | options: { 36 | babel: babelConf 37 | } 38 | } 39 | } 40 | ] 41 | }, 42 | externals: { 43 | 'react': 'amd react' // this line is just to use the React dependency of our parent-testing-project instead of using our own React. 44 | } 45 | }; -------------------------------------------------------------------------------- /interop/public/canvas.js: -------------------------------------------------------------------------------- 1 | // samples taken from: https://developer.mozilla.org/fr/docs/Tutoriel_canvas/Formes_g%C3%A9om%C3%A9triques 2 | 3 | export function drawSmiley( id ) { 4 | let canvas = document.getElementById(id); 5 | if (canvas.getContext) { 6 | let ctx = canvas.getContext('2d'); 7 | 8 | ctx.beginPath(); 9 | ctx.arc(75, 75, 50, 0, Math.PI * 2, true); // Cercle extérieur 10 | ctx.moveTo(110,75); 11 | ctx.arc(75, 75, 35, 0, Math.PI, false); // Bouche (sens horaire) 12 | ctx.moveTo(65, 65); 13 | ctx.arc(60, 65, 5, 0, Math.PI * 2, true); // Oeil gauche 14 | ctx.moveTo(95, 65); 15 | ctx.arc(90, 65, 5, 0, Math.PI * 2, true); // Oeil droite 16 | ctx.stroke(); 17 | } 18 | } 19 | 20 | export function drawBubble( id ) { 21 | let canevas = document.getElementById(id); 22 | if (canevas.getContext) { 23 | let ctx = canevas.getContext('2d'); 24 | 25 | ctx.beginPath(); 26 | ctx.moveTo(75, 25); 27 | ctx.quadraticCurveTo(25, 25, 25, 62.5); 28 | ctx.quadraticCurveTo(25, 100, 50, 100); 29 | ctx.quadraticCurveTo(50, 120, 30, 125); 30 | ctx.quadraticCurveTo(60, 120, 65, 100); 31 | ctx.quadraticCurveTo(125, 100, 125, 62.5); 32 | ctx.quadraticCurveTo(125, 25, 75, 25); 33 | ctx.stroke(); 34 | } 35 | } -------------------------------------------------------------------------------- /fsx-script/src/App.fsx: -------------------------------------------------------------------------------- 1 | #load "../.paket/load/netstandard2.0/main.group.fsx" 2 | 3 | // Needed for intellisense in Ionide 4 | #if INTERACTIVE 5 | #r "../packages/dev/NETStandard.Library/build/netstandard2.0/ref/netstandard.dll" 6 | #endif 7 | 8 | (* 9 | The famous Increment/Decrement ported from Elm. 10 | You can find more info about Elmish architecture and samples at https://elmish.github.io/ 11 | *) 12 | 13 | open Elmish 14 | open Elmish.React 15 | open Fable.React 16 | open Fable.React.Props 17 | 18 | // MODEL 19 | 20 | type Model = int 21 | 22 | type Msg = 23 | | Increment 24 | | Decrement 25 | 26 | let init() : Model = 0 27 | 28 | // UPDATE 29 | 30 | let update (msg:Msg) (model:Model) = 31 | match msg with 32 | | Increment -> model + 1 33 | | Decrement -> model - 1 34 | 35 | // VIEW (rendered with React) 36 | 37 | let view (model:Model) dispatch = 38 | 39 | div [ ClassName "container" ] 40 | [ h1 [] [str "Fable fsx sample"] 41 | button [ OnClick (fun _ -> dispatch Increment) ] [ str "+" ] 42 | div [] [ str (string model) ] 43 | button [ OnClick (fun _ -> dispatch Decrement) ] [ str "-" ] ] 44 | 45 | // App 46 | Program.mkSimple init update view 47 | |> Program.withReactBatched "elmish-app" 48 | |> Program.withConsoleTrace 49 | |> Program.run -------------------------------------------------------------------------------- /nodejsbundle/README.md: -------------------------------------------------------------------------------- 1 | # Fable Node.js Bundled App 2 | 3 | This is a simple Fable Node.js app which is bundled with webpack. It's basically what we need to start working on Serverless functions for instance. 4 | 5 | ## Requirements 6 | 7 | * [dotnet SDK](https://www.microsoft.com/net/download/core) 2.1 or higher 8 | * [node.js](https://nodejs.org) with [npm](https://www.npmjs.com/) 9 | * An F# editor like Visual Studio, Visual Studio Code with [Ionide](http://ionide.io/) or [JetBrains Rider](https://www.jetbrains.com/rider/). 10 | 11 | ## Building and running the app 12 | 13 | * Install JS dependencies: `npm install` 14 | * Build Node.js app `npm run build` 15 | * Try Node.js app `node build/App.js` 16 | 17 | ## Project structure 18 | 19 | ### npm 20 | 21 | JS dependencies are declared in `package.json`, while `package-lock.json` is a lock file automatically generated. 22 | 23 | ### Fable-splitter 24 | 25 | [Webpack](https://webpack.js.org) is a JS bundler with extensions, like a static dev server that enables hot reloading on code changes. Fable interacts with Webpack through the `fable-loader`. Configuration for Webpack is defined in the `webpack.config.js` file. 26 | 27 | ### F# 28 | 29 | The sample only contains two F# files: the project (.fsproj) and a source file (.fs) in the `src` folder. 30 | -------------------------------------------------------------------------------- /fsx-script/paket.lock: -------------------------------------------------------------------------------- 1 | GENERATE-LOAD-SCRIPTS: ON 2 | STORAGE: NONE 3 | RESTRICTION: == netstandard2.0 4 | NUGET 5 | remote: https://www.nuget.org/api/v2 6 | Fable.Browser.Blob (1.1) 7 | Fable.Core (>= 3.0) 8 | FSharp.Core (>= 4.6.2) 9 | Fable.Browser.Dom (1.1) 10 | Fable.Browser.Blob (>= 1.1) 11 | Fable.Browser.Event (>= 1.0) 12 | Fable.Browser.WebStorage (>= 1.0) 13 | Fable.Core (>= 3.0) 14 | FSharp.Core (>= 4.6.2) 15 | Fable.Browser.Event (1.0) 16 | Fable.Core (>= 3.0) 17 | FSharp.Core (>= 4.5.2) 18 | Fable.Browser.WebStorage (1.0) 19 | Fable.Browser.Event (>= 1.0) 20 | Fable.Core (>= 3.0) 21 | FSharp.Core (>= 4.5.2) 22 | Fable.Core (3.1.5) 23 | FSharp.Core (>= 4.7) 24 | Fable.Elmish (3.0.6) 25 | Fable.Core (>= 3.0) 26 | FSharp.Core (>= 4.6.2) 27 | Fable.Elmish.React (3.0.1) 28 | Fable.Core (>= 3.0) 29 | Fable.Elmish (>= 3.0) 30 | Fable.React (>= 5.1) 31 | FSharp.Core (>= 4.6.2) 32 | Fable.React (5.3.6) 33 | Fable.Browser.Dom (>= 1.0) 34 | Fable.Core (>= 3.0) 35 | FSharp.Core (>= 4.7) 36 | FSharp.Core (4.7) 37 | 38 | GROUP dev 39 | RESTRICTION: == netstandard2.0 40 | NUGET 41 | remote: https://www.nuget.org/api/v2 42 | Microsoft.NETCore.Platforms (3.1) 43 | NETStandard.Library (2.0.3) 44 | Microsoft.NETCore.Platforms (>= 1.1) 45 | -------------------------------------------------------------------------------- /browser/src/App.fs: -------------------------------------------------------------------------------- 1 | module App 2 | 3 | open Fable.Core.JsInterop 4 | open Fable.Import 5 | 6 | let window = Browser.Dom.window 7 | 8 | // Get our canvas context 9 | // As we'll see later, myCanvas is mutable hence the use of the mutable keyword 10 | // the unbox keyword allows to make an unsafe cast. Here we assume that getElementById will return an HTMLCanvasElement 11 | let mutable myCanvas : Browser.Types.HTMLCanvasElement = unbox window.document.getElementById "myCanvas" // myCanvas is defined in public/index.html 12 | 13 | // Get the context 14 | let ctx = myCanvas.getContext_2d() 15 | 16 | // All these are immutables values 17 | let w = myCanvas.width 18 | let h = myCanvas.height 19 | let steps = 20 20 | let squareSize = 20 21 | 22 | // gridWidth needs a float wo we cast tour int operation to a float using the float keyword 23 | let gridWidth = float (steps * squareSize) 24 | 25 | // resize our canvas to the size of our grid 26 | // the arrow <- indicates we're mutating a value. It's a special operator in F#. 27 | myCanvas.width <- gridWidth 28 | myCanvas.height <- gridWidth 29 | 30 | // print the grid size to our debugger console 31 | printfn "%i" steps 32 | 33 | // prepare our canvas operations 34 | [0..steps] // this is a list 35 | |> Seq.iter( fun x -> // we iter through the list using an anonymous function 36 | let v = float ((x) * squareSize) 37 | ctx.moveTo(v, 0.) 38 | ctx.lineTo(v, gridWidth) 39 | ctx.moveTo(0., v) 40 | ctx.lineTo(gridWidth, v) 41 | ) 42 | ctx.strokeStyle <- !^"#ddd" // color 43 | 44 | // draw our grid 45 | ctx.stroke() 46 | 47 | // write Fable 48 | ctx.textAlign <- "center" 49 | ctx.fillText("Fable on Canvas", gridWidth * 0.5, gridWidth * 0.5) 50 | 51 | printfn "done!" 52 | 53 | 54 | -------------------------------------------------------------------------------- /withpaket/src/App.fs: -------------------------------------------------------------------------------- 1 | module App 2 | 3 | open Fable.Core.JsInterop 4 | open Fable.Import 5 | 6 | let window = Browser.Dom.window 7 | 8 | // Get our canvas context 9 | // As we'll see later, myCanvas is mutable hence the use of the mutable keyword 10 | // the unbox keyword allows to make an unsafe cast. Here we assume that getElementById will return an HTMLCanvasElement 11 | let mutable myCanvas : Browser.Types.HTMLCanvasElement = unbox window.document.getElementById "myCanvas" // myCanvas is defined in public/index.html 12 | 13 | // Get the context 14 | let ctx = myCanvas.getContext_2d() 15 | 16 | // All these are immutables values 17 | let w = myCanvas.width 18 | let h = myCanvas.height 19 | let steps = 20 20 | let squareSize = 20 21 | 22 | // gridWidth needs a float wo we cast tour int operation to a float using the float keyword 23 | let gridWidth = float (steps * squareSize) 24 | 25 | // resize our canvas to the size of our grid 26 | // the arrow <- indicates we're mutating a value. It's a special operator in F#. 27 | myCanvas.width <- gridWidth 28 | myCanvas.height <- gridWidth 29 | 30 | // print the grid size to our debugger consoloe 31 | printfn "%i" steps 32 | 33 | // prepare our canvas operations 34 | [0..steps] // this is a list 35 | |> Seq.iter( fun x -> // we iter through the list using an anonymous function 36 | let v = float ((x) * squareSize) 37 | ctx.moveTo(v, 0.) 38 | ctx.lineTo(v, gridWidth) 39 | ctx.moveTo(0., v) 40 | ctx.lineTo(gridWidth, v) 41 | ) 42 | ctx.strokeStyle <- !^"#ddd" // color 43 | 44 | // draw our grid 45 | ctx.stroke() 46 | 47 | // write Fable 48 | ctx.textAlign <- "center" 49 | ctx.fillText("Fable on Canvas", gridWidth * 0.5, gridWidth * 0.5) 50 | 51 | printfn "done!" 52 | 53 | 54 | -------------------------------------------------------------------------------- /browser/README.md: -------------------------------------------------------------------------------- 1 | # Fable Browser App 2 | 3 | This is a simple Fable app which draws a grid into a canvas element. 4 | 5 | ## Requirements 6 | 7 | * [dotnet SDK](https://www.microsoft.com/net/download/core) 2.1 or higher 8 | * [node.js](https://nodejs.org) with [npm](https://www.npmjs.com/) 9 | * An F# editor like Visual Studio, Visual Studio Code with [Ionide](http://ionide.io/) or [JetBrains Rider](https://www.jetbrains.com/rider/). 10 | 11 | ## Building and running the app 12 | 13 | * Install JS dependencies: `npm install` 14 | * Start Webpack dev server: `npx webpack-dev-server` or `npm start` 15 | * After the first compilation is finished, in your browser open: http://localhost:8080/ 16 | 17 | Any modification you do to the F# code will be reflected in the web page after saving. 18 | 19 | ## Project structure 20 | 21 | ### npm 22 | 23 | JS dependencies are declared in `package.json`, while `package-lock.json` is a lock file automatically generated. 24 | 25 | ### Webpack 26 | 27 | [Webpack](https://webpack.js.org) is a JS bundler with extensions, like a static dev server that enables hot reloading on code changes. Fable interacts with Webpack through the `fable-loader`. Configuration for Webpack is defined in the `webpack.config.js` file. Note this sample only includes basic Webpack configuration for development mode, if you want to see a more comprehensive configuration check the [Fable webpack-config-template](https://github.com/fable-compiler/webpack-config-template/blob/master/webpack.config.js). 28 | 29 | ### F# 30 | 31 | The sample only contains two F# files: the project (.fsproj) and a source file (.fs) in the `src` folder. 32 | 33 | ### Web assets 34 | 35 | The `index.html` file and other assets like an icon can be found in the `public` folder. 36 | -------------------------------------------------------------------------------- /interop/README.md: -------------------------------------------------------------------------------- 1 | # Fable Interop To JavaScript 2 | 3 | This is a simple Fable app which calls JavaScript code from F# code. 4 | 5 | ## Requirements 6 | 7 | * [dotnet SDK](https://www.microsoft.com/net/download/core) 2.1 or higher 8 | * [node.js](https://nodejs.org) with [npm](https://www.npmjs.com/) 9 | * An F# editor like Visual Studio, Visual Studio Code with [Ionide](http://ionide.io/) or [JetBrains Rider](https://www.jetbrains.com/rider/). 10 | 11 | ## Building and running the app 12 | 13 | * Install JS dependencies: `npm install` 14 | * Start Webpack dev server: `npx webpack-dev-server` or `npm start` 15 | * After the first compilation is finished, in your browser open: http://localhost:8080/ 16 | 17 | Any modification you do to the F# code will be reflected in the web page after saving. 18 | 19 | ## Project structure 20 | 21 | ### npm 22 | 23 | JS dependencies are declared in `package.json`, while `package-lock.json` is a lock file automatically generated. 24 | 25 | ### Webpack 26 | 27 | [Webpack](https://webpack.js.org) is a JS bundler with extensions, like a static dev server that enables hot reloading on code changes. Fable interacts with Webpack through the `fable-loader`. Configuration for Webpack is defined in the `webpack.config.js` file. Note this sample only includes basic Webpack configuration for development mode, if you want to see a more comprehensive configuration check the [Fable webpack-config-template](https://github.com/fable-compiler/webpack-config-template/blob/master/webpack.config.js). 28 | 29 | ### F# 30 | 31 | The sample only contains two F# files: the project (.fsproj) and a source file (.fs) in the `src` folder. 32 | 33 | ### Web assets 34 | 35 | The `index.html` file and other assets like an icon can be found in the `public` folder. 36 | -------------------------------------------------------------------------------- /interopFableFromJS/README.md: -------------------------------------------------------------------------------- 1 | # Fable Interop From JavaScript 2 | 3 | This is a simple Fable app which calls F# code from JavaScript code. 4 | 5 | ## Requirements 6 | 7 | * [dotnet SDK](https://www.microsoft.com/net/download/core) 2.1 or higher 8 | * [node.js](https://nodejs.org) with [npm](https://www.npmjs.com/) 9 | * An F# editor like Visual Studio, Visual Studio Code with [Ionide](http://ionide.io/) or [JetBrains Rider](https://www.jetbrains.com/rider/). 10 | 11 | ## Building and running the app 12 | 13 | * Install JS dependencies: `npm install` 14 | * Start Webpack dev server: `npx webpack-dev-server` or `npm start` 15 | * After the first compilation is finished, in your browser open: http://localhost:8080/ 16 | 17 | Any modification you do to the F# code will be reflected in the web page after saving. 18 | 19 | ## Project structure 20 | 21 | ### npm 22 | 23 | JS dependencies are declared in `package.json`, while `package-lock.json` is a lock file automatically generated. 24 | 25 | ### Webpack 26 | 27 | [Webpack](https://webpack.js.org) is a JS bundler with extensions, like a static dev server that enables hot reloading on code changes. Fable interacts with Webpack through the `fable-loader`. Configuration for Webpack is defined in the `webpack.config.js` file. Note this sample only includes basic Webpack configuration for development mode, if you want to see a more comprehensive configuration check the [Fable webpack-config-template](https://github.com/fable-compiler/webpack-config-template/blob/master/webpack.config.js). 28 | 29 | ### F# 30 | 31 | The sample only contains two F# files: the project (.fsproj) and a source file (.fs) in the `src` folder. 32 | 33 | ### Web assets 34 | 35 | The `index.html` file and other assets like an icon can be found in the `public` folder. 36 | -------------------------------------------------------------------------------- /promises/README.md: -------------------------------------------------------------------------------- 1 | # Fable Promise App 2 | 3 | This is a simple Fable app to test fetching a dog image from a remote server and display it. It features Fetch, Promises and Json parsing. 4 | 5 | ## Requirements 6 | 7 | * [dotnet SDK](https://www.microsoft.com/net/download/core) 2.1 or higher 8 | * [node.js](https://nodejs.org) with [npm](https://www.npmjs.com/) 9 | * An F# editor like Visual Studio, Visual Studio Code with [Ionide](http://ionide.io/) or [JetBrains Rider](https://www.jetbrains.com/rider/). 10 | 11 | ## Building and running the app 12 | 13 | * Install JS dependencies: `npm install` 14 | * Start Webpack dev server: `npx webpack-dev-server` or `npm start` 15 | * After the first compilation is finished, in your browser open: http://localhost:8080/ 16 | 17 | Any modification you do to the F# code will be reflected in the web page after saving. 18 | 19 | ## Project structure 20 | 21 | ### npm 22 | 23 | JS dependencies are declared in `package.json`, while `package-lock.json` is a lock file automatically generated. 24 | 25 | ### Webpack 26 | 27 | [Webpack](https://webpack.js.org) is a JS bundler with extensions, like a static dev server that enables hot reloading on code changes. Fable interacts with Webpack through the `fable-loader`. Configuration for Webpack is defined in the `webpack.config.js` file. Note this sample only includes basic Webpack configuration for development mode, if you want to see a more comprehensive configuration check the [Fable webpack-config-template](https://github.com/fable-compiler/webpack-config-template/blob/master/webpack.config.js). 28 | 29 | ### F# 30 | 31 | The sample only contains two F# files: the project (.fsproj) and a source file (.fs) in the `src` folder. 32 | 33 | ### Web assets 34 | 35 | The `index.html` file and other assets like an icon can be found in the `public` folder. 36 | -------------------------------------------------------------------------------- /withpaket/paket.lock: -------------------------------------------------------------------------------- 1 | STORAGE: NONE 2 | NUGET 3 | remote: https://www.nuget.org/api/v2 4 | Fable.Browser.Blob (1.1) - restriction: >= netstandard2.0 5 | Fable.Core (>= 3.0) - restriction: >= netstandard2.0 6 | FSharp.Core (>= 4.6.2) - restriction: >= netstandard2.0 7 | Fable.Browser.Dom (1.1) 8 | Fable.Browser.Blob (>= 1.1) - restriction: >= netstandard2.0 9 | Fable.Browser.Event (>= 1.0) - restriction: >= netstandard2.0 10 | Fable.Browser.WebStorage (>= 1.0) - restriction: >= netstandard2.0 11 | Fable.Core (>= 3.0) - restriction: >= netstandard2.0 12 | FSharp.Core (>= 4.6.2) - restriction: >= netstandard2.0 13 | Fable.Browser.Event (1.0) - restriction: >= netstandard2.0 14 | Fable.Core (>= 3.0) - restriction: >= netstandard2.0 15 | FSharp.Core (>= 4.5.2) - restriction: >= netstandard2.0 16 | Fable.Browser.WebStorage (1.0) - restriction: >= netstandard2.0 17 | Fable.Browser.Event (>= 1.0) - restriction: >= netstandard2.0 18 | Fable.Core (>= 3.0) - restriction: >= netstandard2.0 19 | FSharp.Core (>= 4.5.2) - restriction: >= netstandard2.0 20 | Fable.Core (3.1.5) 21 | FSharp.Core (>= 4.7) - restriction: >= netstandard2.0 22 | Fable.Fetch (2.2) 23 | Fable.Browser.Blob (>= 1.1) - restriction: >= netstandard2.0 24 | Fable.Core (>= 3.0) - restriction: >= netstandard2.0 25 | Fable.Promise (>= 2.0) - restriction: >= netstandard2.0 26 | FSharp.Core (>= 4.7) - restriction: >= netstandard2.0 27 | Fable.Promise (2.0) 28 | Fable.Core (>= 3.0) - restriction: >= netstandard2.0 29 | FSharp.Core (>= 4.5.2) - restriction: >= netstandard2.0 30 | FSharp.Core (4.7) - restriction: >= netstandard2.0 31 | Thoth.Json (4.0) 32 | Fable.Core (>= 3.1.4) - restriction: >= netstandard2.0 33 | FSharp.Core (>= 4.7) - restriction: >= netstandard2.0 34 | -------------------------------------------------------------------------------- /minimal/README.md: -------------------------------------------------------------------------------- 1 | # Fable Minimal App 2 | 3 | This is a simple Fable app including an [Elmish](https://elmish.github.io/) counter with as little configuration as possible. If you want to see a more complex app including commonly used F# tools like Paket or Fake, check [the Fulma demo](https://github.com/MangelMaxime/fulma-demo). 4 | 5 | ## Requirements 6 | 7 | * [dotnet SDK](https://www.microsoft.com/net/download/core) 2.1 or higher 8 | * [node.js](https://nodejs.org) with [npm](https://www.npmjs.com/) 9 | * An F# editor like Visual Studio, Visual Studio Code with [Ionide](http://ionide.io/) or [JetBrains Rider](https://www.jetbrains.com/rider/). 10 | 11 | ## Building and running the app 12 | 13 | * Install JS dependencies: `npm install` 14 | * Start Webpack dev server: `npx webpack-dev-server` or `npm start` 15 | * After the first compilation is finished, in your browser open: http://localhost:8080/ 16 | 17 | Any modification you do to the F# code will be reflected in the web page after saving. 18 | 19 | ## Project structure 20 | 21 | ### npm 22 | 23 | JS dependencies are declared in `package.json`, while `package-lock.json` is a lock file automatically generated. 24 | 25 | ### Webpack 26 | 27 | [Webpack](https://webpack.js.org) is a JS bundler with extensions, like a static dev server that enables hot reloading on code changes. Fable interacts with Webpack through the `fable-loader`. Configuration for Webpack is defined in the `webpack.config.js` file. Note this sample only includes basic Webpack configuration for development mode, if you want to see a more comprehensive configuration check the [Fable webpack-config-template](https://github.com/fable-compiler/webpack-config-template/blob/master/webpack.config.js). 28 | 29 | ### F# 30 | 31 | The sample only contains two F# files: the project (.fsproj) and a source file (.fs) in the `src` folder. 32 | 33 | ### Web assets 34 | 35 | The `index.html` file and other assets like an icon can be found in the `public` folder. 36 | -------------------------------------------------------------------------------- /promises/src/App.fs: -------------------------------------------------------------------------------- 1 | module App 2 | 3 | open Fable.Core.JsInterop 4 | open Fable.Import 5 | open Fetch 6 | open Thoth.Json 7 | 8 | // we get a json from our fetch request with a url field 9 | // so we create this type to map the json object 10 | type PictureInfo = { Url : string } 11 | 12 | let window = Browser.Dom.window 13 | 14 | // this simple function takes an url, creates an img element and add it to our myDogContainer div created in index.html 15 | let showPic url = 16 | // make image mutable since we need to mutate it's src field 17 | let mutable image : Browser.Types.HTMLImageElement = unbox window.document.createElement "img" 18 | let container = window.document.getElementById "myDogContainer" 19 | image.src <- url 20 | image.width <- 200. 21 | container.appendChild image |> ignore // ignore means we don't need to use the return value. Since F# is a functional language we always do return something. 22 | 23 | // This function will fetch a random dog url every reload of the page 24 | let getRandomDogImage url = 25 | fetch url [] // use the fetch api to load our resource 26 | |> Promise.bind (fun res -> res.text()) // get the resul 27 | |> Promise.map (fun txt -> // bind the result to make further operation 28 | 29 | // Use Thoth, a F# library to decode the json message 30 | // the message will come as: {"url":"https://random.dog/580ce3c8-a8bf-48a8-92cc-68d1955c7dc8.jpg"} 31 | // We tell Thoth to decode this and map the Json to our PictureInfo type. 32 | let decoded = Decode.Auto.fromString (txt, caseStrategy = CamelCase) 33 | match decoded with 34 | | Ok catURL -> // everything went well! great! 35 | let actualDogURL = catURL.Url 36 | printfn "Woof! Woof! %s" actualDogURL 37 | showPic actualDogURL 38 | | Error decodingError -> // oh the decoder encountered an error. The string that was sent back from our fetch request does not map well to our PictureInfo type. 39 | failwith (sprintf "was unable to decode: %s. Reason: %s" txt decodingError) 40 | ) 41 | 42 | // start our app! 43 | getRandomDogImage "https://random.dog/woof.json" |> ignore 44 | printfn "done!" 45 | 46 | 47 | -------------------------------------------------------------------------------- /reactComponent/README.md: -------------------------------------------------------------------------------- 1 | # Fable React Component 2 | 3 | This is a sample fable component which could be published as a stand alone React component. 4 | 5 | ## Requirements 6 | 7 | * [dotnet SDK](https://www.microsoft.com/net/download/core) 2.1 or higher 8 | * [node.js](https://nodejs.org) with [npm](https://www.npmjs.com/) 9 | * An F# editor like Visual Studio, Visual Studio Code with [Ionide](http://ionide.io/) or [JetBrains Rider](https://www.jetbrains.com/rider/). 10 | 11 | ## Building and running the app 12 | 13 | * Install JS dependencies: `yarn` 14 | * Start Webpack dev server: `yarn start` or `yarn build` 15 | * Make the package visible on your local system using `yarn link` 16 | 17 | ``` 18 | yarn link v1.13.0 19 | success Registered "fs-react-component". 20 | info You can now run `yarn link "fs-react-component"` in the projects where you want to use this package and it will be used instead. 21 | Done in 0.09s. 22 | ``` 23 | 24 | ### Meanwhile... 25 | 26 | * Create a new plain js/react project 27 | * For this example I'll use [create-react-app](https://facebook.github.io/create-react-app/) to save some setup. 28 | 29 | ``` 30 | npx create-react-app my-app 31 | cd my-app 32 | yarn link "fs-react-component" 33 | yarn start 34 | ``` 35 | 36 | * Now the fs-react-component is linked to my-app by node_modules 37 | * Open App.js and add this import 38 | 39 | ```javascript 40 | import { StandardComponent, FunComponent, Fable5FunComponent } from 'fs-react-component' 41 | ``` 42 | 43 | * Then use the component like any other react component 44 | 45 | ```html 46 | 47 | 48 | 49 | ``` 50 | 51 | * If you ran `yarn start` in both fs-react-component and my-app you should be able to make changes to index.fs and see them reflected in my-app automatically. 52 | * See comments in the source about why you might prefer one component type over another. 53 | * That's it 🎉 54 | 55 | ## Publishing 56 | 57 | * Remember to change the package name in package.json 58 | * `yarn login` with your npmjs.com credentials 59 | * `yarn publish` 60 | * Tell your friends 61 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | **This repository is not maintained anymore as it is using an old version of Fable. [fable3-samples](https://github.com/fable-compiler/fable3-samples) is now the repository which use the currently stable version of Fable (v3)** 2 | 3 | # fable2-samples 4 | 5 | This is the repository hosting samples for quite all your Fable needs. The best move to start a new Fable project is to clone this repo and then copy/paste one of the projects. There aren't so many files inside each project so that should really be easy. 6 | 7 | So what do we have here? 8 | 9 | ### Easy like 1,2,3 10 | 11 | 1. **[browser](https://github.com/fable-compiler/fable2-samples/tree/master/browser)**, a simple canvas experiment to get started with Fable and the Browser DOM Api 12 | 13 | 2. **[nodejs](https://github.com/fable-compiler/fable2-samples/tree/master/nodejs)**, a simple Node.js app with `.fs` files transpiled as independent `.js` files 14 | 15 | 3. **[nodejsbundle](https://github.com/fable-compiler/fable2-samples/tree/master/nodejsbundle)**, a simple Node.js app bundled into one single `.js` file 16 | 17 | 4. **[promises](https://github.com/fable-compiler/fable2-samples/tree/master/promises)**, do you like dogs? Display a ::dog:: pic everytime you refresh the page. Here we introduce promises and fetch to get random dog pics! 18 | 19 | ### Advanced 20 | 21 | 1. **[minimal](https://github.com/fable-compiler/fable2-samples/tree/master/minimal)**, a great sample featuring a React Single Page Application and Elm architecture. Great to get started with Fable for real. 22 | 23 | 2. **[fulma](https://github.com/MangelMaxime/fulma-demo)**, full fledged Single Page Application featuring React, Bulma CSS (Fulma) and Elm architecture. The de-facto template for nowadays web apps. We've got you covered with this template. 24 | 25 | 3. **[mocha](https://github.com/fable-compiler/fable2-samples/tree/master/mocha)**, add tests to your Fable projects with the mocha lib! An easy to understand template with an architecture you can reproduce in already existing Fable projects. 26 | 27 | 4. **[withPaket](https://github.com/fable-compiler/fable2-samples/tree/master/withpaket)**, desperate to add many .NET NuGet packages without conflicts? Let's use paket in your project! 28 | 29 | > *Don't forget to read our lovely hand written README file located in each folder! Thanks and have fun!* 30 | -------------------------------------------------------------------------------- /reactComponent/src/index.fs: -------------------------------------------------------------------------------- 1 | module ReactComponent 2 | 3 | open Fable.React 4 | open Fable.Core.JsInterop 5 | 6 | // FunctionComponent.Of is intended to be used from F# 7 | // To expose it in JS we need a slightly modified variant 8 | // (We should likely add it to the Fable.React library) 9 | type FunctionComponent with 10 | static member ForJS 11 | (render: 'Props->ReactElement, 12 | ?displayName: string, 13 | ?memoizeWith: 'Props -> 'Props -> bool) 14 | : ReactElementType<'Props> = 15 | match memoizeWith with 16 | | Some areEqual -> 17 | let memoElement = ReactBindings.React.memo(render, areEqual) 18 | match displayName with 19 | | Some name -> memoElement?displayName <- "Memo(" + name + ")" 20 | | None -> () 21 | memoElement 22 | | None -> unbox render 23 | 24 | // End of boilerplate! Let's start defining our component 25 | 26 | // Since the props object is created from Javascript it's best to be defensive (use options) for the top level attributes. 27 | // If you used a string it might work but there is no check to make sure the caller provided a value. 28 | type Props = 29 | abstract member name : string option 30 | 31 | // A standard react component dervies from either Fable.React.Component or PureComponent. 32 | // This is the most verbose way to define a component but also the most flexible. 33 | type StandardComponent(props) as self= 34 | inherit PureComponent(props) with 35 | do self.setInitState() 36 | override __.render() = 37 | let name = defaultArg props.name "nobody" 38 | div [] [str (sprintf "Hello %s" name)] 39 | 40 | // If you expect the component to be consumed from javascript with JSX you can expose a bare function as a react component and that will work (including hooks). 41 | // If you call this from F# it would act as a plain function so you would have to wrap it with FunctionComponent.Of (or `ofFunction`) if you need hooks to work. 42 | // see: https://fable.io/blog/Announcing-Fable-React-5.html 43 | let FunComponent (props:Props) = 44 | let name = defaultArg props.name "nobody" 45 | div [] [str (sprintf "Hello %s" name)] 46 | 47 | // Using FunctionComponent.ForJS we can add additional behaviour like memoization or a custom display name 48 | let Fable5FunComponent = 49 | FunctionComponent.ForJS 50 | (FunComponent, 51 | memoizeWith = equalsButFunctions, 52 | displayName = "FableComponent") 53 | -------------------------------------------------------------------------------- /withpaket/README.md: -------------------------------------------------------------------------------- 1 | # Fable Browser App 2 | 3 | This is a simple Fable app which draws a grid into a canvas element. In order to use F# libraries from the .NET NuGet library store we use paket manager wich takes care of handling the downloading and the resolving of conflicts between libraries. 4 | 5 | ## Requirements 6 | 7 | * [dotnet SDK](https://www.microsoft.com/net/download/core) 2.1 or higher 8 | * [node.js](https://nodejs.org) with [npm](https://www.npmjs.com/) 9 | * An F# editor like Visual Studio, Visual Studio Code with [Ionide](http://ionide.io/) or [JetBrains Rider](https://www.jetbrains.com/rider/). 10 | 11 | ## Building and running the app 12 | 13 | * Install JS dependencies: `npm install` 14 | * Install .NET dependencies: `dotnet paket install` 15 | * Start Webpack dev server: `npx webpack-dev-server` or `npm start` 16 | * After the first compilation is finished, in your browser open: http://localhost:8080/ 17 | 18 | Any modification you do to the F# code will be reflected in the web page after saving. 19 | 20 | ## Project structure 21 | 22 | ### npm 23 | 24 | JS dependencies are declared in `package.json`, while `package-lock.json` is a lock file automatically generated. 25 | 26 | ### paket 27 | 28 | [Paket](https://fsprojects.github.io/Paket/) 29 | 30 | > Paket is a dependency manager for .NET and mono projects, which is designed to work well with NuGet packages and also enables referencing files directly from Git repositories or any HTTP resource. It enables precise and predictable control over what packages the projects within your application reference. 31 | 32 | .NET dependencies are declared in `paket.dependencies`. The `src/paket.references` lists the libraries actually used in the project. Since you can have several F# projects, we could have different custom `.paket` files for each project. 33 | 34 | Last but not least, in the `.fsproj` file you can find a new node: ` ` which just tells the compiler to look for the referenced libraries information from the `.paket/Paket.Restore.targets` file. 35 | 36 | ### Webpack 37 | 38 | [Webpack](https://webpack.js.org) is a JS bundler with extensions, like a static dev server that enables hot reloading on code changes. Fable interacts with Webpack through the `fable-loader`. Configuration for Webpack is defined in the `webpack.config.js` file. Note this sample only includes basic Webpack configuration for development mode, if you want to see a more comprehensive configuration check the [Fable webpack-config-template](https://github.com/fable-compiler/webpack-config-template/blob/master/webpack.config.js). 39 | 40 | ### F# 41 | 42 | The sample only contains two F# files: the project (.fsproj) and a source file (.fs) in the `src` folder. 43 | 44 | ### Web assets 45 | 46 | The `index.html` file and other assets like an icon can be found in the `public` folder. 47 | -------------------------------------------------------------------------------- /interop/src/App.fs: -------------------------------------------------------------------------------- 1 | module App 2 | 3 | open Fable.Core.JsInterop 4 | open Fable.Import 5 | open Fable.Core 6 | 7 | (* 8 | Example 1: interop with JS functions through F# interfaces 9 | Create an interface listing all exported functions and members 10 | Function name must be the same as the one written in the .js file 11 | *) 12 | module Alert = 13 | type IAlert = 14 | abstract triggerAlert : message:string -> unit // takes a string parameter and does not return anything 15 | abstract someString: string 16 | 17 | // import our lib using ES6 imports. 18 | // The star just means we'll import everything that's exported 19 | // We map the import to our type IAlert in order to have an actual access point. 20 | [] 21 | let lib: IAlert = jsNative 22 | 23 | Alert.lib.triggerAlert ("Hey I'm calling my js library from Fable > " + Alert.lib.someString) 24 | 25 | 26 | (* 27 | Example 2: interop with JS functions through F# module functions 28 | Just create functions as placeholders for our exported members 29 | Put these into an F# module just to make thing a little bit clearer 30 | *) 31 | module Canvas = 32 | // here we just import a member function from canvas.js called drawSmiley. 33 | let drawSmiley: id:string -> unit = importMember "../public/canvas.js" 34 | let drawBubble: id:string -> unit = importMember "../public/canvas.js" 35 | 36 | 37 | Canvas.drawBubble "bubble" 38 | Canvas.drawSmiley "smiley" 39 | 40 | (* 41 | Example 3: interop with a JS Class 42 | We need a: 43 | 1 - a description: an interface which will mimic our js MyClass class implementation 44 | 2 - a caller to invoke a new MyClass and call static methods 45 | 3 - a glue: that will act as the glue between our lib and MyClassCaller 46 | *) 47 | type MyClassImplementation = // 1 48 | abstract awesomeInteger: int with get, set 49 | abstract isAwesome: unit -> bool 50 | 51 | type MyClass = // 2 52 | [] 53 | abstract Create : awesomeInteger:int -> MyClassImplementation //= jsNative // takes a string parameter and does not return anything 54 | abstract getPI : unit-> float 55 | 56 | [] // 3 57 | let myClassStatic : MyClass = jsNative 58 | 59 | // let's make our object mutable to be able to change its members 60 | let mutable myObject = myClassStatic.Create 40 61 | 62 | // using getter 63 | let whatDoIget = myObject.awesomeInteger // using getter 64 | Alert.lib.triggerAlert ("Hey I'm calling my js class from Fable. It gives " + (string whatDoIget)) 65 | 66 | // using setter 67 | myObject.awesomeInteger <- 42 68 | Alert.lib.triggerAlert ("Now it's better. It gives " + (string myObject.awesomeInteger)) 69 | 70 | // calling member function 71 | Alert.lib.triggerAlert ("Isn't it awesome? " + (string (myObject.isAwesome()))) 72 | 73 | // call our static function 74 | Alert.lib.triggerAlert ("PI is " + (string (myClassStatic.getPI()))) 75 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | public/bundle.js* 2 | 3 | # Node 4 | node_modules/ 5 | 6 | ## Ignore Visual Studio temporary files, build results, and 7 | ## files generated by popular Visual Studio add-ons. 8 | 9 | # User-specific files 10 | *.suo 11 | *.user 12 | *.sln.docstates 13 | /build 14 | # Xamarin Studio / monodevelop user-specific 15 | *.userprefs 16 | *.dll.mdb 17 | *.exe.mdb 18 | 19 | # Build results 20 | 21 | [Dd]ebug/ 22 | [Rr]elease/ 23 | x64/ 24 | [Bb]in/ 25 | [Oo]bj/ 26 | 27 | # MSTest test Results 28 | [Tt]est[Rr]esult*/ 29 | [Bb]uild[Ll]og.* 30 | 31 | *_i.c 32 | *_p.c 33 | *.ilk 34 | *.meta 35 | *.obj 36 | *.pch 37 | *.pdb 38 | *.pgc 39 | *.pgd 40 | *.rsp 41 | *.sbr 42 | *.tlb 43 | *.tli 44 | *.tlh 45 | *.tmp 46 | *.tmp_proj 47 | *.log 48 | *.vspscc 49 | *.vssscc 50 | .builds 51 | *.pidb 52 | *.log 53 | *.scc 54 | 55 | # Visual C++ cache files 56 | ipch/ 57 | *.aps 58 | *.ncb 59 | *.opensdf 60 | *.sdf 61 | *.cachefile 62 | 63 | # Visual Studio profiler 64 | *.psess 65 | *.vsp 66 | *.vspx 67 | 68 | # Other Visual Studio data 69 | .vs/ 70 | 71 | # Guidance Automation Toolkit 72 | *.gpState 73 | 74 | # ReSharper is a .NET coding add-in 75 | _ReSharper*/ 76 | *.[Rr]e[Ss]harper 77 | 78 | # TeamCity is a build add-in 79 | _TeamCity* 80 | 81 | # DotCover is a Code Coverage Tool 82 | *.dotCover 83 | 84 | # NCrunch 85 | *.ncrunch* 86 | .*crunch*.local.xml 87 | 88 | # Installshield output folder 89 | #[Ee]xpress/ 90 | 91 | # DocProject is a documentation generator add-in 92 | DocProject/buildhelp/ 93 | DocProject/Help/*.HxT 94 | DocProject/Help/*.HxC 95 | DocProject/Help/*.hhc 96 | DocProject/Help/*.hhk 97 | DocProject/Help/*.hhp 98 | DocProject/Help/Html2 99 | DocProject/Help/html 100 | 101 | # Click-Once directory 102 | publish/ 103 | 104 | # Publish Web Output 105 | *.Publish.xml 106 | 107 | # Enable nuget.exe in the .nuget folder (though normally executables are not tracked) 108 | !.nuget/NuGet.exe 109 | 110 | # Windows Azure Build Output 111 | csx 112 | *.build.csdef 113 | 114 | # Windows Store app package directory 115 | AppPackages/ 116 | 117 | # Others 118 | sql/ 119 | *.Cache 120 | ClientBin/ 121 | [Ss]tyle[Cc]op.* 122 | ~$* 123 | *~ 124 | *.dbmdl 125 | *.[Pp]ublish.xml 126 | *.pfx 127 | *.publishsettings 128 | 129 | # RIA/Silverlight projects 130 | Generated_Code/ 131 | 132 | # Backup & report files from converting an old project file to a newer 133 | # Visual Studio version. Backup files are not needed, because we have git ;-) 134 | _UpgradeReport_Files/ 135 | Backup*/ 136 | UpgradeLog*.XML 137 | UpgradeLog*.htm 138 | 139 | # SQL Server files 140 | App_Data/*.mdf 141 | App_Data/*.ldf 142 | 143 | 144 | #LightSwitch generated files 145 | GeneratedArtifacts/ 146 | _Pvt_Extensions/ 147 | ModelManifest.xml 148 | 149 | # ========================= 150 | # Windows detritus 151 | # ========================= 152 | 153 | # Windows image file caches 154 | Thumbs.db 155 | ehthumbs.db 156 | 157 | # Folder config file 158 | Desktop.ini 159 | 160 | # Recycle Bin used on file shares 161 | $RECYCLE.BIN/ 162 | 163 | # Mac desktop service store files 164 | .DS_Store 165 | 166 | # =================================================== 167 | # Exclude F# project specific directories and files 168 | # =================================================== 169 | 170 | # NuGet Packages Directory 171 | packages/ 172 | 173 | # Generated documentation folder 174 | docs/output/ 175 | 176 | # Temp folder used for publishing docs 177 | temp*/ 178 | 179 | # Test results produced by build 180 | TestResults.xml 181 | TestResult.xml 182 | 183 | # Nuget outputs 184 | nuget/*.nupkg 185 | release.cmd 186 | release.sh 187 | localpackages/ 188 | paket-files 189 | *.orig 190 | docs/content/license.md 191 | docs/content/release-notes.md 192 | .fake 193 | docs/tools/FSharp.Formatting.svclog 194 | .ionide 195 | *.bak 196 | project.lock.json 197 | 198 | browser/yarn\.lock 199 | 200 | promises/yarn\.lock 201 | 202 | nodejs/build/ 203 | 204 | nodejs/yarn\.lock 205 | 206 | nodejsbundle/build/App\.js 207 | 208 | nodejsbundle/yarn\.lock 209 | 210 | mocha/build/ 211 | 212 | mocha/yarn\.lock 213 | 214 | interopFableFromJS/yarn\.lock 215 | -------------------------------------------------------------------------------- /browser/.gitignore: -------------------------------------------------------------------------------- 1 | public/bundle.js* 2 | 3 | # Node 4 | node_modules/ 5 | 6 | ## Ignore Visual Studio temporary files, build results, and 7 | ## files generated by popular Visual Studio add-ons. 8 | 9 | # User-specific files 10 | *.suo 11 | *.user 12 | *.sln.docstates 13 | /build 14 | # Xamarin Studio / monodevelop user-specific 15 | *.userprefs 16 | *.dll.mdb 17 | *.exe.mdb 18 | 19 | # Build results 20 | 21 | [Dd]ebug/ 22 | [Rr]elease/ 23 | x64/ 24 | [Bb]in/ 25 | [Oo]bj/ 26 | 27 | # MSTest test Results 28 | [Tt]est[Rr]esult*/ 29 | [Bb]uild[Ll]og.* 30 | 31 | *_i.c 32 | *_p.c 33 | *.ilk 34 | *.meta 35 | *.obj 36 | *.pch 37 | *.pdb 38 | *.pgc 39 | *.pgd 40 | *.rsp 41 | *.sbr 42 | *.tlb 43 | *.tli 44 | *.tlh 45 | *.tmp 46 | *.tmp_proj 47 | *.log 48 | *.vspscc 49 | *.vssscc 50 | .builds 51 | *.pidb 52 | *.log 53 | *.scc 54 | 55 | # Visual C++ cache files 56 | ipch/ 57 | *.aps 58 | *.ncb 59 | *.opensdf 60 | *.sdf 61 | *.cachefile 62 | 63 | # Visual Studio profiler 64 | *.psess 65 | *.vsp 66 | *.vspx 67 | 68 | # Other Visual Studio data 69 | .vs/ 70 | 71 | # Guidance Automation Toolkit 72 | *.gpState 73 | 74 | # ReSharper is a .NET coding add-in 75 | _ReSharper*/ 76 | *.[Rr]e[Ss]harper 77 | 78 | # TeamCity is a build add-in 79 | _TeamCity* 80 | 81 | # DotCover is a Code Coverage Tool 82 | *.dotCover 83 | 84 | # NCrunch 85 | *.ncrunch* 86 | .*crunch*.local.xml 87 | 88 | # Installshield output folder 89 | #[Ee]xpress/ 90 | 91 | # DocProject is a documentation generator add-in 92 | DocProject/buildhelp/ 93 | DocProject/Help/*.HxT 94 | DocProject/Help/*.HxC 95 | DocProject/Help/*.hhc 96 | DocProject/Help/*.hhk 97 | DocProject/Help/*.hhp 98 | DocProject/Help/Html2 99 | DocProject/Help/html 100 | 101 | # Click-Once directory 102 | publish/ 103 | 104 | # Publish Web Output 105 | *.Publish.xml 106 | 107 | # Enable nuget.exe in the .nuget folder (though normally executables are not tracked) 108 | !.nuget/NuGet.exe 109 | 110 | # Windows Azure Build Output 111 | csx 112 | *.build.csdef 113 | 114 | # Windows Store app package directory 115 | AppPackages/ 116 | 117 | # Others 118 | sql/ 119 | *.Cache 120 | ClientBin/ 121 | [Ss]tyle[Cc]op.* 122 | ~$* 123 | *~ 124 | *.dbmdl 125 | *.[Pp]ublish.xml 126 | *.pfx 127 | *.publishsettings 128 | 129 | # RIA/Silverlight projects 130 | Generated_Code/ 131 | 132 | # Backup & report files from converting an old project file to a newer 133 | # Visual Studio version. Backup files are not needed, because we have git ;-) 134 | _UpgradeReport_Files/ 135 | Backup*/ 136 | UpgradeLog*.XML 137 | UpgradeLog*.htm 138 | 139 | # SQL Server files 140 | App_Data/*.mdf 141 | App_Data/*.ldf 142 | 143 | 144 | #LightSwitch generated files 145 | GeneratedArtifacts/ 146 | _Pvt_Extensions/ 147 | ModelManifest.xml 148 | 149 | # ========================= 150 | # Windows detritus 151 | # ========================= 152 | 153 | # Windows image file caches 154 | Thumbs.db 155 | ehthumbs.db 156 | 157 | # Folder config file 158 | Desktop.ini 159 | 160 | # Recycle Bin used on file shares 161 | $RECYCLE.BIN/ 162 | 163 | # Mac desktop service store files 164 | .DS_Store 165 | 166 | # =================================================== 167 | # Exclude F# project specific directories and files 168 | # =================================================== 169 | 170 | # NuGet Packages Directory 171 | packages/ 172 | 173 | # Generated documentation folder 174 | docs/output/ 175 | 176 | # Temp folder used for publishing docs 177 | temp*/ 178 | 179 | # Test results produced by build 180 | TestResults.xml 181 | TestResult.xml 182 | 183 | # Nuget outputs 184 | nuget/*.nupkg 185 | release.cmd 186 | release.sh 187 | localpackages/ 188 | paket-files 189 | *.orig 190 | docs/content/license.md 191 | docs/content/release-notes.md 192 | .fake 193 | docs/tools/FSharp.Formatting.svclog 194 | .ionide 195 | *.bak 196 | project.lock.json 197 | 198 | browser/yarn\.lock 199 | 200 | promises/yarn\.lock 201 | 202 | nodejs/build/ 203 | 204 | nodejs/yarn\.lock 205 | 206 | nodejsbundle/build/App\.js 207 | 208 | nodejsbundle/yarn\.lock 209 | 210 | mocha/build/ 211 | 212 | mocha/yarn\.lock 213 | 214 | interopFableFromJS/yarn\.lock 215 | -------------------------------------------------------------------------------- /fulma/.gitignore: -------------------------------------------------------------------------------- 1 | public/bundle.js* 2 | 3 | # Node 4 | node_modules/ 5 | 6 | ## Ignore Visual Studio temporary files, build results, and 7 | ## files generated by popular Visual Studio add-ons. 8 | 9 | # User-specific files 10 | *.suo 11 | *.user 12 | *.sln.docstates 13 | /build 14 | # Xamarin Studio / monodevelop user-specific 15 | *.userprefs 16 | *.dll.mdb 17 | *.exe.mdb 18 | 19 | # Build results 20 | 21 | [Dd]ebug/ 22 | [Rr]elease/ 23 | x64/ 24 | [Bb]in/ 25 | [Oo]bj/ 26 | 27 | # MSTest test Results 28 | [Tt]est[Rr]esult*/ 29 | [Bb]uild[Ll]og.* 30 | 31 | *_i.c 32 | *_p.c 33 | *.ilk 34 | *.meta 35 | *.obj 36 | *.pch 37 | *.pdb 38 | *.pgc 39 | *.pgd 40 | *.rsp 41 | *.sbr 42 | *.tlb 43 | *.tli 44 | *.tlh 45 | *.tmp 46 | *.tmp_proj 47 | *.log 48 | *.vspscc 49 | *.vssscc 50 | .builds 51 | *.pidb 52 | *.log 53 | *.scc 54 | 55 | # Visual C++ cache files 56 | ipch/ 57 | *.aps 58 | *.ncb 59 | *.opensdf 60 | *.sdf 61 | *.cachefile 62 | 63 | # Visual Studio profiler 64 | *.psess 65 | *.vsp 66 | *.vspx 67 | 68 | # Other Visual Studio data 69 | .vs/ 70 | 71 | # Guidance Automation Toolkit 72 | *.gpState 73 | 74 | # ReSharper is a .NET coding add-in 75 | _ReSharper*/ 76 | *.[Rr]e[Ss]harper 77 | 78 | # TeamCity is a build add-in 79 | _TeamCity* 80 | 81 | # DotCover is a Code Coverage Tool 82 | *.dotCover 83 | 84 | # NCrunch 85 | *.ncrunch* 86 | .*crunch*.local.xml 87 | 88 | # Installshield output folder 89 | #[Ee]xpress/ 90 | 91 | # DocProject is a documentation generator add-in 92 | DocProject/buildhelp/ 93 | DocProject/Help/*.HxT 94 | DocProject/Help/*.HxC 95 | DocProject/Help/*.hhc 96 | DocProject/Help/*.hhk 97 | DocProject/Help/*.hhp 98 | DocProject/Help/Html2 99 | DocProject/Help/html 100 | 101 | # Click-Once directory 102 | publish/ 103 | 104 | # Publish Web Output 105 | *.Publish.xml 106 | 107 | # Enable nuget.exe in the .nuget folder (though normally executables are not tracked) 108 | !.nuget/NuGet.exe 109 | 110 | # Windows Azure Build Output 111 | csx 112 | *.build.csdef 113 | 114 | # Windows Store app package directory 115 | AppPackages/ 116 | 117 | # Others 118 | sql/ 119 | *.Cache 120 | ClientBin/ 121 | [Ss]tyle[Cc]op.* 122 | ~$* 123 | *~ 124 | *.dbmdl 125 | *.[Pp]ublish.xml 126 | *.pfx 127 | *.publishsettings 128 | 129 | # RIA/Silverlight projects 130 | Generated_Code/ 131 | 132 | # Backup & report files from converting an old project file to a newer 133 | # Visual Studio version. Backup files are not needed, because we have git ;-) 134 | _UpgradeReport_Files/ 135 | Backup*/ 136 | UpgradeLog*.XML 137 | UpgradeLog*.htm 138 | 139 | # SQL Server files 140 | App_Data/*.mdf 141 | App_Data/*.ldf 142 | 143 | 144 | #LightSwitch generated files 145 | GeneratedArtifacts/ 146 | _Pvt_Extensions/ 147 | ModelManifest.xml 148 | 149 | # ========================= 150 | # Windows detritus 151 | # ========================= 152 | 153 | # Windows image file caches 154 | Thumbs.db 155 | ehthumbs.db 156 | 157 | # Folder config file 158 | Desktop.ini 159 | 160 | # Recycle Bin used on file shares 161 | $RECYCLE.BIN/ 162 | 163 | # Mac desktop service store files 164 | .DS_Store 165 | 166 | # =================================================== 167 | # Exclude F# project specific directories and files 168 | # =================================================== 169 | 170 | # NuGet Packages Directory 171 | packages/ 172 | 173 | # Generated documentation folder 174 | docs/output/ 175 | 176 | # Temp folder used for publishing docs 177 | temp*/ 178 | 179 | # Test results produced by build 180 | TestResults.xml 181 | TestResult.xml 182 | 183 | # Nuget outputs 184 | nuget/*.nupkg 185 | release.cmd 186 | release.sh 187 | localpackages/ 188 | paket-files 189 | *.orig 190 | docs/content/license.md 191 | docs/content/release-notes.md 192 | .fake 193 | docs/tools/FSharp.Formatting.svclog 194 | .ionide 195 | *.bak 196 | project.lock.json 197 | 198 | browser/yarn\.lock 199 | 200 | promises/yarn\.lock 201 | 202 | nodejs/build/ 203 | 204 | nodejs/yarn\.lock 205 | 206 | nodejsbundle/build/App\.js 207 | 208 | nodejsbundle/yarn\.lock 209 | 210 | mocha/build/ 211 | 212 | mocha/yarn\.lock 213 | 214 | interopFableFromJS/yarn\.lock 215 | -------------------------------------------------------------------------------- /interop/.gitignore: -------------------------------------------------------------------------------- 1 | public/bundle.js* 2 | 3 | # Node 4 | node_modules/ 5 | 6 | ## Ignore Visual Studio temporary files, build results, and 7 | ## files generated by popular Visual Studio add-ons. 8 | 9 | # User-specific files 10 | *.suo 11 | *.user 12 | *.sln.docstates 13 | /build 14 | # Xamarin Studio / monodevelop user-specific 15 | *.userprefs 16 | *.dll.mdb 17 | *.exe.mdb 18 | 19 | # Build results 20 | 21 | [Dd]ebug/ 22 | [Rr]elease/ 23 | x64/ 24 | [Bb]in/ 25 | [Oo]bj/ 26 | 27 | # MSTest test Results 28 | [Tt]est[Rr]esult*/ 29 | [Bb]uild[Ll]og.* 30 | 31 | *_i.c 32 | *_p.c 33 | *.ilk 34 | *.meta 35 | *.obj 36 | *.pch 37 | *.pdb 38 | *.pgc 39 | *.pgd 40 | *.rsp 41 | *.sbr 42 | *.tlb 43 | *.tli 44 | *.tlh 45 | *.tmp 46 | *.tmp_proj 47 | *.log 48 | *.vspscc 49 | *.vssscc 50 | .builds 51 | *.pidb 52 | *.log 53 | *.scc 54 | 55 | # Visual C++ cache files 56 | ipch/ 57 | *.aps 58 | *.ncb 59 | *.opensdf 60 | *.sdf 61 | *.cachefile 62 | 63 | # Visual Studio profiler 64 | *.psess 65 | *.vsp 66 | *.vspx 67 | 68 | # Other Visual Studio data 69 | .vs/ 70 | 71 | # Guidance Automation Toolkit 72 | *.gpState 73 | 74 | # ReSharper is a .NET coding add-in 75 | _ReSharper*/ 76 | *.[Rr]e[Ss]harper 77 | 78 | # TeamCity is a build add-in 79 | _TeamCity* 80 | 81 | # DotCover is a Code Coverage Tool 82 | *.dotCover 83 | 84 | # NCrunch 85 | *.ncrunch* 86 | .*crunch*.local.xml 87 | 88 | # Installshield output folder 89 | #[Ee]xpress/ 90 | 91 | # DocProject is a documentation generator add-in 92 | DocProject/buildhelp/ 93 | DocProject/Help/*.HxT 94 | DocProject/Help/*.HxC 95 | DocProject/Help/*.hhc 96 | DocProject/Help/*.hhk 97 | DocProject/Help/*.hhp 98 | DocProject/Help/Html2 99 | DocProject/Help/html 100 | 101 | # Click-Once directory 102 | publish/ 103 | 104 | # Publish Web Output 105 | *.Publish.xml 106 | 107 | # Enable nuget.exe in the .nuget folder (though normally executables are not tracked) 108 | !.nuget/NuGet.exe 109 | 110 | # Windows Azure Build Output 111 | csx 112 | *.build.csdef 113 | 114 | # Windows Store app package directory 115 | AppPackages/ 116 | 117 | # Others 118 | sql/ 119 | *.Cache 120 | ClientBin/ 121 | [Ss]tyle[Cc]op.* 122 | ~$* 123 | *~ 124 | *.dbmdl 125 | *.[Pp]ublish.xml 126 | *.pfx 127 | *.publishsettings 128 | 129 | # RIA/Silverlight projects 130 | Generated_Code/ 131 | 132 | # Backup & report files from converting an old project file to a newer 133 | # Visual Studio version. Backup files are not needed, because we have git ;-) 134 | _UpgradeReport_Files/ 135 | Backup*/ 136 | UpgradeLog*.XML 137 | UpgradeLog*.htm 138 | 139 | # SQL Server files 140 | App_Data/*.mdf 141 | App_Data/*.ldf 142 | 143 | 144 | #LightSwitch generated files 145 | GeneratedArtifacts/ 146 | _Pvt_Extensions/ 147 | ModelManifest.xml 148 | 149 | # ========================= 150 | # Windows detritus 151 | # ========================= 152 | 153 | # Windows image file caches 154 | Thumbs.db 155 | ehthumbs.db 156 | 157 | # Folder config file 158 | Desktop.ini 159 | 160 | # Recycle Bin used on file shares 161 | $RECYCLE.BIN/ 162 | 163 | # Mac desktop service store files 164 | .DS_Store 165 | 166 | # =================================================== 167 | # Exclude F# project specific directories and files 168 | # =================================================== 169 | 170 | # NuGet Packages Directory 171 | packages/ 172 | 173 | # Generated documentation folder 174 | docs/output/ 175 | 176 | # Temp folder used for publishing docs 177 | temp*/ 178 | 179 | # Test results produced by build 180 | TestResults.xml 181 | TestResult.xml 182 | 183 | # Nuget outputs 184 | nuget/*.nupkg 185 | release.cmd 186 | release.sh 187 | localpackages/ 188 | paket-files 189 | *.orig 190 | docs/content/license.md 191 | docs/content/release-notes.md 192 | .fake 193 | docs/tools/FSharp.Formatting.svclog 194 | .ionide 195 | *.bak 196 | project.lock.json 197 | 198 | browser/yarn\.lock 199 | 200 | promises/yarn\.lock 201 | 202 | nodejs/build/ 203 | 204 | nodejs/yarn\.lock 205 | 206 | nodejsbundle/build/App\.js 207 | 208 | nodejsbundle/yarn\.lock 209 | 210 | mocha/build/ 211 | 212 | mocha/yarn\.lock 213 | 214 | interopFableFromJS/yarn\.lock 215 | -------------------------------------------------------------------------------- /minimal/.gitignore: -------------------------------------------------------------------------------- 1 | public/bundle.js* 2 | 3 | # Node 4 | node_modules/ 5 | 6 | ## Ignore Visual Studio temporary files, build results, and 7 | ## files generated by popular Visual Studio add-ons. 8 | 9 | # User-specific files 10 | *.suo 11 | *.user 12 | *.sln.docstates 13 | /build 14 | # Xamarin Studio / monodevelop user-specific 15 | *.userprefs 16 | *.dll.mdb 17 | *.exe.mdb 18 | 19 | # Build results 20 | 21 | [Dd]ebug/ 22 | [Rr]elease/ 23 | x64/ 24 | [Bb]in/ 25 | [Oo]bj/ 26 | 27 | # MSTest test Results 28 | [Tt]est[Rr]esult*/ 29 | [Bb]uild[Ll]og.* 30 | 31 | *_i.c 32 | *_p.c 33 | *.ilk 34 | *.meta 35 | *.obj 36 | *.pch 37 | *.pdb 38 | *.pgc 39 | *.pgd 40 | *.rsp 41 | *.sbr 42 | *.tlb 43 | *.tli 44 | *.tlh 45 | *.tmp 46 | *.tmp_proj 47 | *.log 48 | *.vspscc 49 | *.vssscc 50 | .builds 51 | *.pidb 52 | *.log 53 | *.scc 54 | 55 | # Visual C++ cache files 56 | ipch/ 57 | *.aps 58 | *.ncb 59 | *.opensdf 60 | *.sdf 61 | *.cachefile 62 | 63 | # Visual Studio profiler 64 | *.psess 65 | *.vsp 66 | *.vspx 67 | 68 | # Other Visual Studio data 69 | .vs/ 70 | 71 | # Guidance Automation Toolkit 72 | *.gpState 73 | 74 | # ReSharper is a .NET coding add-in 75 | _ReSharper*/ 76 | *.[Rr]e[Ss]harper 77 | 78 | # TeamCity is a build add-in 79 | _TeamCity* 80 | 81 | # DotCover is a Code Coverage Tool 82 | *.dotCover 83 | 84 | # NCrunch 85 | *.ncrunch* 86 | .*crunch*.local.xml 87 | 88 | # Installshield output folder 89 | #[Ee]xpress/ 90 | 91 | # DocProject is a documentation generator add-in 92 | DocProject/buildhelp/ 93 | DocProject/Help/*.HxT 94 | DocProject/Help/*.HxC 95 | DocProject/Help/*.hhc 96 | DocProject/Help/*.hhk 97 | DocProject/Help/*.hhp 98 | DocProject/Help/Html2 99 | DocProject/Help/html 100 | 101 | # Click-Once directory 102 | publish/ 103 | 104 | # Publish Web Output 105 | *.Publish.xml 106 | 107 | # Enable nuget.exe in the .nuget folder (though normally executables are not tracked) 108 | !.nuget/NuGet.exe 109 | 110 | # Windows Azure Build Output 111 | csx 112 | *.build.csdef 113 | 114 | # Windows Store app package directory 115 | AppPackages/ 116 | 117 | # Others 118 | sql/ 119 | *.Cache 120 | ClientBin/ 121 | [Ss]tyle[Cc]op.* 122 | ~$* 123 | *~ 124 | *.dbmdl 125 | *.[Pp]ublish.xml 126 | *.pfx 127 | *.publishsettings 128 | 129 | # RIA/Silverlight projects 130 | Generated_Code/ 131 | 132 | # Backup & report files from converting an old project file to a newer 133 | # Visual Studio version. Backup files are not needed, because we have git ;-) 134 | _UpgradeReport_Files/ 135 | Backup*/ 136 | UpgradeLog*.XML 137 | UpgradeLog*.htm 138 | 139 | # SQL Server files 140 | App_Data/*.mdf 141 | App_Data/*.ldf 142 | 143 | 144 | #LightSwitch generated files 145 | GeneratedArtifacts/ 146 | _Pvt_Extensions/ 147 | ModelManifest.xml 148 | 149 | # ========================= 150 | # Windows detritus 151 | # ========================= 152 | 153 | # Windows image file caches 154 | Thumbs.db 155 | ehthumbs.db 156 | 157 | # Folder config file 158 | Desktop.ini 159 | 160 | # Recycle Bin used on file shares 161 | $RECYCLE.BIN/ 162 | 163 | # Mac desktop service store files 164 | .DS_Store 165 | 166 | # =================================================== 167 | # Exclude F# project specific directories and files 168 | # =================================================== 169 | 170 | # NuGet Packages Directory 171 | packages/ 172 | 173 | # Generated documentation folder 174 | docs/output/ 175 | 176 | # Temp folder used for publishing docs 177 | temp*/ 178 | 179 | # Test results produced by build 180 | TestResults.xml 181 | TestResult.xml 182 | 183 | # Nuget outputs 184 | nuget/*.nupkg 185 | release.cmd 186 | release.sh 187 | localpackages/ 188 | paket-files 189 | *.orig 190 | docs/content/license.md 191 | docs/content/release-notes.md 192 | .fake 193 | docs/tools/FSharp.Formatting.svclog 194 | .ionide 195 | *.bak 196 | project.lock.json 197 | 198 | browser/yarn\.lock 199 | 200 | promises/yarn\.lock 201 | 202 | nodejs/build/ 203 | 204 | nodejs/yarn\.lock 205 | 206 | nodejsbundle/build/App\.js 207 | 208 | nodejsbundle/yarn\.lock 209 | 210 | mocha/build/ 211 | 212 | mocha/yarn\.lock 213 | 214 | interopFableFromJS/yarn\.lock 215 | -------------------------------------------------------------------------------- /mocha/.gitignore: -------------------------------------------------------------------------------- 1 | public/bundle.js* 2 | 3 | # Node 4 | node_modules/ 5 | 6 | ## Ignore Visual Studio temporary files, build results, and 7 | ## files generated by popular Visual Studio add-ons. 8 | 9 | # User-specific files 10 | *.suo 11 | *.user 12 | *.sln.docstates 13 | /build 14 | # Xamarin Studio / monodevelop user-specific 15 | *.userprefs 16 | *.dll.mdb 17 | *.exe.mdb 18 | 19 | # Build results 20 | 21 | [Dd]ebug/ 22 | [Rr]elease/ 23 | x64/ 24 | [Bb]in/ 25 | [Oo]bj/ 26 | 27 | # MSTest test Results 28 | [Tt]est[Rr]esult*/ 29 | [Bb]uild[Ll]og.* 30 | 31 | *_i.c 32 | *_p.c 33 | *.ilk 34 | *.meta 35 | *.obj 36 | *.pch 37 | *.pdb 38 | *.pgc 39 | *.pgd 40 | *.rsp 41 | *.sbr 42 | *.tlb 43 | *.tli 44 | *.tlh 45 | *.tmp 46 | *.tmp_proj 47 | *.log 48 | *.vspscc 49 | *.vssscc 50 | .builds 51 | *.pidb 52 | *.log 53 | *.scc 54 | 55 | # Visual C++ cache files 56 | ipch/ 57 | *.aps 58 | *.ncb 59 | *.opensdf 60 | *.sdf 61 | *.cachefile 62 | 63 | # Visual Studio profiler 64 | *.psess 65 | *.vsp 66 | *.vspx 67 | 68 | # Other Visual Studio data 69 | .vs/ 70 | 71 | # Guidance Automation Toolkit 72 | *.gpState 73 | 74 | # ReSharper is a .NET coding add-in 75 | _ReSharper*/ 76 | *.[Rr]e[Ss]harper 77 | 78 | # TeamCity is a build add-in 79 | _TeamCity* 80 | 81 | # DotCover is a Code Coverage Tool 82 | *.dotCover 83 | 84 | # NCrunch 85 | *.ncrunch* 86 | .*crunch*.local.xml 87 | 88 | # Installshield output folder 89 | #[Ee]xpress/ 90 | 91 | # DocProject is a documentation generator add-in 92 | DocProject/buildhelp/ 93 | DocProject/Help/*.HxT 94 | DocProject/Help/*.HxC 95 | DocProject/Help/*.hhc 96 | DocProject/Help/*.hhk 97 | DocProject/Help/*.hhp 98 | DocProject/Help/Html2 99 | DocProject/Help/html 100 | 101 | # Click-Once directory 102 | publish/ 103 | 104 | # Publish Web Output 105 | *.Publish.xml 106 | 107 | # Enable nuget.exe in the .nuget folder (though normally executables are not tracked) 108 | !.nuget/NuGet.exe 109 | 110 | # Windows Azure Build Output 111 | csx 112 | *.build.csdef 113 | 114 | # Windows Store app package directory 115 | AppPackages/ 116 | 117 | # Others 118 | sql/ 119 | *.Cache 120 | ClientBin/ 121 | [Ss]tyle[Cc]op.* 122 | ~$* 123 | *~ 124 | *.dbmdl 125 | *.[Pp]ublish.xml 126 | *.pfx 127 | *.publishsettings 128 | 129 | # RIA/Silverlight projects 130 | Generated_Code/ 131 | 132 | # Backup & report files from converting an old project file to a newer 133 | # Visual Studio version. Backup files are not needed, because we have git ;-) 134 | _UpgradeReport_Files/ 135 | Backup*/ 136 | UpgradeLog*.XML 137 | UpgradeLog*.htm 138 | 139 | # SQL Server files 140 | App_Data/*.mdf 141 | App_Data/*.ldf 142 | 143 | 144 | #LightSwitch generated files 145 | GeneratedArtifacts/ 146 | _Pvt_Extensions/ 147 | ModelManifest.xml 148 | 149 | # ========================= 150 | # Windows detritus 151 | # ========================= 152 | 153 | # Windows image file caches 154 | Thumbs.db 155 | ehthumbs.db 156 | 157 | # Folder config file 158 | Desktop.ini 159 | 160 | # Recycle Bin used on file shares 161 | $RECYCLE.BIN/ 162 | 163 | # Mac desktop service store files 164 | .DS_Store 165 | 166 | # =================================================== 167 | # Exclude F# project specific directories and files 168 | # =================================================== 169 | 170 | # NuGet Packages Directory 171 | packages/ 172 | 173 | # Generated documentation folder 174 | docs/output/ 175 | 176 | # Temp folder used for publishing docs 177 | temp*/ 178 | 179 | # Test results produced by build 180 | TestResults.xml 181 | TestResult.xml 182 | 183 | # Nuget outputs 184 | nuget/*.nupkg 185 | release.cmd 186 | release.sh 187 | localpackages/ 188 | paket-files 189 | *.orig 190 | docs/content/license.md 191 | docs/content/release-notes.md 192 | .fake 193 | docs/tools/FSharp.Formatting.svclog 194 | .ionide 195 | *.bak 196 | project.lock.json 197 | 198 | browser/yarn\.lock 199 | 200 | promises/yarn\.lock 201 | 202 | nodejs/build/ 203 | 204 | nodejs/yarn\.lock 205 | 206 | nodejsbundle/build/App\.js 207 | 208 | nodejsbundle/yarn\.lock 209 | 210 | mocha/build/ 211 | 212 | mocha/yarn\.lock 213 | 214 | interopFableFromJS/yarn\.lock 215 | -------------------------------------------------------------------------------- /nodejs/.gitignore: -------------------------------------------------------------------------------- 1 | public/bundle.js* 2 | 3 | # Node 4 | node_modules/ 5 | 6 | ## Ignore Visual Studio temporary files, build results, and 7 | ## files generated by popular Visual Studio add-ons. 8 | 9 | # User-specific files 10 | *.suo 11 | *.user 12 | *.sln.docstates 13 | /build 14 | # Xamarin Studio / monodevelop user-specific 15 | *.userprefs 16 | *.dll.mdb 17 | *.exe.mdb 18 | 19 | # Build results 20 | 21 | [Dd]ebug/ 22 | [Rr]elease/ 23 | x64/ 24 | [Bb]in/ 25 | [Oo]bj/ 26 | 27 | # MSTest test Results 28 | [Tt]est[Rr]esult*/ 29 | [Bb]uild[Ll]og.* 30 | 31 | *_i.c 32 | *_p.c 33 | *.ilk 34 | *.meta 35 | *.obj 36 | *.pch 37 | *.pdb 38 | *.pgc 39 | *.pgd 40 | *.rsp 41 | *.sbr 42 | *.tlb 43 | *.tli 44 | *.tlh 45 | *.tmp 46 | *.tmp_proj 47 | *.log 48 | *.vspscc 49 | *.vssscc 50 | .builds 51 | *.pidb 52 | *.log 53 | *.scc 54 | 55 | # Visual C++ cache files 56 | ipch/ 57 | *.aps 58 | *.ncb 59 | *.opensdf 60 | *.sdf 61 | *.cachefile 62 | 63 | # Visual Studio profiler 64 | *.psess 65 | *.vsp 66 | *.vspx 67 | 68 | # Other Visual Studio data 69 | .vs/ 70 | 71 | # Guidance Automation Toolkit 72 | *.gpState 73 | 74 | # ReSharper is a .NET coding add-in 75 | _ReSharper*/ 76 | *.[Rr]e[Ss]harper 77 | 78 | # TeamCity is a build add-in 79 | _TeamCity* 80 | 81 | # DotCover is a Code Coverage Tool 82 | *.dotCover 83 | 84 | # NCrunch 85 | *.ncrunch* 86 | .*crunch*.local.xml 87 | 88 | # Installshield output folder 89 | #[Ee]xpress/ 90 | 91 | # DocProject is a documentation generator add-in 92 | DocProject/buildhelp/ 93 | DocProject/Help/*.HxT 94 | DocProject/Help/*.HxC 95 | DocProject/Help/*.hhc 96 | DocProject/Help/*.hhk 97 | DocProject/Help/*.hhp 98 | DocProject/Help/Html2 99 | DocProject/Help/html 100 | 101 | # Click-Once directory 102 | publish/ 103 | 104 | # Publish Web Output 105 | *.Publish.xml 106 | 107 | # Enable nuget.exe in the .nuget folder (though normally executables are not tracked) 108 | !.nuget/NuGet.exe 109 | 110 | # Windows Azure Build Output 111 | csx 112 | *.build.csdef 113 | 114 | # Windows Store app package directory 115 | AppPackages/ 116 | 117 | # Others 118 | sql/ 119 | *.Cache 120 | ClientBin/ 121 | [Ss]tyle[Cc]op.* 122 | ~$* 123 | *~ 124 | *.dbmdl 125 | *.[Pp]ublish.xml 126 | *.pfx 127 | *.publishsettings 128 | 129 | # RIA/Silverlight projects 130 | Generated_Code/ 131 | 132 | # Backup & report files from converting an old project file to a newer 133 | # Visual Studio version. Backup files are not needed, because we have git ;-) 134 | _UpgradeReport_Files/ 135 | Backup*/ 136 | UpgradeLog*.XML 137 | UpgradeLog*.htm 138 | 139 | # SQL Server files 140 | App_Data/*.mdf 141 | App_Data/*.ldf 142 | 143 | 144 | #LightSwitch generated files 145 | GeneratedArtifacts/ 146 | _Pvt_Extensions/ 147 | ModelManifest.xml 148 | 149 | # ========================= 150 | # Windows detritus 151 | # ========================= 152 | 153 | # Windows image file caches 154 | Thumbs.db 155 | ehthumbs.db 156 | 157 | # Folder config file 158 | Desktop.ini 159 | 160 | # Recycle Bin used on file shares 161 | $RECYCLE.BIN/ 162 | 163 | # Mac desktop service store files 164 | .DS_Store 165 | 166 | # =================================================== 167 | # Exclude F# project specific directories and files 168 | # =================================================== 169 | 170 | # NuGet Packages Directory 171 | packages/ 172 | 173 | # Generated documentation folder 174 | docs/output/ 175 | 176 | # Temp folder used for publishing docs 177 | temp*/ 178 | 179 | # Test results produced by build 180 | TestResults.xml 181 | TestResult.xml 182 | 183 | # Nuget outputs 184 | nuget/*.nupkg 185 | release.cmd 186 | release.sh 187 | localpackages/ 188 | paket-files 189 | *.orig 190 | docs/content/license.md 191 | docs/content/release-notes.md 192 | .fake 193 | docs/tools/FSharp.Formatting.svclog 194 | .ionide 195 | *.bak 196 | project.lock.json 197 | 198 | browser/yarn\.lock 199 | 200 | promises/yarn\.lock 201 | 202 | nodejs/build/ 203 | 204 | nodejs/yarn\.lock 205 | 206 | nodejsbundle/build/App\.js 207 | 208 | nodejsbundle/yarn\.lock 209 | 210 | mocha/build/ 211 | 212 | mocha/yarn\.lock 213 | 214 | interopFableFromJS/yarn\.lock 215 | -------------------------------------------------------------------------------- /promises/.gitignore: -------------------------------------------------------------------------------- 1 | public/bundle.js* 2 | 3 | # Node 4 | node_modules/ 5 | 6 | ## Ignore Visual Studio temporary files, build results, and 7 | ## files generated by popular Visual Studio add-ons. 8 | 9 | # User-specific files 10 | *.suo 11 | *.user 12 | *.sln.docstates 13 | /build 14 | # Xamarin Studio / monodevelop user-specific 15 | *.userprefs 16 | *.dll.mdb 17 | *.exe.mdb 18 | 19 | # Build results 20 | 21 | [Dd]ebug/ 22 | [Rr]elease/ 23 | x64/ 24 | [Bb]in/ 25 | [Oo]bj/ 26 | 27 | # MSTest test Results 28 | [Tt]est[Rr]esult*/ 29 | [Bb]uild[Ll]og.* 30 | 31 | *_i.c 32 | *_p.c 33 | *.ilk 34 | *.meta 35 | *.obj 36 | *.pch 37 | *.pdb 38 | *.pgc 39 | *.pgd 40 | *.rsp 41 | *.sbr 42 | *.tlb 43 | *.tli 44 | *.tlh 45 | *.tmp 46 | *.tmp_proj 47 | *.log 48 | *.vspscc 49 | *.vssscc 50 | .builds 51 | *.pidb 52 | *.log 53 | *.scc 54 | 55 | # Visual C++ cache files 56 | ipch/ 57 | *.aps 58 | *.ncb 59 | *.opensdf 60 | *.sdf 61 | *.cachefile 62 | 63 | # Visual Studio profiler 64 | *.psess 65 | *.vsp 66 | *.vspx 67 | 68 | # Other Visual Studio data 69 | .vs/ 70 | 71 | # Guidance Automation Toolkit 72 | *.gpState 73 | 74 | # ReSharper is a .NET coding add-in 75 | _ReSharper*/ 76 | *.[Rr]e[Ss]harper 77 | 78 | # TeamCity is a build add-in 79 | _TeamCity* 80 | 81 | # DotCover is a Code Coverage Tool 82 | *.dotCover 83 | 84 | # NCrunch 85 | *.ncrunch* 86 | .*crunch*.local.xml 87 | 88 | # Installshield output folder 89 | #[Ee]xpress/ 90 | 91 | # DocProject is a documentation generator add-in 92 | DocProject/buildhelp/ 93 | DocProject/Help/*.HxT 94 | DocProject/Help/*.HxC 95 | DocProject/Help/*.hhc 96 | DocProject/Help/*.hhk 97 | DocProject/Help/*.hhp 98 | DocProject/Help/Html2 99 | DocProject/Help/html 100 | 101 | # Click-Once directory 102 | publish/ 103 | 104 | # Publish Web Output 105 | *.Publish.xml 106 | 107 | # Enable nuget.exe in the .nuget folder (though normally executables are not tracked) 108 | !.nuget/NuGet.exe 109 | 110 | # Windows Azure Build Output 111 | csx 112 | *.build.csdef 113 | 114 | # Windows Store app package directory 115 | AppPackages/ 116 | 117 | # Others 118 | sql/ 119 | *.Cache 120 | ClientBin/ 121 | [Ss]tyle[Cc]op.* 122 | ~$* 123 | *~ 124 | *.dbmdl 125 | *.[Pp]ublish.xml 126 | *.pfx 127 | *.publishsettings 128 | 129 | # RIA/Silverlight projects 130 | Generated_Code/ 131 | 132 | # Backup & report files from converting an old project file to a newer 133 | # Visual Studio version. Backup files are not needed, because we have git ;-) 134 | _UpgradeReport_Files/ 135 | Backup*/ 136 | UpgradeLog*.XML 137 | UpgradeLog*.htm 138 | 139 | # SQL Server files 140 | App_Data/*.mdf 141 | App_Data/*.ldf 142 | 143 | 144 | #LightSwitch generated files 145 | GeneratedArtifacts/ 146 | _Pvt_Extensions/ 147 | ModelManifest.xml 148 | 149 | # ========================= 150 | # Windows detritus 151 | # ========================= 152 | 153 | # Windows image file caches 154 | Thumbs.db 155 | ehthumbs.db 156 | 157 | # Folder config file 158 | Desktop.ini 159 | 160 | # Recycle Bin used on file shares 161 | $RECYCLE.BIN/ 162 | 163 | # Mac desktop service store files 164 | .DS_Store 165 | 166 | # =================================================== 167 | # Exclude F# project specific directories and files 168 | # =================================================== 169 | 170 | # NuGet Packages Directory 171 | packages/ 172 | 173 | # Generated documentation folder 174 | docs/output/ 175 | 176 | # Temp folder used for publishing docs 177 | temp*/ 178 | 179 | # Test results produced by build 180 | TestResults.xml 181 | TestResult.xml 182 | 183 | # Nuget outputs 184 | nuget/*.nupkg 185 | release.cmd 186 | release.sh 187 | localpackages/ 188 | paket-files 189 | *.orig 190 | docs/content/license.md 191 | docs/content/release-notes.md 192 | .fake 193 | docs/tools/FSharp.Formatting.svclog 194 | .ionide 195 | *.bak 196 | project.lock.json 197 | 198 | browser/yarn\.lock 199 | 200 | promises/yarn\.lock 201 | 202 | nodejs/build/ 203 | 204 | nodejs/yarn\.lock 205 | 206 | nodejsbundle/build/App\.js 207 | 208 | nodejsbundle/yarn\.lock 209 | 210 | mocha/build/ 211 | 212 | mocha/yarn\.lock 213 | 214 | interopFableFromJS/yarn\.lock 215 | -------------------------------------------------------------------------------- /fsx-script/.gitignore: -------------------------------------------------------------------------------- 1 | public/bundle.js* 2 | 3 | # Node 4 | node_modules/ 5 | 6 | ## Ignore Visual Studio temporary files, build results, and 7 | ## files generated by popular Visual Studio add-ons. 8 | 9 | # User-specific files 10 | *.suo 11 | *.user 12 | *.sln.docstates 13 | /build 14 | # Xamarin Studio / monodevelop user-specific 15 | *.userprefs 16 | *.dll.mdb 17 | *.exe.mdb 18 | 19 | # Build results 20 | 21 | [Dd]ebug/ 22 | [Rr]elease/ 23 | x64/ 24 | [Bb]in/ 25 | [Oo]bj/ 26 | 27 | # MSTest test Results 28 | [Tt]est[Rr]esult*/ 29 | [Bb]uild[Ll]og.* 30 | 31 | *_i.c 32 | *_p.c 33 | *.ilk 34 | *.meta 35 | *.obj 36 | *.pch 37 | *.pdb 38 | *.pgc 39 | *.pgd 40 | *.rsp 41 | *.sbr 42 | *.tlb 43 | *.tli 44 | *.tlh 45 | *.tmp 46 | *.tmp_proj 47 | *.log 48 | *.vspscc 49 | *.vssscc 50 | .builds 51 | *.pidb 52 | *.log 53 | *.scc 54 | 55 | # Visual C++ cache files 56 | ipch/ 57 | *.aps 58 | *.ncb 59 | *.opensdf 60 | *.sdf 61 | *.cachefile 62 | 63 | # Visual Studio profiler 64 | *.psess 65 | *.vsp 66 | *.vspx 67 | 68 | # Other Visual Studio data 69 | .vs/ 70 | 71 | # Guidance Automation Toolkit 72 | *.gpState 73 | 74 | # ReSharper is a .NET coding add-in 75 | _ReSharper*/ 76 | *.[Rr]e[Ss]harper 77 | 78 | # TeamCity is a build add-in 79 | _TeamCity* 80 | 81 | # DotCover is a Code Coverage Tool 82 | *.dotCover 83 | 84 | # NCrunch 85 | *.ncrunch* 86 | .*crunch*.local.xml 87 | 88 | # Installshield output folder 89 | #[Ee]xpress/ 90 | 91 | # DocProject is a documentation generator add-in 92 | DocProject/buildhelp/ 93 | DocProject/Help/*.HxT 94 | DocProject/Help/*.HxC 95 | DocProject/Help/*.hhc 96 | DocProject/Help/*.hhk 97 | DocProject/Help/*.hhp 98 | DocProject/Help/Html2 99 | DocProject/Help/html 100 | 101 | # Click-Once directory 102 | publish/ 103 | 104 | # Publish Web Output 105 | *.Publish.xml 106 | 107 | # Enable nuget.exe in the .nuget folder (though normally executables are not tracked) 108 | !.nuget/NuGet.exe 109 | 110 | # Windows Azure Build Output 111 | csx 112 | *.build.csdef 113 | 114 | # Windows Store app package directory 115 | AppPackages/ 116 | 117 | # Others 118 | sql/ 119 | *.Cache 120 | ClientBin/ 121 | [Ss]tyle[Cc]op.* 122 | ~$* 123 | *~ 124 | *.dbmdl 125 | *.[Pp]ublish.xml 126 | *.pfx 127 | *.publishsettings 128 | 129 | # RIA/Silverlight projects 130 | Generated_Code/ 131 | 132 | # Backup & report files from converting an old project file to a newer 133 | # Visual Studio version. Backup files are not needed, because we have git ;-) 134 | _UpgradeReport_Files/ 135 | Backup*/ 136 | UpgradeLog*.XML 137 | UpgradeLog*.htm 138 | 139 | # SQL Server files 140 | App_Data/*.mdf 141 | App_Data/*.ldf 142 | 143 | 144 | #LightSwitch generated files 145 | GeneratedArtifacts/ 146 | _Pvt_Extensions/ 147 | ModelManifest.xml 148 | 149 | # ========================= 150 | # Windows detritus 151 | # ========================= 152 | 153 | # Windows image file caches 154 | Thumbs.db 155 | ehthumbs.db 156 | 157 | # Folder config file 158 | Desktop.ini 159 | 160 | # Recycle Bin used on file shares 161 | $RECYCLE.BIN/ 162 | 163 | # Mac desktop service store files 164 | .DS_Store 165 | 166 | # =================================================== 167 | # Exclude F# project specific directories and files 168 | # =================================================== 169 | 170 | # NuGet Packages Directory 171 | packages/ 172 | 173 | # Generated documentation folder 174 | docs/output/ 175 | 176 | # Temp folder used for publishing docs 177 | temp*/ 178 | 179 | # Test results produced by build 180 | TestResults.xml 181 | TestResult.xml 182 | 183 | # Nuget outputs 184 | nuget/*.nupkg 185 | release.cmd 186 | release.sh 187 | localpackages/ 188 | paket-files 189 | *.orig 190 | docs/content/license.md 191 | docs/content/release-notes.md 192 | .fake 193 | docs/tools/FSharp.Formatting.svclog 194 | .ionide 195 | *.bak 196 | project.lock.json 197 | 198 | browser/yarn\.lock 199 | 200 | promises/yarn\.lock 201 | 202 | nodejs/build/ 203 | 204 | nodejs/yarn\.lock 205 | 206 | nodejsbundle/build/App\.js 207 | 208 | nodejsbundle/yarn\.lock 209 | 210 | mocha/build/ 211 | 212 | mocha/yarn\.lock 213 | 214 | interopFableFromJS/yarn\.lock 215 | -------------------------------------------------------------------------------- /nodejsbundle/.gitignore: -------------------------------------------------------------------------------- 1 | public/bundle.js* 2 | 3 | # Node 4 | node_modules/ 5 | 6 | ## Ignore Visual Studio temporary files, build results, and 7 | ## files generated by popular Visual Studio add-ons. 8 | 9 | # User-specific files 10 | *.suo 11 | *.user 12 | *.sln.docstates 13 | /build 14 | # Xamarin Studio / monodevelop user-specific 15 | *.userprefs 16 | *.dll.mdb 17 | *.exe.mdb 18 | 19 | # Build results 20 | 21 | [Dd]ebug/ 22 | [Rr]elease/ 23 | x64/ 24 | [Bb]in/ 25 | [Oo]bj/ 26 | 27 | # MSTest test Results 28 | [Tt]est[Rr]esult*/ 29 | [Bb]uild[Ll]og.* 30 | 31 | *_i.c 32 | *_p.c 33 | *.ilk 34 | *.meta 35 | *.obj 36 | *.pch 37 | *.pdb 38 | *.pgc 39 | *.pgd 40 | *.rsp 41 | *.sbr 42 | *.tlb 43 | *.tli 44 | *.tlh 45 | *.tmp 46 | *.tmp_proj 47 | *.log 48 | *.vspscc 49 | *.vssscc 50 | .builds 51 | *.pidb 52 | *.log 53 | *.scc 54 | 55 | # Visual C++ cache files 56 | ipch/ 57 | *.aps 58 | *.ncb 59 | *.opensdf 60 | *.sdf 61 | *.cachefile 62 | 63 | # Visual Studio profiler 64 | *.psess 65 | *.vsp 66 | *.vspx 67 | 68 | # Other Visual Studio data 69 | .vs/ 70 | 71 | # Guidance Automation Toolkit 72 | *.gpState 73 | 74 | # ReSharper is a .NET coding add-in 75 | _ReSharper*/ 76 | *.[Rr]e[Ss]harper 77 | 78 | # TeamCity is a build add-in 79 | _TeamCity* 80 | 81 | # DotCover is a Code Coverage Tool 82 | *.dotCover 83 | 84 | # NCrunch 85 | *.ncrunch* 86 | .*crunch*.local.xml 87 | 88 | # Installshield output folder 89 | #[Ee]xpress/ 90 | 91 | # DocProject is a documentation generator add-in 92 | DocProject/buildhelp/ 93 | DocProject/Help/*.HxT 94 | DocProject/Help/*.HxC 95 | DocProject/Help/*.hhc 96 | DocProject/Help/*.hhk 97 | DocProject/Help/*.hhp 98 | DocProject/Help/Html2 99 | DocProject/Help/html 100 | 101 | # Click-Once directory 102 | publish/ 103 | 104 | # Publish Web Output 105 | *.Publish.xml 106 | 107 | # Enable nuget.exe in the .nuget folder (though normally executables are not tracked) 108 | !.nuget/NuGet.exe 109 | 110 | # Windows Azure Build Output 111 | csx 112 | *.build.csdef 113 | 114 | # Windows Store app package directory 115 | AppPackages/ 116 | 117 | # Others 118 | sql/ 119 | *.Cache 120 | ClientBin/ 121 | [Ss]tyle[Cc]op.* 122 | ~$* 123 | *~ 124 | *.dbmdl 125 | *.[Pp]ublish.xml 126 | *.pfx 127 | *.publishsettings 128 | 129 | # RIA/Silverlight projects 130 | Generated_Code/ 131 | 132 | # Backup & report files from converting an old project file to a newer 133 | # Visual Studio version. Backup files are not needed, because we have git ;-) 134 | _UpgradeReport_Files/ 135 | Backup*/ 136 | UpgradeLog*.XML 137 | UpgradeLog*.htm 138 | 139 | # SQL Server files 140 | App_Data/*.mdf 141 | App_Data/*.ldf 142 | 143 | 144 | #LightSwitch generated files 145 | GeneratedArtifacts/ 146 | _Pvt_Extensions/ 147 | ModelManifest.xml 148 | 149 | # ========================= 150 | # Windows detritus 151 | # ========================= 152 | 153 | # Windows image file caches 154 | Thumbs.db 155 | ehthumbs.db 156 | 157 | # Folder config file 158 | Desktop.ini 159 | 160 | # Recycle Bin used on file shares 161 | $RECYCLE.BIN/ 162 | 163 | # Mac desktop service store files 164 | .DS_Store 165 | 166 | # =================================================== 167 | # Exclude F# project specific directories and files 168 | # =================================================== 169 | 170 | # NuGet Packages Directory 171 | packages/ 172 | 173 | # Generated documentation folder 174 | docs/output/ 175 | 176 | # Temp folder used for publishing docs 177 | temp*/ 178 | 179 | # Test results produced by build 180 | TestResults.xml 181 | TestResult.xml 182 | 183 | # Nuget outputs 184 | nuget/*.nupkg 185 | release.cmd 186 | release.sh 187 | localpackages/ 188 | paket-files 189 | *.orig 190 | docs/content/license.md 191 | docs/content/release-notes.md 192 | .fake 193 | docs/tools/FSharp.Formatting.svclog 194 | .ionide 195 | *.bak 196 | project.lock.json 197 | 198 | browser/yarn\.lock 199 | 200 | promises/yarn\.lock 201 | 202 | nodejs/build/ 203 | 204 | nodejs/yarn\.lock 205 | 206 | nodejsbundle/build/App\.js 207 | 208 | nodejsbundle/yarn\.lock 209 | 210 | mocha/build/ 211 | 212 | mocha/yarn\.lock 213 | 214 | interopFableFromJS/yarn\.lock 215 | -------------------------------------------------------------------------------- /withpaket/.gitignore: -------------------------------------------------------------------------------- 1 | public/bundle.js* 2 | 3 | # Node 4 | node_modules/ 5 | 6 | ## Ignore Visual Studio temporary files, build results, and 7 | ## files generated by popular Visual Studio add-ons. 8 | 9 | # User-specific files 10 | *.suo 11 | *.user 12 | *.sln.docstates 13 | /build 14 | # Xamarin Studio / monodevelop user-specific 15 | *.userprefs 16 | *.dll.mdb 17 | *.exe.mdb 18 | 19 | # Build results 20 | 21 | [Dd]ebug/ 22 | [Rr]elease/ 23 | x64/ 24 | [Bb]in/ 25 | [Oo]bj/ 26 | 27 | # MSTest test Results 28 | [Tt]est[Rr]esult*/ 29 | [Bb]uild[Ll]og.* 30 | 31 | *_i.c 32 | *_p.c 33 | *.ilk 34 | *.meta 35 | *.obj 36 | *.pch 37 | *.pdb 38 | *.pgc 39 | *.pgd 40 | *.rsp 41 | *.sbr 42 | *.tlb 43 | *.tli 44 | *.tlh 45 | *.tmp 46 | *.tmp_proj 47 | *.log 48 | *.vspscc 49 | *.vssscc 50 | .builds 51 | *.pidb 52 | *.log 53 | *.scc 54 | 55 | # Visual C++ cache files 56 | ipch/ 57 | *.aps 58 | *.ncb 59 | *.opensdf 60 | *.sdf 61 | *.cachefile 62 | 63 | # Visual Studio profiler 64 | *.psess 65 | *.vsp 66 | *.vspx 67 | 68 | # Other Visual Studio data 69 | .vs/ 70 | 71 | # Guidance Automation Toolkit 72 | *.gpState 73 | 74 | # ReSharper is a .NET coding add-in 75 | _ReSharper*/ 76 | *.[Rr]e[Ss]harper 77 | 78 | # TeamCity is a build add-in 79 | _TeamCity* 80 | 81 | # DotCover is a Code Coverage Tool 82 | *.dotCover 83 | 84 | # NCrunch 85 | *.ncrunch* 86 | .*crunch*.local.xml 87 | 88 | # Installshield output folder 89 | #[Ee]xpress/ 90 | 91 | # DocProject is a documentation generator add-in 92 | DocProject/buildhelp/ 93 | DocProject/Help/*.HxT 94 | DocProject/Help/*.HxC 95 | DocProject/Help/*.hhc 96 | DocProject/Help/*.hhk 97 | DocProject/Help/*.hhp 98 | DocProject/Help/Html2 99 | DocProject/Help/html 100 | 101 | # Click-Once directory 102 | publish/ 103 | 104 | # Publish Web Output 105 | *.Publish.xml 106 | 107 | # Enable nuget.exe in the .nuget folder (though normally executables are not tracked) 108 | !.nuget/NuGet.exe 109 | 110 | # Windows Azure Build Output 111 | csx 112 | *.build.csdef 113 | 114 | # Windows Store app package directory 115 | AppPackages/ 116 | 117 | # Others 118 | sql/ 119 | *.Cache 120 | ClientBin/ 121 | [Ss]tyle[Cc]op.* 122 | ~$* 123 | *~ 124 | *.dbmdl 125 | *.[Pp]ublish.xml 126 | *.pfx 127 | *.publishsettings 128 | 129 | # RIA/Silverlight projects 130 | Generated_Code/ 131 | 132 | # Backup & report files from converting an old project file to a newer 133 | # Visual Studio version. Backup files are not needed, because we have git ;-) 134 | _UpgradeReport_Files/ 135 | Backup*/ 136 | UpgradeLog*.XML 137 | UpgradeLog*.htm 138 | 139 | # SQL Server files 140 | App_Data/*.mdf 141 | App_Data/*.ldf 142 | 143 | 144 | #LightSwitch generated files 145 | GeneratedArtifacts/ 146 | _Pvt_Extensions/ 147 | ModelManifest.xml 148 | 149 | # ========================= 150 | # Windows detritus 151 | # ========================= 152 | 153 | # Windows image file caches 154 | Thumbs.db 155 | ehthumbs.db 156 | 157 | # Folder config file 158 | Desktop.ini 159 | 160 | # Recycle Bin used on file shares 161 | $RECYCLE.BIN/ 162 | 163 | # Mac desktop service store files 164 | .DS_Store 165 | 166 | # =================================================== 167 | # Exclude F# project specific directories and files 168 | # =================================================== 169 | 170 | # NuGet Packages Directory 171 | packages/ 172 | 173 | # Generated documentation folder 174 | docs/output/ 175 | 176 | # Temp folder used for publishing docs 177 | temp*/ 178 | 179 | # Test results produced by build 180 | TestResults.xml 181 | TestResult.xml 182 | 183 | # Nuget outputs 184 | nuget/*.nupkg 185 | release.cmd 186 | release.sh 187 | localpackages/ 188 | paket-files 189 | *.orig 190 | docs/content/license.md 191 | docs/content/release-notes.md 192 | .fake 193 | docs/tools/FSharp.Formatting.svclog 194 | .ionide 195 | *.bak 196 | project.lock.json 197 | 198 | browser/yarn\.lock 199 | 200 | promises/yarn\.lock 201 | 202 | nodejs/build/ 203 | 204 | nodejs/yarn\.lock 205 | 206 | nodejsbundle/build/App\.js 207 | 208 | nodejsbundle/yarn\.lock 209 | 210 | mocha/build/ 211 | 212 | mocha/yarn\.lock 213 | 214 | interopFableFromJS/yarn\.lock 215 | -------------------------------------------------------------------------------- /interopFableFromJS/.gitignore: -------------------------------------------------------------------------------- 1 | public/bundle.js* 2 | 3 | # Node 4 | node_modules/ 5 | 6 | ## Ignore Visual Studio temporary files, build results, and 7 | ## files generated by popular Visual Studio add-ons. 8 | 9 | # User-specific files 10 | *.suo 11 | *.user 12 | *.sln.docstates 13 | /build 14 | # Xamarin Studio / monodevelop user-specific 15 | *.userprefs 16 | *.dll.mdb 17 | *.exe.mdb 18 | 19 | # Build results 20 | 21 | [Dd]ebug/ 22 | [Rr]elease/ 23 | x64/ 24 | [Bb]in/ 25 | [Oo]bj/ 26 | 27 | # MSTest test Results 28 | [Tt]est[Rr]esult*/ 29 | [Bb]uild[Ll]og.* 30 | 31 | *_i.c 32 | *_p.c 33 | *.ilk 34 | *.meta 35 | *.obj 36 | *.pch 37 | *.pdb 38 | *.pgc 39 | *.pgd 40 | *.rsp 41 | *.sbr 42 | *.tlb 43 | *.tli 44 | *.tlh 45 | *.tmp 46 | *.tmp_proj 47 | *.log 48 | *.vspscc 49 | *.vssscc 50 | .builds 51 | *.pidb 52 | *.log 53 | *.scc 54 | 55 | # Visual C++ cache files 56 | ipch/ 57 | *.aps 58 | *.ncb 59 | *.opensdf 60 | *.sdf 61 | *.cachefile 62 | 63 | # Visual Studio profiler 64 | *.psess 65 | *.vsp 66 | *.vspx 67 | 68 | # Other Visual Studio data 69 | .vs/ 70 | 71 | # Guidance Automation Toolkit 72 | *.gpState 73 | 74 | # ReSharper is a .NET coding add-in 75 | _ReSharper*/ 76 | *.[Rr]e[Ss]harper 77 | 78 | # TeamCity is a build add-in 79 | _TeamCity* 80 | 81 | # DotCover is a Code Coverage Tool 82 | *.dotCover 83 | 84 | # NCrunch 85 | *.ncrunch* 86 | .*crunch*.local.xml 87 | 88 | # Installshield output folder 89 | #[Ee]xpress/ 90 | 91 | # DocProject is a documentation generator add-in 92 | DocProject/buildhelp/ 93 | DocProject/Help/*.HxT 94 | DocProject/Help/*.HxC 95 | DocProject/Help/*.hhc 96 | DocProject/Help/*.hhk 97 | DocProject/Help/*.hhp 98 | DocProject/Help/Html2 99 | DocProject/Help/html 100 | 101 | # Click-Once directory 102 | publish/ 103 | 104 | # Publish Web Output 105 | *.Publish.xml 106 | 107 | # Enable nuget.exe in the .nuget folder (though normally executables are not tracked) 108 | !.nuget/NuGet.exe 109 | 110 | # Windows Azure Build Output 111 | csx 112 | *.build.csdef 113 | 114 | # Windows Store app package directory 115 | AppPackages/ 116 | 117 | # Others 118 | sql/ 119 | *.Cache 120 | ClientBin/ 121 | [Ss]tyle[Cc]op.* 122 | ~$* 123 | *~ 124 | *.dbmdl 125 | *.[Pp]ublish.xml 126 | *.pfx 127 | *.publishsettings 128 | 129 | # RIA/Silverlight projects 130 | Generated_Code/ 131 | 132 | # Backup & report files from converting an old project file to a newer 133 | # Visual Studio version. Backup files are not needed, because we have git ;-) 134 | _UpgradeReport_Files/ 135 | Backup*/ 136 | UpgradeLog*.XML 137 | UpgradeLog*.htm 138 | 139 | # SQL Server files 140 | App_Data/*.mdf 141 | App_Data/*.ldf 142 | 143 | 144 | #LightSwitch generated files 145 | GeneratedArtifacts/ 146 | _Pvt_Extensions/ 147 | ModelManifest.xml 148 | 149 | # ========================= 150 | # Windows detritus 151 | # ========================= 152 | 153 | # Windows image file caches 154 | Thumbs.db 155 | ehthumbs.db 156 | 157 | # Folder config file 158 | Desktop.ini 159 | 160 | # Recycle Bin used on file shares 161 | $RECYCLE.BIN/ 162 | 163 | # Mac desktop service store files 164 | .DS_Store 165 | 166 | # =================================================== 167 | # Exclude F# project specific directories and files 168 | # =================================================== 169 | 170 | # NuGet Packages Directory 171 | packages/ 172 | 173 | # Generated documentation folder 174 | docs/output/ 175 | 176 | # Temp folder used for publishing docs 177 | temp*/ 178 | 179 | # Test results produced by build 180 | TestResults.xml 181 | TestResult.xml 182 | 183 | # Nuget outputs 184 | nuget/*.nupkg 185 | release.cmd 186 | release.sh 187 | localpackages/ 188 | paket-files 189 | *.orig 190 | docs/content/license.md 191 | docs/content/release-notes.md 192 | .fake 193 | docs/tools/FSharp.Formatting.svclog 194 | .ionide 195 | *.bak 196 | project.lock.json 197 | 198 | browser/yarn\.lock 199 | 200 | promises/yarn\.lock 201 | 202 | nodejs/build/ 203 | 204 | nodejs/yarn\.lock 205 | 206 | nodejsbundle/build/App\.js 207 | 208 | nodejsbundle/yarn\.lock 209 | 210 | mocha/build/ 211 | 212 | mocha/yarn\.lock 213 | 214 | interopFableFromJS/yarn\.lock 215 | -------------------------------------------------------------------------------- /reactComponent/.gitignore: -------------------------------------------------------------------------------- 1 | public/bundle.js* 2 | 3 | # Node 4 | node_modules/ 5 | 6 | ## Ignore Visual Studio temporary files, build results, and 7 | ## files generated by popular Visual Studio add-ons. 8 | 9 | # User-specific files 10 | *.suo 11 | *.user 12 | *.sln.docstates 13 | /build 14 | # Xamarin Studio / monodevelop user-specific 15 | *.userprefs 16 | *.dll.mdb 17 | *.exe.mdb 18 | 19 | # Build results 20 | 21 | [Dd]ebug/ 22 | [Rr]elease/ 23 | x64/ 24 | [Bb]in/ 25 | [Oo]bj/ 26 | 27 | # MSTest test Results 28 | [Tt]est[Rr]esult*/ 29 | [Bb]uild[Ll]og.* 30 | 31 | *_i.c 32 | *_p.c 33 | *.ilk 34 | *.meta 35 | *.obj 36 | *.pch 37 | *.pdb 38 | *.pgc 39 | *.pgd 40 | *.rsp 41 | *.sbr 42 | *.tlb 43 | *.tli 44 | *.tlh 45 | *.tmp 46 | *.tmp_proj 47 | *.log 48 | *.vspscc 49 | *.vssscc 50 | .builds 51 | *.pidb 52 | *.log 53 | *.scc 54 | 55 | # Visual C++ cache files 56 | ipch/ 57 | *.aps 58 | *.ncb 59 | *.opensdf 60 | *.sdf 61 | *.cachefile 62 | 63 | # Visual Studio profiler 64 | *.psess 65 | *.vsp 66 | *.vspx 67 | 68 | # Other Visual Studio data 69 | .vs/ 70 | 71 | # Guidance Automation Toolkit 72 | *.gpState 73 | 74 | # ReSharper is a .NET coding add-in 75 | _ReSharper*/ 76 | *.[Rr]e[Ss]harper 77 | 78 | # TeamCity is a build add-in 79 | _TeamCity* 80 | 81 | # DotCover is a Code Coverage Tool 82 | *.dotCover 83 | 84 | # NCrunch 85 | *.ncrunch* 86 | .*crunch*.local.xml 87 | 88 | # Installshield output folder 89 | #[Ee]xpress/ 90 | 91 | # DocProject is a documentation generator add-in 92 | DocProject/buildhelp/ 93 | DocProject/Help/*.HxT 94 | DocProject/Help/*.HxC 95 | DocProject/Help/*.hhc 96 | DocProject/Help/*.hhk 97 | DocProject/Help/*.hhp 98 | DocProject/Help/Html2 99 | DocProject/Help/html 100 | 101 | # Click-Once directory 102 | publish/ 103 | 104 | # Publish Web Output 105 | *.Publish.xml 106 | 107 | # Enable nuget.exe in the .nuget folder (though normally executables are not tracked) 108 | !.nuget/NuGet.exe 109 | 110 | # Windows Azure Build Output 111 | csx 112 | *.build.csdef 113 | 114 | # Windows Store app package directory 115 | AppPackages/ 116 | 117 | # Others 118 | sql/ 119 | *.Cache 120 | ClientBin/ 121 | [Ss]tyle[Cc]op.* 122 | ~$* 123 | *~ 124 | *.dbmdl 125 | *.[Pp]ublish.xml 126 | *.pfx 127 | *.publishsettings 128 | 129 | # RIA/Silverlight projects 130 | Generated_Code/ 131 | 132 | # Backup & report files from converting an old project file to a newer 133 | # Visual Studio version. Backup files are not needed, because we have git ;-) 134 | _UpgradeReport_Files/ 135 | Backup*/ 136 | UpgradeLog*.XML 137 | UpgradeLog*.htm 138 | 139 | # SQL Server files 140 | App_Data/*.mdf 141 | App_Data/*.ldf 142 | 143 | 144 | #LightSwitch generated files 145 | GeneratedArtifacts/ 146 | _Pvt_Extensions/ 147 | ModelManifest.xml 148 | 149 | # ========================= 150 | # Windows detritus 151 | # ========================= 152 | 153 | # Windows image file caches 154 | Thumbs.db 155 | ehthumbs.db 156 | 157 | # Folder config file 158 | Desktop.ini 159 | 160 | # Recycle Bin used on file shares 161 | $RECYCLE.BIN/ 162 | 163 | # Mac desktop service store files 164 | .DS_Store 165 | 166 | # =================================================== 167 | # Exclude F# project specific directories and files 168 | # =================================================== 169 | 170 | # NuGet Packages Directory 171 | packages/ 172 | 173 | # Generated documentation folder 174 | docs/output/ 175 | 176 | # Temp folder used for publishing docs 177 | temp*/ 178 | 179 | # Test results produced by build 180 | TestResults.xml 181 | TestResult.xml 182 | 183 | # Nuget outputs 184 | nuget/*.nupkg 185 | release.cmd 186 | release.sh 187 | localpackages/ 188 | paket-files 189 | *.orig 190 | docs/content/license.md 191 | docs/content/release-notes.md 192 | .fake 193 | docs/tools/FSharp.Formatting.svclog 194 | .ionide 195 | *.bak 196 | project.lock.json 197 | 198 | browser/yarn\.lock 199 | 200 | promises/yarn\.lock 201 | 202 | nodejs/build/ 203 | 204 | nodejs/yarn\.lock 205 | 206 | nodejsbundle/build/App\.js 207 | 208 | nodejsbundle/yarn\.lock 209 | 210 | mocha/build/ 211 | 212 | mocha/yarn\.lock 213 | 214 | interopFableFromJS/yarn\.lock 215 | -------------------------------------------------------------------------------- /fsx-script/.paket/Paket.Restore.targets: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | $(MSBuildAllProjects);$(MSBuildThisFileFullPath) 8 | 9 | $(MSBuildVersion) 10 | 15.0.0 11 | false 12 | true 13 | 14 | true 15 | $(MSBuildThisFileDirectory) 16 | $(MSBuildThisFileDirectory)..\ 17 | $(PaketRootPath)paket-files\paket.restore.cached 18 | $(PaketRootPath)paket.lock 19 | classic 20 | proj 21 | assembly 22 | native 23 | /Library/Frameworks/Mono.framework/Commands/mono 24 | mono 25 | 26 | 27 | $(PaketRootPath)paket.bootstrapper.exe 28 | $(PaketToolsPath)paket.bootstrapper.exe 29 | $([System.IO.Path]::GetDirectoryName("$(PaketBootStrapperExePath)"))\ 30 | 31 | "$(PaketBootStrapperExePath)" 32 | $(MonoPath) --runtime=v4.0.30319 "$(PaketBootStrapperExePath)" 33 | 34 | 35 | 36 | 37 | true 38 | true 39 | 40 | 41 | True 42 | 43 | 44 | False 45 | 46 | $(BaseIntermediateOutputPath.TrimEnd('\').TrimEnd('\/')) 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | $(PaketRootPath)paket 56 | $(PaketToolsPath)paket 57 | 58 | 59 | 60 | 61 | 62 | $(PaketRootPath)paket.exe 63 | $(PaketToolsPath)paket.exe 64 | 65 | 66 | 67 | 68 | 69 | <_DotnetToolsJson Condition="Exists('$(PaketRootPath)/.config/dotnet-tools.json')">$([System.IO.File]::ReadAllText("$(PaketRootPath)/.config/dotnet-tools.json")) 70 | <_ConfigContainsPaket Condition=" '$(_DotnetToolsJson)' != ''">$(_DotnetToolsJson.Contains('"paket"')) 71 | <_ConfigContainsPaket Condition=" '$(_ConfigContainsPaket)' == ''">false 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | <_PaketCommand>dotnet paket 83 | 84 | 85 | 86 | 87 | 88 | $(PaketToolsPath)paket 89 | $(PaketBootStrapperExeDir)paket 90 | 91 | 92 | paket 93 | 94 | 95 | 96 | 97 | <_PaketExeExtension>$([System.IO.Path]::GetExtension("$(PaketExePath)")) 98 | <_PaketCommand Condition=" '$(_PaketCommand)' == '' AND '$(_PaketExeExtension)' == '.dll' ">dotnet "$(PaketExePath)" 99 | <_PaketCommand Condition=" '$(_PaketCommand)' == '' AND '$(OS)' != 'Windows_NT' AND '$(_PaketExeExtension)' == '.exe' ">$(MonoPath) --runtime=v4.0.30319 "$(PaketExePath)" 100 | <_PaketCommand Condition=" '$(_PaketCommand)' == '' ">"$(PaketExePath)" 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | true 122 | $(NoWarn);NU1603;NU1604;NU1605;NU1608 123 | false 124 | true 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | $([System.IO.File]::ReadAllText('$(PaketRestoreCacheFile)')) 134 | 135 | 136 | 137 | 138 | 139 | 141 | $([System.Text.RegularExpressions.Regex]::Split(`%(Identity)`, `": "`)[0].Replace(`"`, ``).Replace(` `, ``)) 142 | $([System.Text.RegularExpressions.Regex]::Split(`%(Identity)`, `": "`)[1].Replace(`"`, ``).Replace(` `, ``)) 143 | 144 | 145 | 146 | 147 | %(PaketRestoreCachedKeyValue.Value) 148 | %(PaketRestoreCachedKeyValue.Value) 149 | 150 | 151 | 152 | 153 | true 154 | false 155 | true 156 | 157 | 158 | 162 | 163 | true 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | $(PaketIntermediateOutputPath)\$(MSBuildProjectFile).paket.references.cached 183 | 184 | $(MSBuildProjectFullPath).paket.references 185 | 186 | $(MSBuildProjectDirectory)\$(MSBuildProjectName).paket.references 187 | 188 | $(MSBuildProjectDirectory)\paket.references 189 | 190 | false 191 | true 192 | true 193 | references-file-or-cache-not-found 194 | 195 | 196 | 197 | 198 | $([System.IO.File]::ReadAllText('$(PaketReferencesCachedFilePath)')) 199 | $([System.IO.File]::ReadAllText('$(PaketOriginalReferencesFilePath)')) 200 | references-file 201 | false 202 | 203 | 204 | 205 | 206 | false 207 | 208 | 209 | 210 | 211 | true 212 | target-framework '$(TargetFramework)' or '$(TargetFrameworks)' files @(PaketResolvedFilePaths) 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | false 224 | true 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | $([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',').Length) 236 | $([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[0]) 237 | $([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[1]) 238 | $([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[4]) 239 | $([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[5]) 240 | 241 | 242 | %(PaketReferencesFileLinesInfo.PackageVersion) 243 | All 244 | runtime 245 | runtime 246 | true 247 | true 248 | 249 | 250 | 251 | 252 | $(PaketIntermediateOutputPath)/$(MSBuildProjectFile).paket.clitools 253 | 254 | 255 | 256 | 257 | 258 | 259 | 260 | 261 | $([System.String]::Copy('%(PaketCliToolFileLines.Identity)').Split(',')[0]) 262 | $([System.String]::Copy('%(PaketCliToolFileLines.Identity)').Split(',')[1]) 263 | 264 | 265 | %(PaketCliToolFileLinesInfo.PackageVersion) 266 | 267 | 268 | 269 | 273 | 274 | 275 | 276 | 277 | 278 | false 279 | 280 | 281 | 282 | 283 | 284 | <_NuspecFilesNewLocation Include="$(PaketIntermediateOutputPath)\$(Configuration)\*.nuspec"/> 285 | 286 | 287 | 288 | 289 | 290 | $(MSBuildProjectDirectory)/$(MSBuildProjectFile) 291 | true 292 | false 293 | true 294 | false 295 | true 296 | false 297 | true 298 | false 299 | true 300 | $(PaketIntermediateOutputPath)\$(Configuration) 301 | $(PaketIntermediateOutputPath) 302 | 303 | 304 | 305 | <_NuspecFiles Include="$(AdjustedNuspecOutputPath)\*.$(PackageVersion.Split(`+`)[0]).nuspec"/> 306 | 307 | 308 | 309 | 310 | 311 | 312 | 313 | 314 | 315 | 316 | 317 | 363 | 364 | 407 | 408 | 450 | 451 | 492 | 493 | 494 | 495 | -------------------------------------------------------------------------------- /withpaket/.paket/Paket.Restore.targets: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | $(MSBuildAllProjects);$(MSBuildThisFileFullPath) 8 | 9 | $(MSBuildVersion) 10 | 15.0.0 11 | false 12 | true 13 | 14 | true 15 | $(MSBuildThisFileDirectory) 16 | $(MSBuildThisFileDirectory)..\ 17 | $(PaketRootPath)paket-files\paket.restore.cached 18 | $(PaketRootPath)paket.lock 19 | classic 20 | proj 21 | assembly 22 | native 23 | /Library/Frameworks/Mono.framework/Commands/mono 24 | mono 25 | 26 | 27 | $(PaketRootPath)paket.bootstrapper.exe 28 | $(PaketToolsPath)paket.bootstrapper.exe 29 | $([System.IO.Path]::GetDirectoryName("$(PaketBootStrapperExePath)"))\ 30 | 31 | "$(PaketBootStrapperExePath)" 32 | $(MonoPath) --runtime=v4.0.30319 "$(PaketBootStrapperExePath)" 33 | 34 | 35 | 36 | 37 | true 38 | true 39 | 40 | 41 | True 42 | 43 | 44 | False 45 | 46 | $(BaseIntermediateOutputPath.TrimEnd('\').TrimEnd('\/')) 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | $(PaketRootPath)paket 56 | $(PaketToolsPath)paket 57 | 58 | 59 | 60 | 61 | 62 | $(PaketRootPath)paket.exe 63 | $(PaketToolsPath)paket.exe 64 | 65 | 66 | 67 | 68 | 69 | <_DotnetToolsJson Condition="Exists('$(PaketRootPath)/.config/dotnet-tools.json')">$([System.IO.File]::ReadAllText("$(PaketRootPath)/.config/dotnet-tools.json")) 70 | <_ConfigContainsPaket Condition=" '$(_DotnetToolsJson)' != ''">$(_DotnetToolsJson.Contains('"paket"')) 71 | <_ConfigContainsPaket Condition=" '$(_ConfigContainsPaket)' == ''">false 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | <_PaketCommand>dotnet paket 83 | 84 | 85 | 86 | 87 | 88 | $(PaketToolsPath)paket 89 | $(PaketBootStrapperExeDir)paket 90 | 91 | 92 | paket 93 | 94 | 95 | 96 | 97 | <_PaketExeExtension>$([System.IO.Path]::GetExtension("$(PaketExePath)")) 98 | <_PaketCommand Condition=" '$(_PaketCommand)' == '' AND '$(_PaketExeExtension)' == '.dll' ">dotnet "$(PaketExePath)" 99 | <_PaketCommand Condition=" '$(_PaketCommand)' == '' AND '$(OS)' != 'Windows_NT' AND '$(_PaketExeExtension)' == '.exe' ">$(MonoPath) --runtime=v4.0.30319 "$(PaketExePath)" 100 | <_PaketCommand Condition=" '$(_PaketCommand)' == '' ">"$(PaketExePath)" 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | true 122 | $(NoWarn);NU1603;NU1604;NU1605;NU1608 123 | false 124 | true 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | $([System.IO.File]::ReadAllText('$(PaketRestoreCacheFile)')) 134 | 135 | 136 | 137 | 138 | 139 | 141 | $([System.Text.RegularExpressions.Regex]::Split(`%(Identity)`, `": "`)[0].Replace(`"`, ``).Replace(` `, ``)) 142 | $([System.Text.RegularExpressions.Regex]::Split(`%(Identity)`, `": "`)[1].Replace(`"`, ``).Replace(` `, ``)) 143 | 144 | 145 | 146 | 147 | %(PaketRestoreCachedKeyValue.Value) 148 | %(PaketRestoreCachedKeyValue.Value) 149 | 150 | 151 | 152 | 153 | true 154 | false 155 | true 156 | 157 | 158 | 162 | 163 | true 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | $(PaketIntermediateOutputPath)\$(MSBuildProjectFile).paket.references.cached 183 | 184 | $(MSBuildProjectFullPath).paket.references 185 | 186 | $(MSBuildProjectDirectory)\$(MSBuildProjectName).paket.references 187 | 188 | $(MSBuildProjectDirectory)\paket.references 189 | 190 | false 191 | true 192 | true 193 | references-file-or-cache-not-found 194 | 195 | 196 | 197 | 198 | $([System.IO.File]::ReadAllText('$(PaketReferencesCachedFilePath)')) 199 | $([System.IO.File]::ReadAllText('$(PaketOriginalReferencesFilePath)')) 200 | references-file 201 | false 202 | 203 | 204 | 205 | 206 | false 207 | 208 | 209 | 210 | 211 | true 212 | target-framework '$(TargetFramework)' or '$(TargetFrameworks)' files @(PaketResolvedFilePaths) 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | false 224 | true 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | $([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',').Length) 236 | $([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[0]) 237 | $([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[1]) 238 | $([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[4]) 239 | $([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[5]) 240 | 241 | 242 | %(PaketReferencesFileLinesInfo.PackageVersion) 243 | All 244 | runtime 245 | runtime 246 | true 247 | true 248 | 249 | 250 | 251 | 252 | $(PaketIntermediateOutputPath)/$(MSBuildProjectFile).paket.clitools 253 | 254 | 255 | 256 | 257 | 258 | 259 | 260 | 261 | $([System.String]::Copy('%(PaketCliToolFileLines.Identity)').Split(',')[0]) 262 | $([System.String]::Copy('%(PaketCliToolFileLines.Identity)').Split(',')[1]) 263 | 264 | 265 | %(PaketCliToolFileLinesInfo.PackageVersion) 266 | 267 | 268 | 269 | 273 | 274 | 275 | 276 | 277 | 278 | false 279 | 280 | 281 | 282 | 283 | 284 | <_NuspecFilesNewLocation Include="$(PaketIntermediateOutputPath)\$(Configuration)\*.nuspec"/> 285 | 286 | 287 | 288 | 289 | 290 | $(MSBuildProjectDirectory)/$(MSBuildProjectFile) 291 | true 292 | false 293 | true 294 | false 295 | true 296 | false 297 | true 298 | false 299 | true 300 | $(PaketIntermediateOutputPath)\$(Configuration) 301 | $(PaketIntermediateOutputPath) 302 | 303 | 304 | 305 | <_NuspecFiles Include="$(AdjustedNuspecOutputPath)\*.$(PackageVersion.Split(`+`)[0]).nuspec"/> 306 | 307 | 308 | 309 | 310 | 311 | 312 | 313 | 314 | 315 | 316 | 317 | 363 | 364 | 407 | 408 | 450 | 451 | 492 | 493 | 494 | 495 | --------------------------------------------------------------------------------