40 lines
1.3 KiB
TypeScript
40 lines
1.3 KiB
TypeScript
type ServiceJsonLdArgs = {
|
|
/** Area served, e.g. 'Wrocław' or ['Wrocław', 'Oława']. */
|
|
areaServed?: string | string[];
|
|
description?: string;
|
|
/** Service name, e.g. 'Sprzątanie biur'. */
|
|
name: string;
|
|
/** Provider (business) name. */
|
|
providerName: string;
|
|
/** Service type / category. */
|
|
serviceType?: string;
|
|
url: string;
|
|
};
|
|
/**
|
|
* Builds Service JSON-LD (schema.org) for a service offering. Helps Google
|
|
* understand "what this page sells" — useful for service landing pages
|
|
* ("usługa + miasto"). Pairs well with LocalBusiness (the provider).
|
|
*
|
|
* Per-page (each service page emits its own), data from the panel:
|
|
*
|
|
* import { buildServiceJsonLd } from '@intecion/ipal-kit'
|
|
* const jsonLd = buildServiceJsonLd({
|
|
* name: page.serviceName, providerName: company.name,
|
|
* url: pageUrl, areaServed: 'Wrocław',
|
|
* })
|
|
*/
|
|
export declare function buildServiceJsonLd({ name, areaServed, description, providerName, serviceType, url, }: ServiceJsonLdArgs): {
|
|
serviceType?: string | undefined;
|
|
areaServed?: string | string[] | undefined;
|
|
description?: string | undefined;
|
|
name: string;
|
|
'@context': string;
|
|
'@type': string;
|
|
provider: {
|
|
name: string;
|
|
'@type': string;
|
|
url: string;
|
|
};
|
|
};
|
|
export {};
|