Browse Source

fix: repo event tag rendering

- get event pubkey in using correct parameter name
- get r tag value for unique_commit
- extract t tags

a typeguard is require like in ngit to ensure the r tag is
formatted as unique_commit
master
DanConwayDev 2 years ago
parent
commit
c32479de20
No known key found for this signature in database
GPG Key ID: 68E15486D73F75E1
  1. 10
      src/lib/stores/repo.ts

10
src/lib/stores/repo.ts

@ -1,4 +1,4 @@
import { NDKRelaySet, NDKSubscription } from '@nostr-dev-kit/ndk' import { NDKEvent, NDKRelaySet, NDKSubscription } from '@nostr-dev-kit/ndk'
import { writable, type Unsubscriber, type Writable } from 'svelte/store' import { writable, type Unsubscriber, type Writable } from 'svelte/store'
import { base_relays, ndk } from './ndk' import { base_relays, ndk } from './ndk'
import type { Repo } from '$lib/components/repo/type' import type { Repo } from '$lib/components/repo/type'
@ -42,12 +42,12 @@ export const ensureSelectedRepo = async (repo_id: string): Promise<Repo> => {
) )
return new Promise((r) => { return new Promise((r) => {
sub.on('event', (event) => { sub.on('event', (event: NDKEvent) => {
try { try {
if (event.kind == repo_kind && event.tagValue('d') == repo_id) { if (event.kind == repo_kind && event.tagValue('d') == repo_id) {
const maintainers = [ const maintainers = [
{ {
hexpubkey: event.pub_key, hexpubkey: event.pubkey,
loading: true, loading: true,
npub: '', npub: '',
} as User, } as User,
@ -66,11 +66,11 @@ export const ensureSelectedRepo = async (repo_id: string): Promise<Repo> => {
selected_repo.set({ selected_repo.set({
loading: false, loading: false,
repo_id: event.replaceableDTag(), repo_id: event.replaceableDTag(),
unique_commit: event.getMatchingTags('r'), unique_commit: event.tagValue('r') || undefined,
name: event.tagValue('name') || '', name: event.tagValue('name') || '',
description: event.tagValue('description') || '', description: event.tagValue('description') || '',
clone: event.tagValue('clone') || '', clone: event.tagValue('clone') || '',
tags: event.getMatchingTags('t') || [], tags: event.getMatchingTags('t').map((t) => t[1]) || [],
maintainers, maintainers,
relays: event.getMatchingTags('relay').map((t: string[]) => t[1]), relays: event.getMatchingTags('relay').map((t: string[]) => t[1]),
}) })

Loading…
Cancel
Save