{"_id":"@aliksend/code-generator","_rev":"7-6fab613c5928538491c9e0317c2adffb","name":"@aliksend/code-generator","dist-tags":{"latest":"0.0.8"},"versions":{"0.0.1":{"name":"@aliksend/code-generator","version":"0.0.1","keywords":["code generation"],"author":{"name":"Alik Send"},"license":"MIT","_id":"@aliksend/code-generator@0.0.1","maintainers":[{"name":"aliksend","email":"aliknoname@gmail.com"}],"homepage":"https://github.com/aliksend/node-packages#readme","bugs":{"url":"https://github.com/aliksend/node-packages/issues"},"bin":{"code-generator":"dist/cli.js"},"dist":{"shasum":"776cf81ec5e5e9a21ac8faa1fddcf6ec02109961","tarball":"https://registry.npmjs.org/@aliksend/code-generator/-/code-generator-0.0.1.tgz","fileCount":15,"integrity":"sha512-tB/Iaaau/59aSxahkaIyIgboxDuDx9ao1185rivvY8LD43XYMLGzFy9eYvh9XLVxf7b/InW/TKKIgPJfPDuYMQ==","signatures":[{"sig":"MEUCIHF4uM0vjJyOPmicBhVQ/d2zgFMjuyRR3j+Lz8nxlpYeAiEA1S3MAp09RPah7N/CyA3uI7p58EdkAQqQaV8DteN0sZg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":19767},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"18be42dcd2321ff5754d221a784795c9062e8598","scripts":{"lint":"npx @aliksend/linter --fix","test":"node --require ts-node/register --test ./src/*.test.ts","build":"rm -rf dist && tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"aliksend","email":"aliknoname@gmail.com"},"repository":{"url":"git+https://github.com/aliksend/node-packages.git","type":"git"},"_npmVersion":"9.8.1","description":"Code generator","directories":{},"_nodeVersion":"18.18.2","dependencies":{"zod":"^3.22.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^10.9.2","typescript":"^5.3.3","@types/semver":"^7.5.6","@types/stack-trace":"^0.0.33"},"_npmOperationalInternal":{"tmp":"tmp/code-generator_0.0.1_1708037770099_0.9446889944128647","host":"s3://npm-registry-packages"}},"0.0.2":{"name":"@aliksend/code-generator","version":"0.0.2","keywords":["code generation"],"author":{"name":"Alik Send"},"license":"MIT","_id":"@aliksend/code-generator@0.0.2","maintainers":[{"name":"aliksend","email":"aliknoname@gmail.com"}],"homepage":"https://github.com/aliksend/node-packages#readme","bugs":{"url":"https://github.com/aliksend/node-packages/issues"},"bin":{"code-generator":"dist/cli.js"},"dist":{"shasum":"42a727dd6201c272c1135411855ef46184da7e59","tarball":"https://registry.npmjs.org/@aliksend/code-generator/-/code-generator-0.0.2.tgz","fileCount":15,"integrity":"sha512-jhPijn6eCi7UNIWhfoNRAe0GMxpo0tMhAbyI4AMUHaFgkIqWb627Uyp5QRntcBXY5Z2Pqlt/6O4ZkaJ2f6bcuA==","signatures":[{"sig":"MEUCIFlbnKM0T0xm1p0Ql/tYYHl28Kn2UK2lDHz0I1b99fBNAiEAzhjy50FF5oi2JdDIh+NGa4m+nsB8y1dswMAEFXsSi0U=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":21417},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"34c2239ea5b1e6151dcfcaef4c3529a436423e70","scripts":{"lint":"npx @aliksend/linter --fix","test":"node --require ts-node/register --test ./src/*.test.ts","build":"rm -rf dist && tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"aliksend","email":"aliknoname@gmail.com"},"repository":{"url":"git+https://github.com/aliksend/node-packages.git","type":"git"},"_npmVersion":"10.1.0","description":"Code generator","directories":{},"_nodeVersion":"20.8.1","dependencies":{"zod":"^3.22.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^10.9.2","typescript":"^5.3.3","@types/semver":"^7.5.6","@types/stack-trace":"^0.0.33"},"_npmOperationalInternal":{"tmp":"tmp/code-generator_0.0.2_1731038065169_0.4845743922445567","host":"s3://npm-registry-packages"}},"0.0.3":{"name":"@aliksend/code-generator","version":"0.0.3","keywords":["code generation"],"author":{"name":"Alik Send"},"license":"MIT","_id":"@aliksend/code-generator@0.0.3","maintainers":[{"name":"aliksend","email":"aliknoname@gmail.com"}],"homepage":"https://github.com/aliksend/node-packages#readme","bugs":{"url":"https://github.com/aliksend/node-packages/issues"},"bin":{"code-generator":"dist/cli.js"},"dist":{"shasum":"907d4c16011c95386c6d5d4d324438007fdb8cdd","tarball":"https://registry.npmjs.org/@aliksend/code-generator/-/code-generator-0.0.3.tgz","fileCount":15,"integrity":"sha512-+n5g63KUJEZtCWApffUVo8kteGGQZ0YHbM2Dw8NLjZFa1dRh9n/5/ZJ2/gpcdH/fiwAeUx4pp4sW6qw6H/xI7A==","signatures":[{"sig":"MEUCIAa5+8aR+qXMwjDlauIFuQETV44V2YyFIaqyiRYWVaCWAiEAxsi8iPTdT7idMi98id3MDEA/Lk0X3DwaI0oN2IyoAzo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":22268},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"1350e8be87fba26000c5208354ee861e10db30aa","scripts":{"lint":"npx @aliksend/linter --fix","test":"node --require ts-node/register --test ./src/*.test.ts","build":"rm -rf dist && tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"aliksend","email":"aliknoname@gmail.com"},"repository":{"url":"git+https://github.com/aliksend/node-packages.git","type":"git"},"_npmVersion":"10.1.0","description":"Code generator","directories":{},"_nodeVersion":"20.8.1","dependencies":{"zod":"^3.22.4","citty":"^0.1.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^10.9.2","typescript":"^5.3.3","@types/semver":"^7.5.6","@types/stack-trace":"^0.0.33"},"_npmOperationalInternal":{"tmp":"tmp/code-generator_0.0.3_1731038619678_0.49583953324765706","host":"s3://npm-registry-packages"}},"0.0.4":{"name":"@aliksend/code-generator","version":"0.0.4","keywords":["code generation"],"author":{"name":"Alik Send"},"license":"MIT","_id":"@aliksend/code-generator@0.0.4","maintainers":[{"name":"aliksend","email":"aliknoname@gmail.com"}],"homepage":"https://github.com/aliksend/node-packages#readme","bugs":{"url":"https://github.com/aliksend/node-packages/issues"},"bin":{"code-generator":"dist/cli.js"},"dist":{"shasum":"25a2296d6f502a165ff15661c5fc8c7d367c4f21","tarball":"https://registry.npmjs.org/@aliksend/code-generator/-/code-generator-0.0.4.tgz","fileCount":15,"integrity":"sha512-wx96KI3Zd+jNwh+dGUKkb/CPTMYePC4XTmJXVprVyPI3mZs6nznqJIaSKXbFpNKpy8Sw4dH1QQgyS4To90rcKg==","signatures":[{"sig":"MEYCIQCBVusjLf0mumQMtWKDRiM5MmQR6KtsxIxcg2P6LbsJzAIhAIbaBHO5JhoslQMoQL9Hh96m9e8Q/vtSW3aqJrrMgGN+","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":24173},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"b2e2e926c3481a7387346bcddda8ca537eed84e3","scripts":{"lint":"npx @aliksend/linter --fix","test":"node --require ts-node/register --test ./src/*.test.ts","build":"rm -rf dist && tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"aliksend","email":"aliknoname@gmail.com"},"repository":{"url":"git+https://github.com/aliksend/node-packages.git","type":"git"},"_npmVersion":"10.1.0","description":"Code generator","directories":{},"_nodeVersion":"20.8.1","dependencies":{"zod":"^3.22.4","citty":"^0.1.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^10.9.2","typescript":"^5.3.3","@types/semver":"^7.5.6","@types/stack-trace":"^0.0.33"},"_npmOperationalInternal":{"tmp":"tmp/code-generator_0.0.4_1731038757201_0.6002746392562515","host":"s3://npm-registry-packages"}},"0.0.5":{"name":"@aliksend/code-generator","version":"0.0.5","keywords":["code generation"],"author":{"name":"Alik Send"},"license":"MIT","_id":"@aliksend/code-generator@0.0.5","maintainers":[{"name":"aliksend","email":"aliknoname@gmail.com"}],"homepage":"https://github.com/aliksend/node-packages#readme","bugs":{"url":"https://github.com/aliksend/node-packages/issues"},"bin":{"code-generator":"dist/cli.js"},"dist":{"shasum":"277d7c5106e7b9c9ca2d103663759b012ecef113","tarball":"https://registry.npmjs.org/@aliksend/code-generator/-/code-generator-0.0.5.tgz","fileCount":15,"integrity":"sha512-vk4+Z5hWC7zSlc+rSzv4jNwDc+bpiuan0nlNCqokOmYRg7+dudcxSRKIl08+TRN+SetVR9bo5UYAVzelcycW2A==","signatures":[{"sig":"MEUCIH/6No04/nHNTROA64oSCMl7+nFJbV2tJ4u/oOztkGQDAiEAk8ox2J2S0lioRUXIKrokKy1x8hUI98svK9Tx9BPFboo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":22419},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"ddaafa30622c3fde83db66ab97fc60d67021510e","scripts":{"lint":"npx @aliksend/linter --fix","test":"node --require ts-node/register --test ./src/*.test.ts","build":"rm -rf dist && tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"aliksend","email":"aliknoname@gmail.com"},"repository":{"url":"git+https://github.com/aliksend/node-packages.git","type":"git"},"_npmVersion":"10.1.0","description":"Code generator","directories":{},"_nodeVersion":"20.8.1","dependencies":{"zod":"^3.22.4","citty":"^0.1.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^10.9.2","typescript":"^5.3.3","@types/semver":"^7.5.6","@types/stack-trace":"^0.0.33"},"_npmOperationalInternal":{"tmp":"tmp/code-generator_0.0.5_1731039868409_0.03009076856333648","host":"s3://npm-registry-packages"}},"0.0.6":{"name":"@aliksend/code-generator","version":"0.0.6","keywords":["code generation"],"author":{"name":"Alik Send"},"license":"MIT","_id":"@aliksend/code-generator@0.0.6","maintainers":[{"name":"aliksend","email":"aliknoname@gmail.com"}],"homepage":"https://github.com/aliksend/node-packages#readme","bugs":{"url":"https://github.com/aliksend/node-packages/issues"},"bin":{"code-generator":"dist/cli.js"},"dist":{"shasum":"8011a5632ebce8bb354a474c4f072d258b1604f3","tarball":"https://registry.npmjs.org/@aliksend/code-generator/-/code-generator-0.0.6.tgz","fileCount":15,"integrity":"sha512-H5EmxctDzgfupCNuZdmAp0IpLyaXtjswFr6exJBdS4lvxiGEqVdAOUTTx8/ILD69PMQuqwa8BrjZBwrGKzf5Gw==","signatures":[{"sig":"MEUCIQD1YlfCIJUYctvMFsSX+FAZMz/GYt4PHQLdodPMNYZscQIgO1U1Omf08/c1wPqmls5xKu84FumIcjuK9yJR/u66zAk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":22657},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"cc41177677d201e8f68580df99ff3b74cf054f32","scripts":{"lint":"npx @aliksend/linter --fix","test":"node --require ts-node/register --test ./src/*.test.ts","build":"rm -rf dist && tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"aliksend","email":"aliknoname@gmail.com"},"repository":{"url":"git+https://github.com/aliksend/node-packages.git","type":"git"},"_npmVersion":"10.1.0","description":"Code generator","directories":{},"_nodeVersion":"20.8.1","dependencies":{"zod":"^3.22.4","citty":"^0.1.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^10.9.2","typescript":"^5.3.3","@types/semver":"^7.5.6","@types/stack-trace":"^0.0.33"},"_npmOperationalInternal":{"tmp":"tmp/code-generator_0.0.6_1731040668274_0.8936948231401529","host":"s3://npm-registry-packages"}},"0.0.7":{"name":"@aliksend/code-generator","version":"0.0.7","keywords":["code generation"],"author":{"name":"Alik Send"},"license":"MIT","_id":"@aliksend/code-generator@0.0.7","maintainers":[{"name":"aliksend","email":"aliknoname@gmail.com"}],"homepage":"https://github.com/aliksend/node-packages#readme","bugs":{"url":"https://github.com/aliksend/node-packages/issues"},"bin":{"code-generator":"dist/cli.js"},"dist":{"shasum":"383124fbb0712e450d435f1b3042a2850cabc582","tarball":"https://registry.npmjs.org/@aliksend/code-generator/-/code-generator-0.0.7.tgz","fileCount":19,"integrity":"sha512-umRda0Tftkl5JjQqmhFc0G9aNBPNR3KuRkChxOHjc4Y+ylYeIpgQHr+fG/5MNI/3wiCSBdCRf9w5giRHh/ToxQ==","signatures":[{"sig":"MEUCIQCROuBMSPCpgCZ9IXi3pH7n1TbvrGZAH4443NTz995w7wIgG/8Faor6oXM//r7CwzAfOL6kn/RjkKEbhAsOoC9Cv5U=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":23335},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"928c8854d174083608360cfc583ed6be0eb0b2b5","scripts":{"lint":"npx @aliksend/linter --fix","test":"node --require ts-node/register --test ./src/*.test.ts","build":"rm -rf dist && tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"aliksend","email":"aliknoname@gmail.com"},"repository":{"url":"git+https://github.com/aliksend/node-packages.git","type":"git"},"_npmVersion":"10.9.0","description":"Code generator","directories":{},"_nodeVersion":"22.11.0","dependencies":{"zod":"^3.22.4","citty":"^0.1.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^10.9.2","typescript":"^5.3.3","@types/semver":"^7.5.6","@types/stack-trace":"^0.0.33"},"_npmOperationalInternal":{"tmp":"tmp/code-generator_0.0.7_1731645647860_0.06442419148311584","host":"s3://npm-registry-packages"}},"0.0.8":{"name":"@aliksend/code-generator","version":"0.0.8","description":"Code generator","keywords":["code generation"],"repository":{"type":"git","url":"git+https://github.com/aliksend/node-packages.git"},"type":"module","license":"MIT","author":{"name":"Alik Send"},"main":"dist/index.js","types":"dist/index.d.ts","bin":{"code-generator":"dist/cli.js"},"scripts":{"build":"rm -rf dist && tsc","lint":"npx @aliksend/linter --fix","prepublishOnly":"npm run build","test":"node --require ts-node/register --test ./src/*.test.ts"},"dependencies":{"citty":"^0.1.6","zod":"^3.22.4"},"devDependencies":{"@types/semver":"^7.5.6","@types/stack-trace":"^0.0.33","ts-node":"^10.9.2","typescript":"^5.3.3"},"publishConfig":{"access":"public"},"_id":"@aliksend/code-generator@0.0.8","gitHead":"e01b06ef4000cdf951ede3e6244dd8a00207607c","bugs":{"url":"https://github.com/aliksend/node-packages/issues"},"homepage":"https://github.com/aliksend/node-packages#readme","_nodeVersion":"22.11.0","_npmVersion":"10.9.0","dist":{"integrity":"sha512-8pIU47UBhmZdvVzsCHwGwmqAqji9j37S6FbJ4iuHKUepiNj4KaIjGNEhl6ri5icesxa8VnpIXBG546tjgfIStg==","shasum":"defbbb8efdaec5685356b6590a73bbf2cf764bca","tarball":"https://registry.npmjs.org/@aliksend/code-generator/-/code-generator-0.0.8.tgz","fileCount":19,"unpackedSize":23357,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFmToWhCbIdRrsrrt0iv0II7Sds202RwAwiFBV78LtoLAiEA+JonwzvFeQUQhz3BMK/vYUmC0Ls1fzThojE2umH35SY="}]},"_npmUser":{"name":"aliksend","email":"aliknoname@gmail.com"},"directories":{},"maintainers":[{"name":"aliksend","email":"aliknoname@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/code-generator_0.0.8_1732159519074_0.7933589755013088"},"_hasShrinkwrap":false}},"time":{"created":"2024-02-15T22:56:10.020Z","modified":"2024-11-21T03:25:19.484Z","0.0.1":"2024-02-15T22:56:10.303Z","0.0.2":"2024-11-08T03:54:25.347Z","0.0.3":"2024-11-08T04:03:39.902Z","0.0.4":"2024-11-08T04:05:57.399Z","0.0.5":"2024-11-08T04:24:28.644Z","0.0.6":"2024-11-08T04:37:48.475Z","0.0.7":"2024-11-15T04:40:48.025Z","0.0.8":"2024-11-21T03:25:19.246Z"},"bugs":{"url":"https://github.com/aliksend/node-packages/issues"},"author":{"name":"Alik Send"},"license":"MIT","homepage":"https://github.com/aliksend/node-packages#readme","keywords":["code generation"],"repository":{"type":"git","url":"git+https://github.com/aliksend/node-packages.git"},"description":"Code generator","maintainers":[{"name":"aliksend","email":"aliknoname@gmail.com"}],"readme":"# Code generator\n\nOne place to run all generators.\n\n## Idea\n\nAll of us know how to [generate typedoc](https://typedoc.org/options/) for your typescript code or [swagger for nestjs' controllers](https://docs.nestjs.com/openapi/introduction), [graphql schema from nexus declaraion](https://nexusjs.org/docs/guides/generated-artifacts) or ts [declarations for database tables using kanel](https://github.com/kristiandupont/kanel?tab=readme-ov-file#programmatical-usage).\nBut how to run all this generators at once? You can use this package to do it.\n\nFor example to generate database schema using kanel you can do\n`./src/foo/_generator.ts`\n```typescript\nimport { deferGenerator } from '@aliksend/code-generator'\nimport { processDatabase } from \"kanel\";\n\ndeferGenerator(async () => {\n  await processDatabase({\n    // config\n  });\n})\n```\n\nAnd run `npx @aliksend/code-generator` to run it. It will `import` all `_generator.ts` and runs all deferred (async) generators.\n\n## Modular services\n\nWhen you want to create service with modules (for example one module for http server, other for database connection) when each module lives in separated directory, you need to declare \"public\" interface for every module. Best place to do it - `index.ts` file in directory.\n`deferGenerator` allows to do it - you can just return map of imports and list of declarations to put to your index.ts file.\nFor example you can parse your `swagger.yaml` and produce interfaces to call declared methods with specified typings.\nYou can run `deferGenerator` as many times as you want for your module and `code-generator` will generate `index.ts` file with all `imports` and `declarations` from all generators.\n","readmeFilename":"README.md"}