{"_id":"@achams/yaml2ts","_rev":"4-90829a9d5d014528819ee5d00f79a75d","name":"@achams/yaml2ts","dist-tags":{"latest":"1.0.3"},"versions":{"1.0.0":{"name":"@achams/yaml2ts","version":"1.0.0","author":{"name":"Alexander Chamwada","email":"alexanderchamwada@gmail.com"},"license":"MIT","_id":"@achams/yaml2ts@1.0.0","maintainers":[{"name":"alexchams","email":"alexanderchamwada@gmail.com"}],"bin":{"yaml2ts":"bin/yaml2ts.mjs"},"dist":{"shasum":"2e087eb6b10af457e30e72b181d496b5bd3def6c","tarball":"https://registry.npmjs.org/@achams/yaml2ts/-/yaml2ts-1.0.0.tgz","fileCount":12,"integrity":"sha512-uPTr3JVHoPsIHUjTy8GodPnhY/zdhu1k0NzY3uJyA3C8mZdIJN3uD8B9izj5NEWd64gB2Yt461fP0qaCt6s2zA==","signatures":[{"sig":"MEQCIEEYcXDJ/wGC525boh2NJbPhVf2dB5BHQFW5VZVSlGhMAiBDJ1VLfrCRsiidociT3CPJL3Mnc27EF+6+hH5ed/UTmQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10885},"main":"./lib/generate.mjs","type":"module","gitHead":"f389ba0c47b83e432a6b1400d8241994301d19c0","_npmUser":{"name":"alexchams","email":"alexanderchamwada@gmail.com"},"_npmVersion":"11.3.0","description":"Convert YAML files to TypeScript interfaces recursively","directories":{},"_nodeVersion":"22.14.0","dependencies":{"js-yaml":"^4.1.0"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.5.3"},"_npmOperationalInternal":{"tmp":"tmp/yaml2ts_1.0.0_1744830960570_0.16874433814539258","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@achams/yaml2ts","version":"1.0.1","author":{"name":"Alexander Chamwada","email":"alexanderchamwada@gmail.com"},"license":"MIT","_id":"@achams/yaml2ts@1.0.1","maintainers":[{"name":"alexchams","email":"alexanderchamwada@gmail.com"}],"bin":{"yaml2ts":"bin/yaml2ts.mjs"},"dist":{"shasum":"6f77d3af241dbf84672104bb8873fab969629081","tarball":"https://registry.npmjs.org/@achams/yaml2ts/-/yaml2ts-1.0.1.tgz","fileCount":11,"integrity":"sha512-gS1Z3FOgDrHmTCB0lyFVEVkrnfxocArgee6i1iN9rH/SsiTalPB+DoMsFUVZlnNBuhZDGuiaeiUi9ou2j2y3hg==","signatures":[{"sig":"MEUCIA7IeRU46As6QYN4hSKxca/gfr4BOpOf4g+4dW+1mn7vAiEAxZf279QEYUrq0kwbIypQjPNPHmO5GcroU628N1EY93E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11064},"main":"./lib/generate.mjs","type":"module","gitHead":"26172407607b4d977147e191cb0fdf399352db8c","_npmUser":{"name":"alexchams","email":"alexanderchamwada@gmail.com"},"_npmVersion":"11.3.0","description":"Convert YAML files to TypeScript interfaces recursively","directories":{},"_nodeVersion":"22.14.0","dependencies":{"js-yaml":"^4.1.0"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.5.3"},"_npmOperationalInternal":{"tmp":"tmp/yaml2ts_1.0.1_1744833655914_0.2848674775963216","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@achams/yaml2ts","version":"1.0.2","keywords":["yaml","typescript","ts","interface"],"author":{"name":"Alexander Chamwada","email":"alexanderchamwada@gmail.com"},"license":"MIT","_id":"@achams/yaml2ts@1.0.2","maintainers":[{"name":"alexchams","email":"alexanderchamwada@gmail.com"}],"homepage":"https://github.com/achamwada/yaml2ts#readme","bugs":{"url":"https://github.com/achamwada/yaml2ts/issues"},"bin":{"yaml2ts":"bin/yaml2ts.mjs"},"dist":{"shasum":"eb2e669819df8f5490a223873fadee8c70d87a39","tarball":"https://registry.npmjs.org/@achams/yaml2ts/-/yaml2ts-1.0.2.tgz","fileCount":11,"integrity":"sha512-+WhMuu3A0/rNQbOOG3drGQeGYu0TwpF2gPWUK9EuAhHGf1ER2J+xYqou+i7BxzqM88Hnhc/15dzibJxmvaRczg==","signatures":[{"sig":"MEQCIAitU9Pa7OrBdw/DtwihpinV+6LSE8ChQ8UP+WbRsrB4AiB3cWzH1StoA9RxnaIQvJpN8AjvGIkO5hWw0kC2s1CkEQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11376},"main":"./lib/generate.mjs","type":"module","gitHead":"9deb1afd58f3f8e1e9fe5badb66e3a64b2309fd1","_npmUser":{"name":"alexchams","email":"alexanderchamwada@gmail.com"},"repository":{"url":"git+https://github.com/achamwada/yaml2ts.git","type":"git"},"_npmVersion":"11.3.0","description":"Convert YAML files to TypeScript interfaces recursively","directories":{},"_nodeVersion":"22.14.0","dependencies":{"js-yaml":"^4.1.0"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.5.3"},"_npmOperationalInternal":{"tmp":"tmp/yaml2ts_1.0.2_1744834924921_0.023559580469712182","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@achams/yaml2ts","version":"1.0.3","description":"Convert YAML files to TypeScript interfaces recursively","type":"module","main":"./lib/generate.mjs","bin":{"yaml2ts":"bin/yaml2ts.mjs"},"author":{"name":"Alexander Chamwada","email":"alexanderchamwada@gmail.com"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/achamwada/yaml2ts.git"},"bugs":{"url":"https://github.com/achamwada/yaml2ts/issues"},"homepage":"https://github.com/achamwada/yaml2ts#readme","keywords":["yaml","typescript","ts","interface"],"dependencies":{"js-yaml":"^4.1.0"},"devDependencies":{"prettier":"^3.5.3"},"_id":"@achams/yaml2ts@1.0.3","gitHead":"e77ed279d9f81364c119f7cff7bdd21680155434","_nodeVersion":"22.14.0","_npmVersion":"11.3.0","dist":{"integrity":"sha512-9nQKgDoFe5mpvxnzwpuHSla8Ot1YWWuE84Nl8cONzYI1lgVeTXPZXSkt1r6K1pOGnOYt/y5zl7UrHZYinusaqQ==","shasum":"014c10f793b0785a4a75d1c28717e9f77c131356","tarball":"https://registry.npmjs.org/@achams/yaml2ts/-/yaml2ts-1.0.3.tgz","fileCount":16,"unpackedSize":15798,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIAXu2enIYsVVamhDODlu5TC9nqwykl07Gj2aqocdPAOIAiBx+1toRK3BZsaXmH/obcCeaPzlb7LYVqJgCoYabZM31w=="}]},"_npmUser":{"name":"alexchams","email":"alexanderchamwada@gmail.com"},"directories":{},"maintainers":[{"name":"alexchams","email":"alexanderchamwada@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/yaml2ts_1.0.3_1744838343888_0.9604875234954204"},"_hasShrinkwrap":false}},"time":{"created":"2025-04-16T19:16:00.461Z","modified":"2025-04-16T21:19:04.276Z","1.0.0":"2025-04-16T19:16:00.856Z","1.0.1":"2025-04-16T20:00:56.115Z","1.0.2":"2025-04-16T20:22:05.110Z","1.0.3":"2025-04-16T21:19:04.092Z"},"bugs":{"url":"https://github.com/achamwada/yaml2ts/issues"},"author":{"name":"Alexander Chamwada","email":"alexanderchamwada@gmail.com"},"license":"MIT","homepage":"https://github.com/achamwada/yaml2ts#readme","keywords":["yaml","typescript","ts","interface"],"repository":{"type":"git","url":"git+https://github.com/achamwada/yaml2ts.git"},"description":"Convert YAML files to TypeScript interfaces recursively","maintainers":[{"name":"alexchams","email":"alexanderchamwada@gmail.com"}],"readme":"# @achams/yaml2ts\n\n🚀 Generate clean TypeScript interfaces from any YAML config or template.\n\n[![npm version](https://img.shields.io/npm/v/@achams/yaml2ts)](https://www.npmjs.com/package/@achams/yaml2ts)\n[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)\n\n---\n\n## ✨ Features\n\n- ✅ Supports deeply nested YAML structures  \n- ✅ Converts kebab-case & snake_case to `camelCase` fields  \n- ✅ Generates `PascalCase` interface names  \n- ✅ Handles arrays of objects  \n- ✅ Fixes invalid YAML scalar+mapping syntax  \n- ✅ Automatically adds comments from scalar values  \n- ✅ No build step — pure native Node.js  \n\n---\n\n## 📦 Installation\n\n### Global (recommended)\n\n```bash\nnpm install -g @achams/yaml2ts\n```\n\n### Or use it instantly via `npx`:\n\n```bash\nnpx @achams/yaml2ts your-file.yaml\n```\n\n---\n\n## 🚀 Usage\n\n```bash\nyaml2ts path/to/your/config.yaml\n```\n\n### Output\n\n- Generates a TypeScript file in `out/your-file.ts`\n- Top-level interface is named after the YAML filename\n\n---\n\n## 🧠 Example\n\n### `app-config.yaml`\n\n```yaml\nservice: web-app\n  JELO:\n    enabled: true\n\ndatadog-resources:\n  enable-synthetics: false\n  synthetic-block: false\n```\n\n### `out/app-config.ts`\n\n```ts\n// web-app\nexport interface Service {\n  JELO: {\n    enabled: boolean;\n  };\n}\n\nexport interface DatadogResources {\n  enableSynthetics: boolean;\n  syntheticBlock: boolean;\n}\n```\n\n---\n\n## 🛠 CLI Options (coming soon)\n\n```bash\nyaml2ts <path-to-yaml>\n```\n\nComing soon:\n\n- `--out <dir>` – Set custom output directory  \n- `--top-level <name>` – Override root interface name  \n- `--prettier` – Format with Prettier  \n- `--jsdoc` – Include JSDoc from `description:` fields  \n\n---\n\n## 📁 Output Structure\n\n```\nout/\n└── your-file.ts      ← Generated interfaces\n```\n\n---\n\n## 🧪 Development\n\n```bash\nnpm install\nnode bin/yaml2ts.js example.yaml\n```\n\nTo test globally:\n\n```bash\nnpm link\nyaml2ts path/to/file.yaml\n```\n\n---\n\n## 📄 License\n\nMIT — built by [Alexander Chamwada](https://tripvoya.com) with ❤️\n\n---\n\n## 🔽 Download\n\nYou can download the `.tgz` package here:\n\n👉 [Download yaml2ts.tgz](./yaml2ts.tgz)\n\n### 🚀 To Test It Locally\n\n```bash\nnpm install -g ./yaml2ts.tgz\n```\n\nThen use it:\n\n```bash\nyaml2ts my-config.yaml\n```\n\nIt'll generate:\n\n```ts\nout/my-config.ts\n```\n\n---\n","readmeFilename":"README.md"}