Installation & Usage
Bring the package into any Node or browser project, scaffold JSON-LD payloads, and keep them valid with the generated helpers.
Install
pnpm add @avensio/jsonld-schema
# or
npm install @avensio/jsonld-schemaThe distribution is fully ESM with .d.ts metadata, so TypeScript projects pick up types automatically. Need CommonJS? Rebuild the project locally with whatever bundler you prefer—an official CJS bundle is intentionally not published, since it would blow up the size.
Model data
Every Schema.org class ships with its interface and a creator helper.
import type { Organization } from '@avensio/jsonld-schema/classes/Organization'
import { createOrganization } from '@avensio/jsonld-schema/creators'
const organization: Organization = createOrganization({
name: 'Example Inc.',
url: 'https://example.com'
})Creators attach @context/@type and suggest (with TypeScript) property names and values.
Validate payloads
Validators live under @avensio/jsonld-schema/validation/… and return structured diagnostics.
import type { Order } from '@avensio/jsonld-schema/classes/Order'
import { validateOrder } from '@avensio/jsonld-schema/validation/classes/Order.validator'
const diagnostics = await validateOrder({
'@context': 'https://schema.org',
'@type': 'Order',
name: 'Demo order'
})
if (diagnostics.length) {
diagnostics.forEach(diag => {
console.warn(`${diag.severity.toUpperCase()} ${diag.path ?? '<root>'}: ${diag.message}`)
})
}For field-level checks, import property validators such as @avensio/jsonld-schema/validation/properties/url.validator or use helpers (validateArrayOfText, isUrl, …) from @avensio/jsonld-schema/validation/core.
Read the type preset
import preset from '@avensio/jsonld-schema/presets/types/all' with { type: 'json' }
console.log(preset.types) // ["*"]The published all preset is a lightweight descriptor for tools that want to include every generated Schema.org type.