Skip to content

Instantly share code, notes, and snippets.

import { randomUUIDv7 } from "bun";
import z from "zod";
const mk_endpoint = <TReq, TRes, TPath extends string = string>(meta: {
path: TPath;
method?: string;
input_schema: z.ZodType<TReq>;
output_schema: z.ZodType<TRes>;
handler: (args: {
input: TReq;
import { randomUUIDv7 } from 'bun';
import { Map, List, Set, set, } from 'immutable'
import z from 'zod';
type HttpMethod = "GET" | "POST"
type Request = { body: string; url: string; method: HttpMethod; headers: Map<string, string> }
type Response = { body: string; url: string, method: HttpMethod; headers: Map<string, string> }
{
"description": "Capslock: short press toggles language, hold or with modifiers acts as command+control+option+shift",
"manipulators": [
{
"conditions": [
{
"input_sources": [{ "language": "en" }],
"type": "input_source_if"
}
],
open System
open System.Data
open System.Text.Json
open Microsoft.FSharp.Core
type request = { path: string; body: string; headers: (string * string) list }
type response = { body: string; code: int; headers: (string * string) list }
type 'env context = { request: request; response: response; env: 'env }
type 'env handler = 'env context -> 'env context option
namespace Application.Domain
open System
open Application.Domain
open Common
open System.Collections.Generic
open System.Threading.Tasks
open Application
open FSharp.UMX
public record GetFirstNameState() : IChatState
{
public ChatView View() => ChatView.Multiple(
ChatView.WithText("Enter first name"),
ChatView.WithTextHandler(OnText)
);
private async ValueTask<IChatState> OnText(TextMessage msg)
{
return new GetLastName(msg.Text);
@BashkaMen
BashkaMen / free.fsx
Created February 17, 2022 23:26 — forked from battermann/free.fsx
Free Monad like pattern in F#
#load @"paket-files/fsprojects/Chessie/src/Chessie/ErrorHandling.fs"
type Continuation<'output, 'next> = 'output -> 'next
module TerminalDsl =
open Chessie.ErrorHandling
type Terminal<'next> =
| WriteLine of string * Continuation<unit, 'next>
| ReadLine of unit * Continuation<string, 'next>
@BashkaMen
BashkaMen / xSet.fs
Last active February 3, 2022 10:39
open System.Collections.Generic
type xSet<'Id, 'T when 'Id : comparison and 'T : equality>(itemId, source: Map<'Id, 'T>) =
let mkNew source = xSet(itemId, source)
member val private HashCode = hash source
override this.GetHashCode() = this.HashCode
override this.Equals other =
open System
open System.Collections.Generic
let inline ( ^ ) f x = f x
type Terminal<'next> =
| WriteLine of string * (unit -> 'next)
| ReadLine of unit * (string -> 'next)
using System;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Logging;
using Udr.Application;
namespace Udr.Web
{
public class ExceptionHandler : IMiddleware
{