Skip to content

Instantly share code, notes, and snippets.

View AlexZeitler's full-sized avatar
👷‍♂️
Building stuff

Alexander Zeitler AlexZeitler

👷‍♂️
Building stuff
View GitHub Profile
@AlexZeitler
AlexZeitler / set-keycloak-client-secret.groovy
Created July 11, 2021 19:02 — forked from goeh/set-keycloak-client-secret.groovy
Inject client secrets from a local file into a Keycloak Realm Export (JSON) file
import groovy.json.JsonSlurper
import groovy.json.JsonOutput
def jsonSlurper = new JsonSlurper()
def secrets = jsonSlurper.parse(new File(args[1] ?: "secrets.json")).clients.inject([:]) { map, c -> map[c.client] = c.secret; map }
def realm = jsonSlurper.parse(new File(args[0]))
for(client in realm.clients) {
if(secrets[client.clientId]) {
@AlexZeitler
AlexZeitler / CloudAgent-1.fs
Created June 13, 2021 20:38 — forked from isaacabraham/CloudAgent-1.fs
Local Mailbox Processor
// Our simple domain model
type Priority =
| Low
| Normal
| High
type Message = {
Text : string
Priority : Priority
}
@AlexZeitler
AlexZeitler / HttpClient.FSharp.fs
Created May 30, 2021 19:57 — forked from jhewlett/HttpClient.FSharp.fs
Functional wrapper around System.Net.Http.HttpClient. Inspired in part by Http.fs (https://github.com/haf/Http.fs) and FSharp.Data (https://fsharp.github.io/FSharp.Data/library/Http.html)
namespace HttpClient.FSharp
open System
open System.Net.Http
type HttpMethod =
| Post
| Put
| Delete
| Get
@AlexZeitler
AlexZeitler / idiomaticjsonserialiser.fs
Created May 15, 2021 23:25 — forked from isaacabraham/idiomaticjsonserialiser.fs
This JSON.Net converter handles F# discriminated unions with more "idiomatic" JSON than what is generated by the current version of JSON .NET. Option types and single case DUs are transparently handled, and tuple-style properties are used rather than array notation.
namespace Newtonsoft.Json.Converters
open Microsoft.FSharp.Reflection
open Newtonsoft.Json
open System
type IdiomaticDuConverter() =
inherit JsonConverter()
[<Literal>]
@AlexZeitler
AlexZeitler / SCU.fs
Created May 15, 2021 23:25 — forked from JordanMarr/SCU.fs
JSON.NET SCU Converter
// Single case union
[<Struct>] type MHPI = MHPI of double
// An entity that contains SCU
type Entity = {
Foo: string
Bar: MHPI
}
// JSON.NET Converter
namespace Infrastructure
open System.Text.Encodings.Web
open System.Text.Json
open System.Text.Json.Serialization
[<RequireQualifiedAccess>]
module JsonSerializer =
let private setupOptions (options: JsonSerializerOptions) =
options.PropertyNamingPolicy <- JsonNamingPolicy.CamelCase
@AlexZeitler
AlexZeitler / .editorconfig
Last active May 2, 2021 20:07
TypeScript + React + Tailwind + VS Code Project settings
root = false
[**/**.{yml,ts,tsx,js,json,jsx,html}]
indent_style = space
indent_size = 2
insert_final_newline = true
@AlexZeitler
AlexZeitler / .tmux.conf
Last active March 20, 2021 12:10
tmux / tmuxinator named panes sample
# enable named panes
set -g pane-border-format "#{pane_index} #{pane_title}"
set -g pane-border-status bottom
@AlexZeitler
AlexZeitler / .editorconfig
Last active August 30, 2021 11:33
TypeScript + Node + VS Code Project settings
root = false
[**/**.yml]
indent_style = space
indent_size = 2
insert_final_newline = true
[**/**.ts]
indent_style = space
indent_size = 2