web_lib

Common web application libraries
git clone https://radroots.dev/git/web_lib.git
Log | Files | Refs | LICENSE

commit 897a779ae1fbfc50542fe52744d471711060ce21
parent 1db956daa4a39f9d11f916f4953d4224587144fe
Author: triesap <137732411+triesap@users.noreply.github.com>
Date:   Fri, 30 Aug 2024 14:45:00 +0000

apps-lib: swap out ndksvelte due to incompatibility with svelte version 5, add ndk utils, add time utils

Diffstat:
Mapps-lib/package.json | 9+++++----
Mapps-lib/src/lib/index.ts | 1+
Mapps-lib/src/lib/stores/ndk.ts | 10++++------
Mapps-lib/src/lib/utils/ndk.ts | 7+++----
Aapps-lib/src/lib/utils/time.ts | 9+++++++++
5 files changed, 22 insertions(+), 14 deletions(-)

diff --git a/apps-lib/package.json b/apps-lib/package.json @@ -32,6 +32,7 @@ "devDependencies": { "@sveltejs/kit": "^2.0.0", "@sveltejs/package": "^2.0.0", + "@types/luxon": "^3.4.2", "publint": "^0.1.9", "svelte": "^5.0.0-next.1", "svelte-check": "^3.6.0", @@ -41,13 +42,13 @@ "vite": "^5.0.11" }, "dependencies": { - "@nostr-dev-kit/ndk": "^2.10.0", - "@nostr-dev-kit/ndk-cache-dexie": "^2.5.1", - "@nostr-dev-kit/ndk-svelte": "^2.2.18", + "@nostr-dev-kit/ndk": "^2.7.1", + "@nostr-dev-kit/ndk-cache-dexie": "^2.3.1", "@radroots/sveltekit-search-params": "workspace:*", "@radroots/theme": "workspace:*", "@sveltekit-i18n/base": "^1.3.7", - "@sveltekit-i18n/parser-icu": "^1.0.8" + "@sveltekit-i18n/parser-icu": "^1.0.8", + "luxon": "^3.5.0" }, "publishConfig": { "access": "public" diff --git a/apps-lib/src/lib/index.ts b/apps-lib/src/lib/index.ts @@ -20,3 +20,4 @@ export { default as glyph } from "./ui/glyph.svelte" export * from "./utils/client" export * from "./utils/dom" export * from "./utils/ndk" +export * from "./utils/time" diff --git a/apps-lib/src/lib/stores/ndk.ts b/apps-lib/src/lib/stores/ndk.ts @@ -1,16 +1,14 @@ -import type { NDKCacheAdapter } from "@nostr-dev-kit/ndk"; -import { type NDKUser } from "@nostr-dev-kit/ndk"; +import NDK, { type NDKCacheAdapter, type NDKUser } from "@nostr-dev-kit/ndk"; import NDKCacheAdapterDexie from "@nostr-dev-kit/ndk-cache-dexie"; -import NDKSvelte from "@nostr-dev-kit/ndk-svelte"; import { writable } from "svelte/store"; let cacheAdapter: NDKCacheAdapter | undefined; if (typeof window !== `undefined`) cacheAdapter = new NDKCacheAdapterDexie({ dbName: "-radroots-app-ndk" }); -const _ndk = new NDKSvelte({ +const _ndk = new NDK({ cacheAdapter, - clientName: "Radroots", + clientName: "ยป--`--,---", }); -export const ndk = writable<NDKSvelte>(_ndk); +export const ndk = writable<NDK>(_ndk); export const ndk_user = writable<NDKUser>(); diff --git a/apps-lib/src/lib/utils/ndk.ts b/apps-lib/src/lib/utils/ndk.ts @@ -1,9 +1,8 @@ -import { NDKEvent, NDKPrivateKeySigner, NDKUser } from '@nostr-dev-kit/ndk'; -import NDKSvelte from "@nostr-dev-kit/ndk-svelte"; +import NDK, { NDKEvent, NDKPrivateKeySigner, NDKUser } from '@nostr-dev-kit/ndk'; import { time_now_ms } from "./client"; export async function ndk_setup_privkey(opts: { - $ndk: NDKSvelte; + $ndk: NDK; private_key: string; }): Promise<NDKUser | undefined> { try { @@ -20,7 +19,7 @@ export async function ndk_setup_privkey(opts: { }; export async function ndk_event(opts: { - $ndk: NDKSvelte; + $ndk: NDK; $ndk_user: NDKUser; basis: { kind: number; diff --git a/apps-lib/src/lib/utils/time.ts b/apps-lib/src/lib/utils/time.ts @@ -0,0 +1,8 @@ +import { DateTime } from "luxon"; + +export function time_fmt_nostr_event(locale: string, epoch_s?: number): string { + const dt = DateTime.fromSeconds(epoch_s); + if (!dt.isValid) return ``; + const time = dt.setLocale(locale).toLocaleString(DateTime.DATETIME_MED) + return time; +}; +\ No newline at end of file