UNPKG

themer

Version:

Customizable theme creator for editors, terminals, wallpaper, and more.

33 lines 1.5 kB
import { prepareColorSet } from './color-set/index.js'; import { resolveColorSet } from './color-set/all.js'; import { resolveTemplate } from './template/all.js'; import { noopTransform } from './transform/index.js'; export async function* themer(colorSets, templates, options, transform = noopTransform) { for (const colorSet of colorSets) { const resolvedColorSet = resolveColorSet(colorSet); const fullColorSet = prepareColorSet(resolvedColorSet); const resolvedTemplates = templates.map(resolveTemplate); const instructions = [`# themer - ${fullColorSet.name}`]; const rootDir = fullColorSet.name; for (const template of resolvedTemplates) { const templatePaths = new Set(); for await (const renderedFile of template.render(fullColorSet, options)) { for await (const file of transform(renderedFile)) { const path = `${template.name}/${file.path}`; yield { ...file, path: `${rootDir}/${path}`, }; templatePaths.add(path); } } instructions.push(`## ${template.name}`); instructions.push(template.renderInstructions([...templatePaths], fullColorSet).trim()); } yield { path: `${rootDir}/README.md`, content: instructions.join('\n\n'), }; } } //# sourceMappingURL=themer.js.map