Skip to content

Instantly share code, notes, and snippets.

View allVariants.elm
type TrafficLight
= Red
| Yellow
| Green
allTrafficLight : List TrafficLight
allTrafficLight =
let
helper list =
@choonkeat
choonkeat / Custom Type Naming Convention.md
Last active Oct 6, 2021
Custom Type Naming Convention (hope I can gist search this time; wrote it before)
View Custom Type Naming Convention.md

In a type specific module, we can name succinctly

module Channel

type Channel
    = Alpha
    | Beta
@choonkeat
choonkeat / gist:2297910
Created Apr 4, 2012
street names of singapore
View gist:2297910
Abingdon Road
Adam Drive
Adam Park
Adam Road
Adis Road
Admiralty Drive
Admiralty Lane
Admiralty Link
Admiralty Road
Admiralty Road East
@choonkeat
choonkeat / external-aws-account.tf
Last active Aug 1, 2021
terraform declaration to "Another AWS account" with "external ID" for infrastructure scanning purpose, e.g. Cloudcraft
View external-aws-account.tf
resource "aws_iam_role" "foobar-role" {
name = "foobar"
path = "/"
assume_role_policy = data.aws_iam_policy_document.foobar-assume-role-policy-document.json
managed_policy_arns = [aws_iam_policy.foobar-policy.arn]
}
data "aws_iam_policy_document" "foobar-assume-role-policy-document" {
statement {
actions = ["sts:AssumeRole"]
View see.tailwind.grid.html
<div class="max-w-screen bg-gray-100 text-center">
<span class="text-red-400 sm:hidden">xs</span>
<span class="text-yellow-400 hidden sm:inline md:hidden">sm</span>
<span class="text-green-400 hidden md:inline lg:hidden">md</span>
<span class="text-blue-400 hidden lg:inline xl:hidden">lg</span>
<span class="text-purple-400 hidden xl:inline 2xl:hidden">xl</span>
<span class="text-pink-400 hidden 2xl:inline 3xl:hidden">2xl</span>
</div>
@choonkeat
choonkeat / Http.Extra.elm
Last active Jul 7, 2021
Http.task { resolver = Http.stringResolver decoder, ... }
View Http.Extra.elm
module Http.Extra exposing (..)
import Http
import Json.Decode
{-| to obtain a String from `Http.task`
Http.task
{ resolver = Http.stringResolver httpStringBodyResolver
@choonkeat
choonkeat / elm-compile.sh
Created Apr 20, 2021
fix for atom-elmjutsu: configure elm and elm-test executable path to these 2 scripts instead
View elm-compile.sh
#!/bin/sh
if $(which elm) $*
then
echo '{"type":"compile-errors","errors":[]}' >&2
else
touch $0
fi
@choonkeat
choonkeat / env2file.js
Last active Mar 17, 2021
node scripts/env2file.js > src/Env.elm
View env2file.js
function camelize (str) {
let parts = str.replace(/_/g, ' ').toLowerCase().split(/\W+/)
.reduce(function (sum, s) {
if (typeof sum === 'string') sum = [sum]
if (sum[0]) return [...sum, s[0].toUpperCase() + s.slice(1)]
return [s]
})
return (typeof parts === 'string' ? parts : parts.join(''))
}
console.log(`module Env exposing (..)
View ICal.elm
module ICal exposing
( VAlarmAction(..)
, VAlarmTrigger(..)
, VCalendar(..)
, VEvent(..)
, VEventProp(..)
, VEventStatusValue(..)
, eventPropString
, eventString
, string