Skip to content

lexicon-community/js-lexicon-community-types

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

js-lexicon-community-types

Complete typescript types and validation functions generated for the lexicon-community lexicon schemas using the atproto lex-cli package

Getting started

  1. npm install @lexicon-community/types

Usage

Listing bookmarks

import {CommunityLexiconBookmarksBookmark} from '@lexicon-community/types'
...
let bookmarks: CommunityLexiconBookmarksBookmark.Record[] = []
      const promises = [
        accumulate(cursor =>
          agent.com.atproto.repo
            .listRecords({
              repo: agent!.did ?? '',
              collection: 'community.lexicon.bookmarks.bookmark',
              cursor,
            })
            .then(res => ({
              cursor: res.data.cursor,
              items: res.data.records,
            })),
        ),
      ]

      const resultset = await Promise.all(promises)
      for (const res of resultset) {
        for (let bookmark of res) {
          const isValid =
            CommunityLexiconBookmarksBookmark.isRecord(bookmark.value) &&
            CommunityLexiconBookmarksBookmark.validateRecord(bookmark.value)
              .success
          if (isValid) {
            const recordVal =
              bookmark.value as CommunityLexiconBookmarksBookmark.Record
            bookmarks.push(recordVal)
          }
        }
      }
      return bookmarks

Generating types from the Lexicons repo

  1. Setup the ATProto repo locally
  2. cd path_to_atproto_repo\atproto\packages\lex-cli
  3. npx lex gen-api path_to_this_repo\tpyes\community\lexicon\your_lexicon path_to_lexicon_repo\community\lexicon\your_lexicon\your_schema.json

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published