{"id":19259296,"url":"https://github.com/hyperweb-io/yamlize","last_synced_at":"2025-04-21T16:30:49.306Z","repository":{"id":237858649,"uuid":"795381701","full_name":"hyperweb-io/yamlize","owner":"hyperweb-io","description":null,"archived":false,"fork":false,"pushed_at":"2024-05-25T21:29:58.000Z","size":309,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-04-16T03:57:26.979Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/hyperweb-io.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-05-03T06:50:12.000Z","updated_at":"2025-01-17T23:41:14.000Z","dependencies_parsed_at":"2024-05-03T12:01:26.163Z","dependency_job_id":"9d670d57-e89c-48cc-b095-ba16063bdfc2","html_url":"https://github.com/hyperweb-io/yamlize","commit_stats":null,"previous_names":["cosmology-tech/yamlize","hyperweb-io/yamlize"],"tags_count":18,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyperweb-io%2Fyamlize","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyperweb-io%2Fyamlize/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyperweb-io%2Fyamlize/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyperweb-io%2Fyamlize/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hyperweb-io","download_url":"https://codeload.github.com/hyperweb-io/yamlize/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250090694,"owners_count":21373234,"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","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":[],"created_at":"2024-11-09T19:16:01.855Z","updated_at":"2025-04-21T16:30:49.012Z","avatar_url":"https://github.com/hyperweb-io.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# yamlize\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://user-images.githubusercontent.com/545047/190171475-b416f99e-2831-4786-9ba3-a7ff4d95b0d3.svg\" width=\"80\"\u003e\u003cbr /\u003e\n   \u003c!-- \u003ca href=\"https://www.npmjs.com/package/yamlize\"\u003e\u003cimg height=\"20\" src=\"https://img.shields.io/npm/dt/yamlize\"\u003e\u003c/a\u003e --\u003e\n   \u003c!-- \u003ca href=\"https://www.npmjs.com/package/yamlize\"\u003e\u003cimg height=\"20\" src=\"https://img.shields.io/npm/dw/yamlize\"/\u003e\u003c/a\u003e --\u003e\n   \u003ca href=\"https://github.com/cosmology-tech/yamlize/blob/main/LICENSE-MIT\"\u003e\u003cimg height=\"20\" src=\"https://img.shields.io/badge/license-MIT-blue.svg\"/\u003e\u003c/a\u003e\n   \u003ca href=\"https://www.npmjs.com/package/yamlize\"\u003e\u003cimg height=\"20\" src=\"https://img.shields.io/github/package-json/v/cosmology-tech/yamlize?filename=packages%2Fyamlize%2Fpackage.json\"/\u003e\u003c/a\u003e\n   \u003ca href=\"https://github.com/cosmology-tech/yamlize/actions/workflows/run-tests.yml\"\u003e\n    \u003cimg height=\"20\" src=\"https://github.com/cosmology-tech/yamlize/actions/workflows/run-tests.yml/badge.svg\" /\u003e\n   \u003c/a\u003e\n\u003c/p\u003e\n\n\n`yamlize` is a powerful tool designed to simplify the creation of YAML files by allowing dynamic generation based on predefined templates and contextual data. This tool is especially useful in environments where configurations need to be adjusted frequently, such as in CI/CD workflows. It provides flexibility in integrating changes seamlessly and ensures configurations are up-to-date with minimal manual intervention.\n\n## install\n\n```sh\nnpm install yamlize\n```\n\nFor CI/CD and easier usage, use [our CLI](https://github.com/cosmology-tech/yamlize/tree/main/packages/cli):\n\n```sh\nnpm install @yamlize/cli\n```\n\nor for your own use:\n\n```sh\nnpm install -g @yamlize/cli\n```\n\n## Table of contents\n\n- [yamlize](#yamlize)\n  - [Install](#install)\n  - [Usage](#usage)\n- [Developing](#developing)\n- [Credits](#credits)\n\n## Usage\n\n`yamlize` helps you dynamically generate YAML configurations using predefined templates and context. Here’s how to use it with example YAML templates and the corresponding JavaScript function call:\n\n### Example \n\n**meta.yaml** - This is your main workflow template.\n\n```yaml\nname: Build\n\non:\n  workflow_dispatch:\n\njobs:\n  build-artifacts: \n  - import-yaml: node/setup.yaml\n  - import-yaml: git/configure.yaml\n  - name: Install and Build 🚀\n    run: |\n      yarn\n```\n\n**node/setup.yaml** - Sets up your Node.js environment.\n\n```yaml\nname: Setup Node.js 🌐\nuses: actions/setup-node@v4\nwith:\n  node-version: ${{yamlize.NODE_VERSION}}\n  cache: 'yarn'\n```\n\n**git/configure.yaml** - Configures Git with user information.\n\n```yaml\nname: Configure Git 🛠\nrun: |\n  git config user.name \"${{yamlize.git.USER_NAME}}\"\n  git config user.email \"${{yamlize.git.USER_EMAIL}}\"\n```\n\n### Invoking Yamlize\n\nProvide the `meta.yaml` template and your specific context to generate the complete YAML configuration.\n\n```js\nyamlize(metaYaml, outFile, {\n    git: {\n        USER_NAME: 'Cosmology',\n        USER_EMAIL: 'developers@cosmology.zone',\n    },\n    EMSCRIPTEN_VERSION: '3.1.59',\n    NODE_VERSION: '20.x' \n});\n```\n\n### Output Example\n\nHere's the generated YAML configuration reflecting the provided context.\n\n```yaml\nname: Build\non:\n  workflow_dispatch: null\njobs:\n  build-artifacts:\n    - name: Setup Node.js 🌐\n      uses: actions/setup-node@v4\n      with:\n        node-version: 20.x\n        cache: yarn\n    - name: Configure Git 🛠\n      run: |\n        git config user.name \"Cosmology\"\n        git config user.email \"developers@cosmology.zone\"\n    - name: Install and Build 🚀\n      run: |\n        yarn\n```\n\n## Developing\n\nWhen first cloning the repo:\n\n```\nyarn\nyarn build\n```\n\n## Related\n\nCheckout these related projects:\n\n* [@cosmology/telescope](https://github.com/cosmology-tech/telescope) Your Frontend Companion for Building with TypeScript with Cosmos SDK Modules.\n* [@cosmwasm/ts-codegen](https://github.com/CosmWasm/ts-codegen) Convert your CosmWasm smart contracts into dev-friendly TypeScript classes.\n* [chain-registry](https://github.com/cosmology-tech/chain-registry) Everything from token symbols, logos, and IBC denominations for all assets you want to support in your application.\n* [cosmos-kit](https://github.com/cosmology-tech/cosmos-kit) Experience the convenience of connecting with a variety of web3 wallets through a single, streamlined interface.\n* [create-cosmos-app](https://github.com/cosmology-tech/create-cosmos-app) Set up a modern Cosmos app by running one command.\n* [interchain-ui](https://github.com/cosmology-tech/interchain-ui) The Interchain Design System, empowering developers with a flexible, easy-to-use UI kit.\n* [starship](https://github.com/cosmology-tech/starship) Unified Testing and Development for the Interchain.\n\n## Credits\n\n🛠 Built by Cosmology — if you like our tools, please consider delegating to [our validator ⚛️](https://cosmology.zone/validator)\n\n\n## Disclaimer\n\nAS DESCRIBED IN THE LICENSES, THE SOFTWARE IS PROVIDED “AS IS”, AT YOUR OWN RISK, AND WITHOUT WARRANTIES OF ANY KIND.\n\nNo developer or entity involved in creating this software will be liable for any claims or damages whatsoever associated with your use, inability to use, or your interaction with other users of the code, including any direct, indirect, incidental, special, exemplary, punitive or consequential damages, or loss of profits, cryptocurrencies, tokens, or anything else of value.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhyperweb-io%2Fyamlize","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhyperweb-io%2Fyamlize","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhyperweb-io%2Fyamlize/lists"}