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

@zazuko/env

v2.4.2

Published

Zazuko's RDF/JS Environment

Downloads

17,611

Readme

Zazuko's RDF/JS Environment

Like rdf-ext, with some additional features.

import env from '@zazuko/env'

// bind namespace to create named nodes
const tbbt = env.namespace('https://tbbt.tv/')

// use clownface for easy graph manipulation
const sheldonCooper = env.clownface()
  .namedNode(tbbt.sheldon)
  // use common vocabularies out-of-the box  
  .addOut(env.ns.rdf.type, env.ns.schema.Person)
  .addOut(env.ns.schema.knows, tbbt.leonard)

Browser usage

The main export includes rdf-dataset-ext package to extend the dataset's functionality. This package may cause issues in the browser, so you can import the @zazuko/env/web.js instead.

Additional features

Dataset

Static util functions

The dataset factory implemented by the main module environment provides some static utility functions from the rdf-dataset-ext package.

import { Stream, DatasetCore } from '@rdfjs/types'
import env from '@zazuko/env'

let stream: Stream

// shorthand for creating a dataset from a stream
const dataset: DatasetCore = await env.dataset.fromStream(stream)

// stream any DatasetCore
const streamFromCoreDataset: Stream = env.dataset.toStream(dataset)

// convert any DatasetCore to a canonical form
const canonicalQuads = env.dataset.toCanonical(dataset)

rdf-ext functionality

The provided DatasetCore implementation provides additional methods, matching the rdf-ext interface.

Serializing

It also includes a serialize method to easily get a string representation for supported formats. Serializers are not added out of the box and the need to be imported first

import rdf from '@zazuko/env'
import formats from '@rdfjs/formats'

rdf.formats.import(formats)

const dataset = rdf.dataset()

// create some data

const turtle = await dataset.serialize({ format: 'text/turtle' })

Extending environments

This package adds the ability to create environments on top of existing ones. To do that, pass the parent environment to the constructor options.

import env from '@zazuko/env';
import Environment from '@zazuko/env/Environment.js';
import MyFactory from './my-factory.js';

const myEnv = new Environment([MyFactory], { parent: env });

The myEnv will have all the factories from env and MyFactory.