Add a few utilities
This commit is contained in:
Generated
+8
-8
@@ -3287,14 +3287,14 @@
|
||||
},
|
||||
"packages/app": {
|
||||
"name": "@welshman/app",
|
||||
"version": "0.0.6",
|
||||
"version": "0.0.7",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@welshman/lib": "0.0.17",
|
||||
"@welshman/net": "0.0.22",
|
||||
"@welshman/signer": "0.0.5",
|
||||
"@welshman/store": "0.0.7",
|
||||
"@welshman/util": "0.0.31",
|
||||
"@welshman/util": "0.0.32",
|
||||
"fuse.js": "^7.0.0",
|
||||
"idb": "^8.0.0",
|
||||
"svelte": "^4.2.18",
|
||||
@@ -3343,7 +3343,7 @@
|
||||
"dependencies": {
|
||||
"@welshman/lib": "0.0.17",
|
||||
"@welshman/net": "0.0.22",
|
||||
"@welshman/util": "0.0.31",
|
||||
"@welshman/util": "0.0.32",
|
||||
"nostr-tools": "^2.7.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
@@ -3381,7 +3381,7 @@
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@welshman/lib": "0.0.17",
|
||||
"@welshman/util": "0.0.31"
|
||||
"@welshman/util": "0.0.32"
|
||||
},
|
||||
"devDependencies": {
|
||||
"gts": "^5.0.1",
|
||||
@@ -3419,7 +3419,7 @@
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@welshman/lib": "0.0.17",
|
||||
"@welshman/util": "0.0.31",
|
||||
"@welshman/util": "0.0.32",
|
||||
"isomorphic-ws": "^5.0.0",
|
||||
"ws": "^8.16.0"
|
||||
},
|
||||
@@ -3436,7 +3436,7 @@
|
||||
"dependencies": {
|
||||
"@welshman/lib": "0.0.17",
|
||||
"@welshman/net": "0.0.22",
|
||||
"@welshman/util": "0.0.31",
|
||||
"@welshman/util": "0.0.32",
|
||||
"nostr-tools": "^2.7.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
@@ -3451,7 +3451,7 @@
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@welshman/lib": "0.0.17",
|
||||
"@welshman/util": "0.0.31",
|
||||
"@welshman/util": "0.0.32",
|
||||
"svelte": "^4.2.18"
|
||||
},
|
||||
"devDependencies": {
|
||||
@@ -3462,7 +3462,7 @@
|
||||
},
|
||||
"packages/util": {
|
||||
"name": "@welshman/util",
|
||||
"version": "0.0.31",
|
||||
"version": "0.0.32",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@welshman/lib": "0.0.17",
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
"@welshman/net": "0.0.22",
|
||||
"@welshman/signer": "0.0.5",
|
||||
"@welshman/store": "0.0.7",
|
||||
"@welshman/util": "0.0.31",
|
||||
"@welshman/util": "0.0.32",
|
||||
"fuse.js": "^7.0.0",
|
||||
"idb": "^8.0.0",
|
||||
"svelte": "^4.2.18",
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
"dependencies": {
|
||||
"@welshman/lib": "0.0.17",
|
||||
"@welshman/net": "0.0.22",
|
||||
"@welshman/util": "0.0.31",
|
||||
"@welshman/util": "0.0.32",
|
||||
"nostr-tools": "^2.7.2"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,6 +32,6 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@welshman/lib": "0.0.17",
|
||||
"@welshman/util": "0.0.31"
|
||||
"@welshman/util": "0.0.32"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@welshman/lib": "0.0.17",
|
||||
"@welshman/util": "0.0.31",
|
||||
"@welshman/util": "0.0.32",
|
||||
"isomorphic-ws": "^5.0.0",
|
||||
"ws": "^8.16.0"
|
||||
}
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
"dependencies": {
|
||||
"@welshman/lib": "0.0.17",
|
||||
"@welshman/net": "0.0.22",
|
||||
"@welshman/util": "0.0.31",
|
||||
"@welshman/util": "0.0.32",
|
||||
"nostr-tools": "^2.7.2"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@welshman/lib": "0.0.17",
|
||||
"@welshman/util": "0.0.31",
|
||||
"@welshman/util": "0.0.32",
|
||||
"svelte": "^4.2.18"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@welshman/util",
|
||||
"version": "0.0.31",
|
||||
"version": "0.0.32",
|
||||
"author": "hodlbod",
|
||||
"license": "MIT",
|
||||
"description": "A collection of nostr-related utilities.",
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import {parseJson, nth, nthEq} from "@welshman/lib"
|
||||
import {parseJson, ensurePlural, nth} from "@welshman/lib"
|
||||
import {Address} from "./Address"
|
||||
import {isShareableRelayUrl} from "./Relay"
|
||||
import {Encryptable, DecryptedEvent} from "./Encryptable"
|
||||
@@ -45,5 +45,10 @@ export const createList = ({kind, publicTags = [], privateTags = []}: List) =>
|
||||
export const editList = ({kind, publicTags = [], privateTags = []}: PublishedList) =>
|
||||
new Encryptable({kind, tags: publicTags}, {content: JSON.stringify(privateTags)})
|
||||
|
||||
export const getListValues = (tagName: string, list: List | undefined) =>
|
||||
[...list?.publicTags || [], ...list?.privateTags || []].filter(nthEq(0, tagName)).map(nth(1))
|
||||
export const getListValues = (tagName: string | string[], list: List | undefined) => {
|
||||
const tagNames = ensurePlural(tagName)
|
||||
const allTags = [...list?.publicTags || [], ...list?.privateTags || []]
|
||||
const filteredTags = allTags.filter(t => tagNames.includes(t[0])).map(nth(1))
|
||||
|
||||
return filteredTags
|
||||
}
|
||||
|
||||
@@ -140,6 +140,12 @@ export class Repository<E extends HashedEvent = TrustedEvent> extends Emitter {
|
||||
}
|
||||
|
||||
publish = (event: E, {shouldNotify = true} = {}): boolean => {
|
||||
if (!event?.id) {
|
||||
console.warn("Attempted to publish invalid event to repository", event)
|
||||
|
||||
return false
|
||||
}
|
||||
|
||||
// If we've already seen this event, or it's been deleted, we're done
|
||||
if (this.eventsById.get(event.id) || this.isDeleted(event)) {
|
||||
return false
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import type {OmitStatics} from '@welshman/lib'
|
||||
import {Fluent, nth, nthEq, ensurePlural} from '@welshman/lib'
|
||||
import {Fluent, mapVals, nth, nthEq, ensurePlural} from '@welshman/lib'
|
||||
import {isRelayUrl, normalizeRelayUrl} from './Relay'
|
||||
import {Address, isContextAddress} from './Address'
|
||||
import {GROUP, COMMUNITY} from './Kinds'
|
||||
@@ -249,3 +249,6 @@ export const getAncestorTags = (tags: string[][]) => {
|
||||
|
||||
return {roots, replies, mentions}
|
||||
}
|
||||
|
||||
export const getAncestorTagValues = (tags: string[][]) =>
|
||||
mapVals(tags => tags.map(nth(1)), getAncestorTags(tags))
|
||||
|
||||
Reference in New Issue
Block a user