@massiveinfinity/contentschema

0.0.0-alpha.5 • Public • Published

Getting Started

Install the package by running

yarn add @massiveinfinity/contentschema

or if you are using npm:

npm install --save @massiveinfinity/contentschema

Usage

import { helpers } from "@massiveinfinity/contentschema";

const v1Schema = {
  schemaVersion: 1,
  blocks: [...]
};

const v2Schema = helpers.migrate.v1ToV2(v1Schema);

console.log(v2Schema); // { schemaVersion: 2, blocks: [...] }

alternatively, you can import everything from the module into a module object:

import * as contentSchema from "@massiveinfinity/contentschema";

const v1Schema = {
  schemaVersion: 1,
  blocks: [...]
};

const v2Schema = contentSchema.helpers.migrate.v1ToV2(v1Schema);

console.log(v2Schema); // { schemaVersion: 2, blocks: [...] }

API

constants

BLOCK_TYPE

V1_BLOCK_TYPE

constants.BLOCK_TYPE.V1_BLOCK_TYPE constants

Block types in schema version 1.

Constants Description
SECTION
DISCUSSION
FEEDBACK
BUBBLE
OPEN

V2_BLOCK_TYPE

constants.BLOCK_TYPE.V2_BLOCK_TYPE constants

Block types in schema version 2.

Constants Description
SECTION
SECTION_TITLE
SECTION_DESCRIPTION
SECTION_CONTENT
DISCUSSION
DISCUSSION_TITLE
COMMENT_SECTION
COMMENT
FEEDBACK
FEEDBACK_TITLE
FEEDBACK_DESCRIPTION
RADIO_GROUP
RADIO
RADIO_TITLE
RADIO_DESCRIPTION

V1

BLOCK_TYPE

constants.V1.BLOCK_TYPE constants

Similar to constants.BLOCK_TYPE.V1_BLOCK_TYPE.

V2

BLOCK_TYPE

constants.V2.BLOCK_TYPE constants

Similar to constants.BLOCK_TYPE.V2_BLOCK_TYPE.

VERSION

constants.VERSION constants

All schema version numbers.

Constants Description
1 Version 1
2 Version 2
LATEST Latest schema version available

helpers

genId

helpers.genId() function

Used to generate ID for content block.

signature (blockType: BLOCK_TYPE, depth: number, index: number) => ID: string

migrate

v1ToV2

helpers.migrate.v1ToV2() function

Used to convert version 1 content schema to version 2 content schema. Returns version 2 content schema.

signature (v1ContentSchema: contentSchema) => v2ContentSchema: contentSchema

Readme

Keywords

none

Package Sidebar

Install

npm i @massiveinfinity/contentschema

Weekly Downloads

2

Version

0.0.0-alpha.5

License

MIT

Unpacked Size

19.1 kB

Total Files

12

Last publish

Collaborators

  • barrymi
  • khaishien