{"_id":"@barfittc/vue-service-provider","_rev":"2-7c851a04b9ed0555b9f07fa76ee0dfdf","name":"@barfittc/vue-service-provider","dist-tags":{"latest":"0.1.3"},"versions":{"0.1.1":{"name":"@barfittc/vue-service-provider","version":"0.1.1","main":"index.ts","private":false,"scripts":{},"dependencies":{"reflect-metadata":"^0.1.13","vue":"^3.3.0"},"devDependencies":{},"publishConfig":{"access":"public"},"gitHead":"87ae31eb5fa3ec66bd73838939723a8dcaae467c","description":"```json {   \"compilerOptions\": {     \"emitDecoratorMetadata\": true   },   \"include\": [\"src/**/*\", \"src/**/*.ts\", \"src/**/*.d.ts\", \"src/**/*.tsx\", \"src/**/*.vue\"],   \"references\": [{ \"path\": \"./tsconfig.node.json\" }] }","_id":"@barfittc/vue-service-provider@0.1.1","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-/BgWFYdy1TbNTqZ3+kv7FGJKOvE5yvK2mdUZGUeAj9wS6CqJCsk016ewNP1lVsi7vQUxfQU+jO/bhGU73RhLTg==","shasum":"22b3cd90fb1c79feb24e0aa118e482316911d8c0","tarball":"https://registry.npmjs.org/@barfittc/vue-service-provider/-/vue-service-provider-0.1.1.tgz","fileCount":8,"unpackedSize":18526,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCiIkPPK1xOC4FHMSGjTZKsgxgcnte6Jwc6+S9fEgD/ewIgH8TE05yDbAsPBqNFxMicWvBJZJJBnYT9d+gdsahydkY="}]},"_npmUser":{"name":"barfittc","email":"barfittc@gmail.com"},"directories":{},"maintainers":[{"name":"barfittc","email":"barfittc@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue-service-provider_0.1.1_1696883674200_0.224562979436002"},"_hasShrinkwrap":false},"0.1.2":{"name":"@barfittc/vue-service-provider","version":"0.1.2","main":"index.ts","private":false,"scripts":{},"dependencies":{"reflect-metadata":"^0.1.13","vue":"^3.3.0"},"devDependencies":{},"publishConfig":{"access":"public"},"gitHead":"07fa83547e193e26a33f1fc030897ec3d94470b4","description":"in tsconfig ```json {   \"compilerOptions\": {     \"emitDecoratorMetadata\": true   } }","_id":"@barfittc/vue-service-provider@0.1.2","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-UpnHUc5Wh9bfZcmr0tWoQYyb0RRmuaJD9FjMK03HFmUatAFnHmvzdqWsyERiiAHjzpDDXN46ECxylbLgBw6rGA==","shasum":"be64d0089d4895d77c3d04cc2dce1d524290d588","tarball":"https://registry.npmjs.org/@barfittc/vue-service-provider/-/vue-service-provider-0.1.2.tgz","fileCount":8,"unpackedSize":18407,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDHI8tx4biw/0THK25ul3g4fIUaqUm1HS7jdKbbJygN5AiEAhtmBiYXyVnnYR7XQkoEYP52j+0EZcOxfziSd2XJ1tpY="}]},"_npmUser":{"name":"barfittc","email":"barfittc@gmail.com"},"directories":{},"maintainers":[{"name":"barfittc","email":"barfittc@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue-service-provider_0.1.2_1696883818825_0.8502795870434234"},"_hasShrinkwrap":false},"0.1.3":{"name":"@barfittc/vue-service-provider","version":"0.1.3","license":"Apache 2.0","main":"index.ts","private":false,"scripts":{},"dependencies":{"reflect-metadata":"^0.1.13","vue":"^3.3.0"},"devDependencies":{},"publishConfig":{"access":"public"},"gitHead":"7927b09a6338595855de06855238c22af8c19148","description":"in tsconfig ```json {   \"compilerOptions\": {     \"emitDecoratorMetadata\": true   } }","_id":"@barfittc/vue-service-provider@0.1.3","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-51XprtN33vAlfTqjl+VVWtXz2YcaMCGa0HxU7KTngJKT85Ug5rQaLRdNO7UKNcan7MM4mDD6UkkO8QeI3Bc3jA==","shasum":"51aa4b0ae8c1a7f04595c710da10e17f50546705","tarball":"https://registry.npmjs.org/@barfittc/vue-service-provider/-/vue-service-provider-0.1.3.tgz","fileCount":8,"unpackedSize":18436,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCbIxBu9ae20B17Uz6+wjSqfw4uSqWlJcHy0V/gVs5mwQIhAJ04Sa+/D9FbqrgeR1j5EQKmRor3CXtUMbF5Anx9HFz6"}]},"_npmUser":{"name":"barfittc","email":"barfittc@gmail.com"},"directories":{},"maintainers":[{"name":"barfittc","email":"barfittc@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue-service-provider_0.1.3_1696886661715_0.9026344781309024"},"_hasShrinkwrap":false}},"time":{"created":"2023-10-09T20:34:34.071Z","0.1.1":"2023-10-09T20:34:34.407Z","modified":"2023-10-09T21:24:22.058Z","0.1.2":"2023-10-09T20:36:59.044Z","0.1.3":"2023-10-09T21:24:21.882Z"},"maintainers":[{"name":"barfittc","email":"barfittc@gmail.com"}],"description":"in tsconfig ```json {   \"compilerOptions\": {     \"emitDecoratorMetadata\": true   } }","readme":"in tsconfig\n```json\n{\n  \"compilerOptions\": {\n    \"emitDecoratorMetadata\": true\n  }\n}\n\n```\nor\n```json\n{\n  \"references\": [{ \"path\": \"node_modules/@barfittc/vue-service-provider/tsconfig.json\" }]\n}\n```\n\n\nTo use\n\nIn your main.\n```ts\ncreateApp(App)\n\t.use(addServiceProvider())\n\t.use(addServiceProviderConsumer())\n\t.mount('#app')\n```\n\nin your Vue Plugin, register your services\n\n```ts\nexport class TestConsumerTwo {\n\thello;\n\tconstructor (hello:string) {\n\t\tthis.hello = hello;\n\t}\n}\nexport class TestConsumerOne {\n\n\t@service(TestConsumerTwo)\n\ttest!: TestConsumerTwo;\n\n\t/** gets called after creation and injection */\n\tsetup() {\n\t\tconsole.log(this.test.hello)\n\t};\n}\n\nexport function addServiceProviderConsumer ():Plugin {\n\treturn function(app:App){\n\t\tgetRegistry(app)\n\t\t\t.AddSingleton(TestConsumerOne) // 1 instance ever created\n\t\t\t.AddTransiant(TestConsumerTwo, \"world\"); // new instance created every request, you can also pass arguments to the contructor\n\t}\n}\n```\n\ninside your `<script setup lang=\"ts\">`\n```ts\nconst one = getService(TestConsumerOne);\nconsole.log(one.test.hello);\n```","readmeFilename":"README.md","license":"Apache 2.0"}