forked from coracle/flotilla
27 lines
791 B
TypeScript
27 lines
791 B
TypeScript
import * as nip19 from "nostr-tools/nip19"
|
|
import {range, DAY, hexToBytes, bytesToHex} from "@welshman/lib"
|
|
|
|
export const nsecEncode = (secret: string) => nip19.nsecEncode(hexToBytes(secret))
|
|
|
|
export const nsecDecode = (nsec: string) => {
|
|
const {type, data} = nip19.decode(nsec)
|
|
|
|
if (type !== "nsec") throw new Error(`Invalid nsec: ${nsec}`)
|
|
|
|
return bytesToHex(data)
|
|
}
|
|
|
|
export const day = (seconds: number) => Math.floor(seconds / DAY)
|
|
|
|
export const daysBetween = (start: number, end: number) => [...range(start, end, DAY)].map(day)
|
|
|
|
export const ucFirst = (s: string) => s.slice(0, 1).toUpperCase() + s.slice(1)
|
|
|
|
export const buildUrl = (base: string | URL, ...pathname: string[]) => {
|
|
const url = new URL(base)
|
|
|
|
url.pathname = '/' + pathname.join('/')
|
|
|
|
return url.toString()
|
|
}
|