Skip to content

Instantly share code, notes, and snippets.

@Kimserey
Kimserey / Client.fs
Created October 21, 2015 15:54
W# UI.Next routing with easy way to add new pages
namespace RouterTest
open WebSharper
open WebSharper.JavaScript
open WebSharper.JQuery
open WebSharper.UI.Next
open WebSharper.UI.Next.Client
open WebSharper.UI.Next.Html
[<JavaScript>]
@Kimserey
Kimserey / build-instances.fsx
Last active October 25, 2015 17:08
FAKE build script to deploy W# UI.Next SPA. Defines multiple targets depending on the number of instances. Clean, build, deploy and run on IIS express website for particular instance on port 9090 by default. Can be overwritten with -ev port XXXX
// --------------------------------------------------------------------------------------
// Build instances used in build.fsx to create Targets
// --------------------------------------------------------------------------------------
module BuildInstances
// Add new instances here
//
let instances = [
"earth"
@Kimserey
Kimserey / script.fsx
Created October 28, 2015 14:01
Write to CSV
module UserTable =
open System.IO
type List =
static member Write (path:string) (data:'a list) =
use writer = new StreamWriter(path)
data |> List.iter writer.WriteLine
let makeRow (data: string) =
sprintf "id_%s_1,User %s 1,xx@gmail.com,TOKENHASH"
<| data.Replace('-', '_')
@Kimserey
Kimserey / Client.fs
Created November 2, 2015 09:19
Error while building with FAKE script. `ConfigMacro: error: No default constructor`
namespace MacroTest
open WebSharper
open WebSharper.JavaScript
open WebSharper.JQuery
open WebSharper.UI.Next
open WebSharper.UI.Next.Client
open WebSharper.UI.Next.Html
open WebSharper.Core.Quotations
open WebSharper.Core.JavaScript.Core
@Kimserey
Kimserey / Main.fs
Created November 15, 2015 01:27
Sample Sitelet with UI.Next and Owin selfhost
namespace Sample
open WebSharper
open WebSharper.JavaScript
open WebSharper.Sitelets
open WebSharper.UI.Next
open WebSharper.UI.Next.Html
module Resources =
open WebSharper.Core.Resources
@Kimserey
Kimserey / Build.cmd
Last active December 19, 2016 20:00
FAKE script to compile WebSharper JS for specific folder. Files are loaded in order based on fsproj. Ex: `Build.cmd instance=test` will compile to JS all the fs files in \config\test\.
@echo off
cls
..\packages\FAKE\tools\FAKE.exe BuildJS.fsx %*
@Kimserey
Kimserey / MainActivity.fs
Created November 25, 2015 00:16
WebView for Xamarin Android in F#
namespace App2
open System
open Android.App
open Android.Content
open Android.OS
open Android.Runtime
open Android.Views
open Android.Widget
@Kimserey
Kimserey / Bootstrap.fs
Created December 10, 2015 16:40
Bootstrap modal with WebSharper.UI.Next
open WebSharper
open WebSharper.JavaScript
open WebSharper.JQuery
open WebSharper.UI.Next
open WebSharper.UI.Next.Html
open WebSharper.UI.Next.Client
[<JavaScript>]
module Bootstrap =
@Kimserey
Kimserey / authentication.fs
Last active December 21, 2015 06:36
Agent for countdown
module private CountdownExpiryAgent =
open Modal
type Operation =
| Reset of remainingSecs: int
| Tick
| RegisterHandler of logout: (unit -> unit)
let agent (rv: Var<int>) courtesy =
MailboxProcessor.Start(fun inbox ->
@Kimserey
Kimserey / agent.fs
Created December 21, 2015 06:37
Mailbox processor sample
type OperationTest =
| Increment
| Decrement
let agent = MailboxProcessor.Start(fun inbox ->
let rec loop state: Async<unit> = async {
let! msg = inbox.Receive()
match msg with
| Increment -> return! loop (state + 1)