{"id":15478363,"url":"https://github.com/flarebyte/baldrick-whisker","last_synced_at":"2025-10-05T17:13:30.365Z","repository":{"id":37100505,"uuid":"496908828","full_name":"flarebyte/baldrick-whisker","owner":"flarebyte","description":"Code generator for Elm and Typescript using templates","archived":false,"fork":false,"pushed_at":"2025-09-28T13:23:18.000Z","size":351,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-28T13:24:30.845Z","etag":null,"topics":["handlebars","npm-cli","template-engine"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/flarebyte.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-05-27T07:55:12.000Z","updated_at":"2023-05-13T06:55:09.000Z","dependencies_parsed_at":"2023-01-23T07:05:17.011Z","dependency_job_id":null,"html_url":"https://github.com/flarebyte/baldrick-whisker","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/flarebyte/baldrick-whisker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flarebyte%2Fbaldrick-whisker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flarebyte%2Fbaldrick-whisker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flarebyte%2Fbaldrick-whisker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flarebyte%2Fbaldrick-whisker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/flarebyte","download_url":"https://codeload.github.com/flarebyte/baldrick-whisker/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flarebyte%2Fbaldrick-whisker/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278486308,"owners_count":25994945,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-05T02:00:06.059Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["handlebars","npm-cli","template-engine"],"created_at":"2024-10-02T04:03:43.960Z","updated_at":"2025-10-05T17:13:30.359Z","avatar_url":"https://github.com/flarebyte.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# baldrick-whisker\n\n![npm](https://img.shields.io/npm/v/baldrick-whisker) ![Build\nstatus](https://github.com/flarebyte/baldrick-whisker/actions/workflows/main.yml/badge.svg)\n![npm bundle size](https://img.shields.io/bundlephobia/min/baldrick-whisker)\n\n![npm type definitions](https://img.shields.io/npm/types/baldrick-whisker)\n![node-current](https://img.shields.io/node/v/baldrick-whisker)\n![NPM](https://img.shields.io/npm/l/baldrick-whisker)\n\n![Experimental](https://img.shields.io/badge/status-experimental-blue)\n\n\u003e Code generator for Elm and Typescript using templates\n\nCode generator for Elm and Typescript using templates\n\nbaldrick-whisker is an ESM-only CLI that reads JSON, YAML, CSV and Elm\nsources, merges them into a single object, and renders Handlebars templates\nfor Elm/Markdown/JSON/YAML outputs. Ships with rich helpers and supports\nGitHub file URIs. Requires Node.js \u003e= 22.\n\n![Hero image for baldrick-whisker](baldrick-whisker-hero-512.jpeg)\n\nHighlights:\n\n## CLI Examples\n\nMerge JSON + Elm to YAML:\n\n```bash\nnpx baldrick-whisker object report/out.yaml package.json\npest-spec/fixtures/Example.elm\n```\n\nRender Handlebars template:\n\n```bash\nnpx baldrick-whisker render report/out.yaml pest-spec/fixtures/example.hbs\nreport/rendered.md\n```\n\nShow diff instead of writing:\n\n```bash\nnpx baldrick-whisker render --diff report/out.yaml\npest-spec/fixtures/example.hbs report/rendered.md\n```\n\nDrop extension on destination:\n\n```bash\nnpx baldrick-whisker object --no-ext report/out.json package.json\n```\n\n## Quickstart\n\nInstall globally or run with npx, then try the object and render commands.\n\n1.  yarn global add baldrick-whisker\n2.  baldrick-whisker --help\n3.  npx baldrick-whisker object out.yaml a.json b.yaml\n    spec/fixtures/Example.elm\n4.  npx baldrick-whisker render out.yaml pest-spec/fixtures/example.hbs\n    rendered.md\n\n```\n```\n\n## Configuration\n\nConfig files:\n\n-   \\`\\`:\n-   \\`\\`:\n\n## Architecture\n\n-   file-io reads/writes files, compiles Handlebars, and registers helpers.\n-   merge-objects normalizes InputContent and merges\n    primitives/objects/arrays.\n-   handlebars-helpers provides ifSatisfy, listJoin and string\n    transformers.\n-   cli wiring via Commander exposes object and render commands.\n\n## FAQ\n\nQ: How do I point whisker to a custom config file?\n\nA: Set BALDRICK\\_WHISKER\\_CONFIG to the YAML file location. The loader will use\nit instead of the default \\~/.baldrick-whisker/config.yaml.\n\n## Troubleshooting\n\n-   →\n-   →\n-   →\n-   →\n\n## Documentation and links\n\n-   [Code Maintenance :wrench:](MAINTENANCE.md)\n-   [Code Of Conduct](CODE_OF_CONDUCT.md)\n-   [Api for baldrick-whisker](API.md)\n-   [Contributing :busts\\_in\\_silhouette: :construction:](CONTRIBUTING.md)\n-   [Diagram for the code base :triangular\\_ruler:](INTERNAL.md)\n-   [Vocabulary used in the code base :book:](CODE_VOCABULARY.md)\n-   [Architectural Decision Records :memo:](DECISIONS.md)\n-   [Contributors\n    :busts\\_in\\_silhouette:](https://github.com/flarebyte/baldrick-whisker/graphs/contributors)\n-   [Dependencies](https://github.com/flarebyte/baldrick-whisker/network/dependencies)\n-   [Glossary\n    :book:](https://github.com/flarebyte/overview/blob/main/GLOSSARY.md)\n-   [Software engineering principles\n    :gem:](https://github.com/flarebyte/overview/blob/main/PRINCIPLES.md)\n-   [Overview of Flarebyte.com ecosystem\n    :factory:](https://github.com/flarebyte/overview)\n-   [Usage](USAGE.md)\n-   [API](API.md)\n-   [Code Maintenance](MAINTENANCE.md)\n-   [Contributing](CONTRIBUTING.md)\n-   [Glossary](GLOSSARY.md)\n-   [Vocabulary](CODE_VOCABULARY.md)\n-   [Design](INTERNAL.md)\n-   [ADR](DECISIONS.md)\n\n## Related\n\n## Installation\n\nThis package is [ESM\nonly](https://blog.sindresorhus.com/get-ready-for-esm-aa53530b3f77).\n\n```bash\nyarn global add baldrick-whisker\nbaldrick-whisker --help\n```\n\nOr alternatively run it:\n\n```bash\nnpx baldrick-whisker --help\n```\n\nIf you want to tun the latest version from github. Mostly useful for dev:\n\n```bash\ngit clone git@github.com:flarebyte/baldrick-whisker.git\nyarn global add `pwd`\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflarebyte%2Fbaldrick-whisker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fflarebyte%2Fbaldrick-whisker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflarebyte%2Fbaldrick-whisker/lists"}