This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
type Prettify<T> = | |
& { [K in keyof T]: T[K] } | |
& {}; | |
type KvConsistencyOptions = Parameters<Deno.Kv['get']>[1]; | |
interface MapTypedKv<K extends string, V extends unknown> { | |
delete(id: K): Promise<void>; | |
get(id: K, options?: KvConsistencyOptions): Promise<Deno.KvEntryMaybe<V>>; | |
getMany<T extends readonly unknown[]>( |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
type ByteFormatStr = "b" | "gb" | "kb" | "mb" | "pb" | "tb"; | |
type ByteSize = `${number}${ByteFormatStr}`; | |
interface NextApiConfig { | |
api?: { | |
bodyParser?: | |
| false | |
| { | |
sizeLimit: ByteSize; | |
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* Creates a promise that is resolved with a disctionary of results when all of the provided Promises | |
* resolve, or rejected when any Promise is rejected. | |
* | |
* This function is derived from the standard `Promise.all` function, but it works with a dictionary | |
* of promises instead of an array. | |
* | |
* @param values A dictionary of Promises. | |
* | |
* @example |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import { type ReactNode } from 'react'; | |
interface NextHeadProps { | |
params?: Record<string, string | number | boolean>; | |
} | |
interface HeadProps { | |
description?: string; | |
title?: string; | |
titleTemplate?: `%s${string}`; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
type GenerateStaticParamsFn<TParams extends Array<unknown>> = () => TParams | Promise<TParams>; | |
type ArrayElement<A> = A extends ReadonlyArray<infer T> ? T : never; | |
type UnwrapPromise<T> = T extends Promise<infer U> ? U : T; | |
interface NextPageProps< | |
TGenerateStaticParams extends GenerateStaticParamsFn<TParams> | undefined = undefined, | |
TParams extends Array<unknown> = Array<unknown>, | |
> { |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function flipEntries <TValue = unknown> (obj: Record<string, TValue>) { | |
return Object.fromEntries(Object.entries(obj).map(([key, value]) => Array.isArray(value) ? [...value.map((v) => [v, key])] : [[value, key]]).flat()) | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// https://twitter.com/bidah/status/1563197138854588417 | |
import reduceRight from 'lodash/reduceRight'; | |
import type { ElementType, ReactNode } from 'react'; | |
interface ComposeProvidersProps { | |
components: Array<ElementType>; | |
children: ReactNode; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
type ByteFormatStr = 'b' | 'gb' | 'kb' | 'mb' | 'pb' | 'tb'; | |
interface ByteOptions { | |
decimalPlaces?: number; | |
fixedDecimals?: boolean; | |
thousandsSeparator?: string; | |
unit?: ByteFormatStr; | |
unitSeparator?: string; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* Chunkify | |
* | |
* @description Splits up an array into chnks of arrays of a specified size | |
* | |
* @param {Array} array - The input array that will be chunkified | |
* @param {number} [chunkSize] - The size of each chunk (**Default**: 10) | |
*/ | |
export function chunkify<T>(array: Array<T>, chunkSize: number = 10) { | |
let results = new Array<Array<T>>(); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// api/database/incidents.ts | |
interface Incident { | |
id: string; | |
url: string; | |
name: string; | |
} | |
interface UnresolvedIncidentsResponse { | |
page: { |
NewerOlder