npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@joystream/js

v1.12.0

Published

Joystream JS package provides utilities required to work with Joystream network.

Downloads

317

Readme

@joystream/js

This package is home to the Joystream.js libraries which provide everything required to work with Joystream network.

  • @joystream/js/utils Common utilities used by different Joystreamjs packages
  • @joystream/js/content Interact with content directory module - managing videos, channels, payouts, assets, categories and curator groups

Installation

yarn install @joystream/js

Development

  1. Run yarn to install dependencies
  2. Run yarn build to build the package

Content Submodule (@joystream/js/content)

Interact with content directory module - managing payouts, channels, videos, assets, categories and curator groups

Usage

Getting payout record by channel Id

This function gets the payout record from the remote source. It first fetches the payload header and then uses the offset of given channel Id from header to fetch the record.

import { channelPayoutProof } from '@joystream/js/content'

const channelId = 1
const payoutRecord = await channelPayoutProof(channelId)

Getting channel payout record from serialized payload file at given byte

import { channelPayoutProofAtByteOffset } from '@joystream/js/content'
import { readBytesFromFile } from '@joystream/js/utils'

const readContext = 'PATH' // 'PATH' | 'URL'
const inputFilePath = './payload'
const byteOffset = 40
const payoutRecord = await channelPayoutProofAtByteOffset(
  readBytesFromFile(readContext, inputFilePath), byteOffset
)

Get header from serialized channel payouts payload file

import { serializedPayloadHeader } from '@joystream/js/content'
import { ChannelPayoutsMetadata } from '@joystream/metadata-protobuf'
import { readBytesFromFile } from '@joystream/js/utils'

const readContext = 'PATH' // 'PATH' | 'URL'
const inputFilePath = './payload'
const serializedHeader = await serializedPayloadHeader(
  readBytesFromFile(readContext, inputFilePath)
)
// decode header
const header = ChannelPayoutsMetadata.Header.decode(serializedHeader)
console.log(
  header.payloadLengthInBytes,
  header.headerLengthInBytes,
  header.numberOfChannels,
  header.channelPayoutByteOffsets
)

Generate merkle root from serialized channel payouts payload

import { generateCommitmentFromPayloadFile } from '@joystream/js/content'

const inputFilePath = './payload'
const readContext = 'PATH' // 'PATH' | 'URL'
const merkleRoot = await generateCommitmentFromPayloadFile(
  readBytesFromFile(readContext, inputFilePath)
)

Utils Submodule (@joystream/js/utils)

Common utilities used by different Joystreamjs packages.

Submodule structure:

  • src/schemas/json/ JSON schemas
  • typings/ Type definitions generated from JSON schemas using json-schema-to-typescript

Usage

Read stream of bytes from file

Read a range of bytes from input file provided start and end values. Both start and end are inclusive

import { readBytesFromFile } from '@joystream/js/utils'

const readContext = 'PATH' // 'PATH' | 'URL'
const inputFilePath = './payload'
const start = 10
const end = 20
const bytesReader = readBytesFromFile(readContext, inputFilePath)
const bytes = await bytesReader(start, end)