Skip to content

Instantly share code, notes, and snippets.

@dietergoetelen
dietergoetelen / endpoint.ts
Created November 11, 2022 12:38
Strong typed endpoint
type Split<S extends string, D extends string> = S extends `${infer T}${D}${infer U}` ? [T, ...Split<U, D>] : [S];
type Cast<S extends string> = S extends 'string' ? string : S extends 'number' ? number : never;
type Urlify<S extends string> = S extends `{${infer TKey}:${infer TType}}` ? [TKey, Cast<TType>] : S extends `{${infer TKey}}` ? [TKey, string | number] : S
type UrlifyEach<V, L extends string[] = []> =
V extends []
? L
: V extends [string]
? [...L, Urlify<V[0]>]
: V extends [string, ...infer R]
@dietergoetelen
dietergoetelen / README.md
Last active June 24, 2022 08:03 — forked from hydrosquall/webhook.json
Webhook Payload: Datadog Graphs -> Discord Bot

Resources

Datadog

Making discord webhooks

@dietergoetelen
dietergoetelen / people
Created November 20, 2021 11:02
starwars
[{
"name": "Luke Skywalker",
"height": "172",
"gender": "male"
}, {
"name": "C-3PO",
"height": "167",
"gender": "n/a"
}, {
"name": "R2-D2",
@dietergoetelen
dietergoetelen / ContentPlaceholder.vue
Created August 13, 2021 11:53
Content placeholder component in #vue3
<template>
<div class="content-placeholder gap-1 animate-pulse">
<div v-for="template of templates" :key="template" class="bg-gray-300" :style="{gridArea: template}" />
</div>
</template>
<script lang="ts" setup>
const props = defineProps<{
template: Array<Array<string>>
rows: string
git log --pretty=format: --name-only -- "*.ts" --since="10 day ago" | sort | uniq -c | sort -rg | head -n 20
5170
# OpenSSL Root CA configuration file
# Copy to /root/ca/openssl_root.cnf
[ ca ]
default_ca = CA_default
[ CA_default ]
# Directory and file locations.
dir = /root/ca
certs = $dir/certs
Verifying my Blockstack ID is secured with the address 1CTEvvs45CBcgVGLkkmqmvAsu3ZaNZftke https://explorer.blockstack.org/address/1CTEvvs45CBcgVGLkkmqmvAsu3ZaNZftke
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Syntra.AddressCard
{
class Program
{