Types for Apple News Format, including a small selection of string validation functions
npm install apple-news-formatCurrent to ANF version: 1.26.0
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.
Install from npm using your desired package manager
``sh`
npm install apple-news-format
#### TypeScript
Simply import the AppleNews namespace from the package.
`typescript`
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.
`typescript
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.
`javascript`
const { URI } = require("apple-news-format/lib/primitives");
// OR require("apple-news-format/lib/primitives/uri");
- Color
- Tests for a valid color string. Ex: "#RRGGBB""80vw"
- SupportedUnits
- Tests for a valid unit type. Ex: "bundle://a-video.mp4"
- URI
- Tests for a properly formed URI, and valid media types. Ex: "#info"
- Identifier URI
- Tests for a properly formed internal URI targeting other parts of the document. Ex: "•"
- 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
`, etc.License--- © 2019 Robert Fairley |