Skip to content

configFormat

Generated reference page for the configFormat function export.

Signatures

ts
function configFormat(extensions: readonly string[], parse: { (content: string): unknown; }): FormatLoader;
ParameterTypeDescription
extensionsreadonly string[]File extensions this loader handles (without dot, e.g. 'yaml').
parse{ (content: string): unknown; }Parse function: takes file content string and returns a parsed config value.

Members

Members

configFormat

Create a FormatLoader from extensions and a parse function.

Convenience factory for config loading. It avoids manually constructing the { extensions, parse } object and makes intent clearer at call sites.

Later loaders registered for the same extension override earlier ones. Any error thrown by parse is wrapped by discoverConfig as CONFIG_PARSE_ERROR.

ts
(extensions: readonly string[], parse: { (content: string): unknown; }): FormatLoader;

Examples

ts
import { cli, configFormat } from '@kjanat/dreamcli';
import { parse as parseYaml } from 'yaml';
import { parse as parseTOML } from '@iarna/toml';

const yamlPackageLoader = configFormat(['yaml', 'yml'], parseYaml);
const tomlPackageLoader = configFormat(['toml'], parseTOML);
// Or with Bun's built-in parsers:
// const yamlLoader = configFormat(['yaml', 'yml'], Bun.YAML.parse);
// const tomlLoader = configFormat(['toml'], Bun.TOML.parse);

cli('myapp')
  .config('myapp')
  .configLoader(yamlLoader)
  .configLoader(tomlLoader)
  .run();

See Also

Released under the MIT License.