Skip to main content

defineMany

Generate one named JSON document per item, with typed async callbacks.

Import​

import { defineMany } from '@bedrock-core/builder-generator';

Signature​

function defineMany<T, D>(name: TemplateName<T>, data: TemplateData<T, D>, items: readonly T[]): ManyTemplate<T, D>;
function defineMany<T, D>(category: string, name: TemplateName<T>, data: TemplateData<T, D>, items: readonly T[]): ManyTemplate<T, D>;

Parameters​

ParameterTypeDefaultDescription
categorystring—Optional leading document category in the second overload
nameTemplateName<T>—Portable output-basename callback
dataTemplateData<T, D>—Per-item JSON document callback
itemsreadonly T[]—Items from which named documents are generated

Returns​

A typed [name, data, items] tuple, optionally tagged with a document category.

Usage​

import { defineMany } from '@bedrock-core/builder-generator/templates';

export default defineMany(
item => item.id,
item => ({ value: item.value }),
[{ id: 'first', value: 1 }, { id: 'second', value: 2 }],
);