@toba/json-ld

Toba JSON-LD

Stats

stars šŸŒŸissues āš ļøupdated šŸ› created šŸ£size šŸ‹ļøā€ā™€ļø
10Oct 20, 2020Jan 27, 2018Minified + gzip package size for @toba/json-ld in KB

Readme

npm package Build Status Code style Dependencies DevDependencies Test Coverage

Toba JSON-LD

TypeScript definitions and helper functions for JSON Link Data.

šŸ’”Using a TypeScript module

import { JsonLD } from '@toba/json-ld';

const rating: JsonLD:Rating = {
   author: "Toba";
   bestRating: 5,;
   ratingValue: 4,
   worstRating: "good"
};

Helper Functions

The library can be used for only its type definitions (interfaces).

Format

Finalize Link Data document

Call ld to finalize your Link Data document. This method replaces the more easily entered field names for id, type and context with the @-prefixed variants required by the JSON-LD standard.

import { JsonLD, ld } from '@toba/json-ld';
const json = ld(typeName, doc);

Convert document to text for web page inclusion


serialize(linkData: any)

Remove redundant context specifications

removeContext(linkData: JsonLD.Thing, context?: string)

Generate

The library includes generator functions for common types.

Image

interface Image {
   url: string;
   width?: number;
   height?: number;
}
import { JsonLD, image } from '@toba/json-ld';
// type will be JsonLD.ImageObject
const json = image(img);

Place

import { JsonLD, place } from '@toba/json-ld';
// type will be JsonLD.Place
const json = place(mapURL);

Web page

import { JsonLD, webPage } from '@toba/json-ld';
// type will be JsonLD.WebPage
const json = webPage(url);

Organization

import { JsonLD, organization } from '@toba/json-ld';
// type will be JsonLD.Organization
const json = organization(title, logo);

Breadcrumb

import { JsonLD, breadcrumb } from '@toba/json-ld';
// type will be JsonLD.Breadcrumb
const json = breadcrumb(url, title, position);

Discover Action

import { JsonLD, discoverAction } from '@toba/json-ld';
// type will be JsonLD.DiscoverAction
discoverAction(url: string)

License

Copyright Ā© 2019 Jason Abbott

This software is licensed under the MIT license. See the LICENSE file accompanying this software for terms of use.

If you find any bugs or have a feature request, please open an issue on github!

The npm package download data comes from npm's download counts api and package details come from npms.io.