TypeScript API / laikacms/catalog-decap / DecapCatalogProvider
Class: DecapCatalogProvider
CatalogProvider that derives Catalog settings from a Decap CMS config file. Read-only: the Decap config is the source of truth, so put* operations fail with InvalidData instead of silently diverging.
Schemas are derived on the fly from each collection's fields. The mapping covers the common widgets (string/text/markdown/boolean/number/date/datetime/ object/list/select/image/file/relation) and falls back to "anything goes" for unknown widgets so downstream validators stay permissive.
Extends
Constructors
Constructor
new DecapCatalogProvider(options): DecapCatalogProvider;Parameters
| Parameter | Type |
|---|---|
options | DecapCatalogProviderOptions |
Returns
DecapCatalogProvider
Overrides
Methods
getCatalog()
getCatalog(): LaikaTask<{
collections?: {
[key: string]:
| {
directory?: string;
documentDescriptionKey?: string;
documentStatusKey?: string;
documentTitleKey?: string;
format?: string & Brand<"StorageFormat">;
key: string;
name?: string;
recursive?: boolean;
revisionDirectory?: string;
type: "document";
unpublishedStatuses?: {
[key: string]: object;
};
}
| {
accept?: readonly string[];
directory?: string;
key: string;
name?: string;
pathFormat?: string;
recursive?: boolean;
type: "media";
url?: string;
};
};
}>;Returns
LaikaTask<{ collections?: { [key: string]: | { directory?: string; documentDescriptionKey?: string; documentStatusKey?: string; documentTitleKey?: string; format?: string & Brand<"StorageFormat">; key: string; name?: string; recursive?: boolean; revisionDirectory?: string; type: "document"; unpublishedStatuses?: { [key: string]: object; }; } | { accept?: readonly string[]; directory?: string; key: string; name?: string; pathFormat?: string; recursive?: boolean; type: "media"; url?: string; }; }; }>
Overrides
getCollectionSchema()
getCollectionSchema(collection): LaikaTask<JSONSchema7>;Parameters
| Parameter | Type |
|---|---|
collection | string |
Returns
LaikaTask<JSONSchema7>
Overrides
CatalogProvider.getCollectionSchema
getDocumentCollectionSettings()
getDocumentCollectionSettings(collection): LaikaTask<{
directory?: string;
documentDescriptionKey?: string;
documentStatusKey?: string;
documentTitleKey?: string;
format?: string & Brand<"StorageFormat">;
key: string;
name?: string;
recursive?: boolean;
revisionDirectory?: string;
type: "document";
unpublishedStatuses?: {
[key: string]: object;
};
}>;Returns settings for a document collection. If the collection is not explicitly configured, a deterministic default derived solely from the collection key is returned (stable across instances — see class-level cache-key stability invariant).
Parameters
| Parameter | Type |
|---|---|
collection | string |
Returns
LaikaTask<{ directory?: string; documentDescriptionKey?: string; documentStatusKey?: string; documentTitleKey?: string; format?: string & Brand<"StorageFormat">; key: string; name?: string; recursive?: boolean; revisionDirectory?: string; type: "document"; unpublishedStatuses?: { [key: string]: object; }; }>
Overrides
CatalogProvider.getDocumentCollectionSettings
getMediaCollectionSettings()
getMediaCollectionSettings(collection): LaikaTask<{
accept?: readonly string[];
directory?: string;
key: string;
name?: string;
pathFormat?: string;
recursive?: boolean;
type: "media";
url?: string;
}>;Returns settings for a media collection. If the collection is not explicitly configured, a deterministic default derived solely from the collection key is returned (stable across instances — see class-level cache-key stability invariant).
Parameters
| Parameter | Type |
|---|---|
collection | string |
Returns
LaikaTask<{ accept?: readonly string[]; directory?: string; key: string; name?: string; pathFormat?: string; recursive?: boolean; type: "media"; url?: string; }>
Overrides
CatalogProvider.getMediaCollectionSettings
putCatalog()
putCatalog(_settings): LaikaTask<void>;Parameters
| Parameter | Type |
|---|---|
_settings | { collections?: { [key: string]: | { directory?: string; documentDescriptionKey?: string; documentStatusKey?: string; documentTitleKey?: string; format?: string & Brand<"StorageFormat">; key: string; name?: string; recursive?: boolean; revisionDirectory?: string; type: "document"; unpublishedStatuses?: { [key: string]: object; }; } | { accept?: readonly string[]; directory?: string; key: string; name?: string; pathFormat?: string; recursive?: boolean; type: "media"; url?: string; }; }; } |
_settings.collections? | { [key: string]: | { directory?: string; documentDescriptionKey?: string; documentStatusKey?: string; documentTitleKey?: string; format?: string & Brand<"StorageFormat">; key: string; name?: string; recursive?: boolean; revisionDirectory?: string; type: "document"; unpublishedStatuses?: { [key: string]: object; }; } | { accept?: readonly string[]; directory?: string; key: string; name?: string; pathFormat?: string; recursive?: boolean; type: "media"; url?: string; }; } |
Returns
LaikaTask<void>
Overrides
putCollectionSchema()
putCollectionSchema(_collection, _schema): LaikaTask<void>;Parameters
| Parameter | Type |
|---|---|
_collection | string |
_schema | JSONSchema7 |
Returns
LaikaTask<void>
Overrides
CatalogProvider.putCollectionSchema
putDocumentCollectionSettings()
putDocumentCollectionSettings(_collection, _settings): LaikaTask<void>;Parameters
| Parameter | Type | Description |
|---|---|---|
_collection | string | - |
_settings | { directory?: string; documentDescriptionKey?: string; documentStatusKey?: string; documentTitleKey?: string; format?: string & Brand<"StorageFormat">; key: string; name?: string; recursive?: boolean; revisionDirectory?: string; type: "document"; unpublishedStatuses?: { [key: string]: object; }; } | - |
_settings.directory? | string | - |
_settings.documentDescriptionKey? | string | - |
_settings.documentStatusKey? | string | - |
_settings.documentTitleKey? | string | - |
_settings.format? | string & Brand<"StorageFormat"> | - |
_settings.key | string | - |
_settings.name? | string | - |
_settings.recursive? | boolean | - |
_settings.revisionDirectory? | string | Directory for storing revisions (version history) |
_settings.type | "document" | - |
_settings.unpublishedStatuses? | { [key: string]: object; } | Map of unpublished status values to their configuration The key is the status value stored in the 'unpublished' document type's 'status' field Documents with these statuses are stored in .laika/[collection]/[status.directory] |
Returns
LaikaTask<void>
Overrides
CatalogProvider.putDocumentCollectionSettings
putMediaCollectionSettings()
putMediaCollectionSettings(_collection, _settings): LaikaTask<void>;Parameters
| Parameter | Type |
|---|---|
_collection | string |
_settings | { accept?: readonly string[]; directory?: string; key: string; name?: string; pathFormat?: string; recursive?: boolean; type: "media"; url?: string; } |
_settings.accept? | readonly string[] |
_settings.directory? | string |
_settings.key | string |
_settings.name? | string |
_settings.pathFormat? | string |
_settings.recursive? | boolean |
_settings.type | "media" |
_settings.url? | string |
Returns
LaikaTask<void>