{"_id":"@ace-pkg/injectable","name":"@ace-pkg/injectable","dist-tags":{"latest":"1.0.1"},"versions":{"1.0.1":{"name":"@ace-pkg/injectable","version":"1.0.1","description":"@ace-pkg/injectable is a typescript decorators package to mark things as injectable and inject them into class properties.","type":"module","license":"MIT","repository":{"type":"git","url":"git+https://github.com/AceVik/ace-injectable.git","directory":"packages/@ace/injectable"},"homepage":"https://github.com/AceVik/ace-injectable","keywords":["typescript","decorator","decorators","inject","injectable","ace","service","class","di"],"publishConfig":{"access":"public"},"author":{"name":"AceVik","email":"mail@acevik.de"},"dependencies":{"typescript":"^5.0.2"},"devDependencies":{"@types/jest":"^29.5.0","jest":"^29.5.0","ts-jest":"^29.0.5"},"main":"./src/index.ts","types":"./src/index.ts","module":"./src/index.ts","scripts":{"test":"jest"},"bugs":{"url":"https://github.com/AceVik/ace-injectable/issues"},"_id":"@ace-pkg/injectable@1.0.1","_integrity":"sha512-pI3V8lFGRHI/5yEQCexU9DTvVW6SzhzFk9e6Ztzyl8l550DdcqTIC7T1o4zI/yWF/JSDkXDgkHpKJ/EhRNriSA==","_resolved":"/private/var/folders/31/r2qgdnv94vv36z9bx6gfkh7r0000gn/T/d923e95b45b169b7c06207d20e0f3b13/ace-pkg-injectable-1.0.1.tgz","_from":"file:ace-pkg-injectable-1.0.1.tgz","_nodeVersion":"19.5.0","_npmVersion":"9.3.1","dist":{"integrity":"sha512-pI3V8lFGRHI/5yEQCexU9DTvVW6SzhzFk9e6Ztzyl8l550DdcqTIC7T1o4zI/yWF/JSDkXDgkHpKJ/EhRNriSA==","shasum":"3d47f55bfb36edd9c5214c8d8e7a539c7a9f25a9","tarball":"https://registry.npmjs.org/@ace-pkg/injectable/-/injectable-1.0.1.tgz","fileCount":6,"unpackedSize":16834,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDqUd5T8P2kLp1/4HsMJmeNB7qirjNXEjIEb5cd2f50KQIgMr1YGZhCWiZ0gZDMQgHk8JxIjXYenZzijksmcA/FhoE="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkIKwsACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq4tw/+MxMPYidRQazK735xasc3sDvwf9Z45cPU6lfaHF9Ln0yA3tB+\r\nUe7+CVFBMdCHjI6YrmWGhmNxoT7UugaxV51glcveUZwB1MBnzkkEtJx9h93S\r\n8iKwPsbk5Byp0AiHoriQZPFFCh46jw46XNRfWFB+AX0zH5PF768OekYgUvjL\r\nLz9Gz7Ohg5JhR6nGUY7If1fqPhTbq+nAOiTV7yKxmnygc2NvXgQHA9XND8x/\r\nIecHswdhD06UpTv75b5bxY6cwNxtI3QHVtEqxMtDrAkibDanh2p+G3PGxLyw\r\njPQWpvWNn73m6g5TlA2bDKw5gFgsPiC/MkKKCYXxcvMnQNci5YC7w9qdyxZB\r\ndRH9/QYPOMbv7RiMdRC1bolfss27C5FOd2huFovIbFZCQiFJBHtbZrCUihs5\r\nfRU2QAZhjZ/XlYVTozeMojQJwZVpoqWcWYfWElnjWIiUCq06W0inyGAtr+Z6\r\nwK57JrLlyaCncPtPWSM9Nbwk8FB9RG6ltiXGJAT0nwc84Hjy2+p1WoIEwivf\r\nFdz9ygnu3tyMfwAqk/OL0gXq/L81cltN1SThz75TEE6yogC7Ur4lBgwh7f31\r\nrqUTnjC9gRfReyzVcrNFPaHgT8ldkC9Z2ondn9b/oFQll+5WJTP29j8GZhEX\r\nQjHKMGyMHorfk4A+9rijquYDNJa7YU7JHVE=\r\n=Wmq7\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"acevik","email":"mail@acevik.de"},"directories":{},"maintainers":[{"name":"acevik","email":"mail@acevik.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/injectable_1.0.1_1679862827982_0.3732874640855466"},"_hasShrinkwrap":false}},"time":{"created":"2023-03-26T20:33:47.909Z","1.0.1":"2023-03-26T20:33:48.143Z","modified":"2023-03-26T20:33:48.520Z"},"maintainers":[{"name":"acevik","email":"mail@acevik.de"}],"description":"@ace-pkg/injectable is a typescript decorators package to mark things as injectable and inject them into class properties.","homepage":"https://github.com/AceVik/ace-injectable","keywords":["typescript","decorator","decorators","inject","injectable","ace","service","class","di"],"repository":{"type":"git","url":"git+https://github.com/AceVik/ace-injectable.git","directory":"packages/@ace/injectable"},"author":{"name":"AceVik","email":"mail@acevik.de"},"bugs":{"url":"https://github.com/AceVik/ace-injectable/issues"},"license":"MIT","readme":"## @ace-pkg/injectable\n> @ace-pkg/injectable is a typescript decorators package to mark\n> things as injectable and inject them into class properties.\n> \n> It uses singleton pattern von injectable classes.\n\n# How to use\nFirst, install the package:\n\n```bash\nnpm install @ace-pkg/injectable\nyarn add @ace-pkg/injectable\npnpm add @ace-pkg/injectable\n```\n\n## Define a class as injectable\nDefine the first **Injectable**, by using the `Injectable` decorator:\n\n<!--TypeScript-->\n\n```ts\nimport { Injectable } from '@ace-pkg/injectable';\n\n@Injectable('service')\nexport class MyService {\n    constructor(private message: string) {}\n\n    public printExample() {\n        console.log('example-' + this.message);\n    }\n}\n```\n\n## Inject a singleton of `MyService`\nUse the `Inject` decorator to inject a `MyService` singleton as a property.\n\n<!--TypeScript-->\n```ts\nimport { Inject } from '@ace-pkg/injectable';\nimport { MyService } from './my-service';\n\nclass MyClass {\n    @Inject(MyService)\n    public readonly myService: MyService;\n}\n```\n\n## Use the injected service\n<!--TypeScript-->\n```ts\nconst obj = new MyClass();\nobj.myService.printExample(); // => example-service\n```\n\n## Conclusion\n> This package can some more stuff, just look for it in `src/index.test.ts`\n","readmeFilename":"README.md"}