@zazuko/env
TypeScript icon, indicating that this package has built-in type declarations

2.2.0 • Public • Published

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.

Readme

Keywords

Package Sidebar

Install

npm i @zazuko/env

Weekly Downloads

3,186

Version

2.2.0

License

MIT

Unpacked Size

22 kB

Total Files

21

Last publish

Collaborators

  • zazuko-bot
  • tpluscode
  • ludovicm67
  • ktk