Add NIP-21 and NIP-27 modules for parsing nostr URIs

This commit is contained in:
Alex Gleason
2023-04-22 18:13:20 -05:00
parent 92988051c6
commit eb97dbd9ef
5 changed files with 162 additions and 0 deletions

24
nip21.test.js Normal file
View File

@@ -0,0 +1,24 @@
/* eslint-env jest */
const {nip21} = require('./lib/nostr.cjs')
test('test', () => {
expect(nip21.test('nostr:npub108pv4cg5ag52nq082kd5leu9ffrn2gdg6g4xdwatn73y36uzplmq9uyev6')).toBe(true)
expect(nip21.test('nostr:note1gmtnz6q2m55epmlpe3semjdcq987av3jvx4emmjsa8g3s9x7tg4sclreky')).toBe(true)
expect(nip21.test(' nostr:npub108pv4cg5ag52nq082kd5leu9ffrn2gdg6g4xdwatn73y36uzplmq9uyev6')).toBe(false)
expect(nip21.test('nostr:')).toBe(false)
expect(nip21.test('nostr:npub108pv4cg5ag52nQq082kd5leu9ffrn2gdg6g4xdwatn73y36uzplmq9uyev6')).toBe(false)
expect(nip21.test('gggggg')).toBe(false)
})
test('parse', () => {
const result = nip21.parse('nostr:note1gmtnz6q2m55epmlpe3semjdcq987av3jvx4emmjsa8g3s9x7tg4sclreky')
expect(result).toEqual({
uri: 'nostr:note1gmtnz6q2m55epmlpe3semjdcq987av3jvx4emmjsa8g3s9x7tg4sclreky',
value: 'note1gmtnz6q2m55epmlpe3semjdcq987av3jvx4emmjsa8g3s9x7tg4sclreky',
decoded: {
type: 'note',
data: '46d731680add2990efe1cc619dc9b8014feeb23261ab9dee50e9d11814de5a2b',
},
})
})