TypeScript Universel & Core
Le package @unschema-graph/core fournit un moteur autonome et indépendant de tout framework frontend. Il s’exécute parfaitement avec Node.js, Bun, Deno, Vite, Nitro, Fastify, Next.js, Nuxt, Remix ou dans vos scripts de build.
Installation
Section intitulée « Installation »pnpm
pnpm add @unschema-graph/core zodnpm
npm install @unschema-graph/core zodyarn
yarn add @unschema-graph/core zodbun
bun add @unschema-graph/core zodLe pipeline du Core
Section intitulée « Le pipeline du Core »Le moteur transforme vos entités typées en JSON-LD sécurisé via deux fonctions majeures : buildJsonLdGraph et serializeJsonLd.
import { Article, Organization, buildJsonLdGraph, serializeJsonLd,} from '@unschema-graph/core';
// 1. Instanciation des entités typées et validées par Zodconst org = Organization({ '@id': '#organization', name: 'Acme Corp', url: 'https://mon-site.fr',});
const article = Article({ headline: 'Schema.org universel avec Node.js', image: 'https://mon-site.fr/cover.jpg', datePublished: 'today', author: 'Ada Lovelace', publisher: '#organization',});
// 2. Résolution des @id relatifs et création du @graph unifiéconst graphPayload = buildJsonLdGraph([org, article], { baseUrl: 'https://mon-site.fr', graph: true,});
// 3. Sérialisation Unicode sécurisée (protection anti-XSS)const scriptContent = serializeJsonLd(graphPayload, { pretty: true });
console.log(scriptContent);Sortie :
Section intitulée « Sortie : »{ "@context": "https://schema.org", "@graph": [ { "@type": "Organization", "@id": "https://mon-site.fr/#organization", "name": "Acme Corp", "url": "https://mon-site.fr" }, { "@type": "Article", "headline": "Schema.org universel avec Node.js", "image": "https://mon-site.fr/cover.jpg", "datePublished": "2026-09-29T00:00:00.000Z", "author": { "@type": "Person", "name": "Ada Lovelace" }, "publisher": { "@id": "https://mon-site.fr/#organization" } } ]}Configuration globale
Section intitulée « Configuration globale »Vous pouvez définir les options de validation partagées et les valeurs par défaut des
intégrations dès l’initialisation de votre application. buildJsonLdGraph() ne lit pas
automatiquement baseUrl dans cette configuration ; transmettez-la dans GraphOptions
lorsque vous composez un graphe avec Core.
import { setGlobalConfig } from '@unschema-graph/core';
setGlobalConfig({ onError: process.env.NODE_ENV === 'production' ? 'throw' : 'warn', baseUrl: 'https://mon-site.fr',});Pour consulter ou réinitialiser la configuration :
import { getGlobalConfig, resetGlobalConfig } from '@unschema-graph/core';
const current = getGlobalConfig();resetGlobalConfig();