Learn about our RFC process, Open RFC meetings & more.Join in the discussion! »

apple-news-format

0.2.5 • Public • Published

Apple News Format Types

CircleCI

This is a collection of TypeScript types for the Apple News Format fields, metadata, and components.

Included are a small selection of validation functions for certain fields that contain restrictions on the strings that are passed in.

Usage

TypeScript

Simply import the AppleNews namespace from the package.

import AppleNews from "apple-news-format";
// or
import { AppleNews } from "apple-news-format";

You can also import individual types, methods, and namespaces from the individual modules.

import { URI } from "apple-news-format/lib/primitives";
import * as Components from "apple-news-format/lib/components";
import { Image } from "apple-news-format/lib/images";
 
type Body = Components.Text.Body;
 
function buildImageComponent(path: string): Image {
  const imagePath: URI = URI(path);
 
  if (!imagePath)
    throw new TypeError("Image URI was invalid!");
 
  const imageComponent: Image = {
    role: "image",
    URL: imagePath,
  };
 
  return imageComponent;
}

JavaScript

You can import the specific validation functions listed as available below by targeting the specific modules.

const { URI } = require("apple-news-format/lib/primitives");
// OR require("apple-news-format/lib/primitives/uri");
 

Validation Functions

  • Color
    • Tests for a valid color string. Ex: "#RRGGBB"
  • SupportedUnits
    • Tests for a valid unit type. Ex: "80vw"
  • URI
    • Tests for a properly formed URI, and valid media types. Ex: "bundle://a-video.mp4"
  • Identifier URI
    • Tests for a properly formed internal URI targeting other parts of the document. Ex: "#info"
  • ListItemStyleCharacter
    • Tests for a single valid character for use in lists. Ex: "•"
  • DateTime
    • Tests for a valid ISO 8601 date time string
    • TODO: Make test more explicit
  • HTMLTableData
    • Tests for a valid string containing and opening and closing <table> tag.
    • TODO: Test for appropriate children elements: <thead>, <tbody>, <tr>, <td>, etc.

License

MIT


© 2019 Robert Fairley

Install

npm i apple-news-format

DownloadsWeekly Downloads

2,156

Version

0.2.5

License

MIT

Unpacked Size

91.2 kB

Total Files

427

Last publish

Collaborators

  • avatar