{"_id":"inversify-inject-decorators","_rev":"13-f17bab9bf04dc3ecd33b37c6487ae481","name":"inversify-inject-decorators","dist-tags":{"latest":"3.1.0"},"versions":{"1.0.0-beta.1":{"name":"inversify-inject-decorators","version":"1.0.0-beta.1","keywords":["inject","lazy","property","decorator","inversify","dependency","injection"],"author":{"url":"http://www.remojansen.com","name":"Remo H. Jansen","email":"remo.jansen@wolksoftware.com"},"license":"MIT","_id":"inversify-inject-decorators@1.0.0-beta.1","maintainers":[{"name":"remojansen","email":"remo.jansen@wolksoftware.com"}],"homepage":"https://github.com/inversify/inversify-inject-decorators#readme","bugs":{"url":"https://github.com/inversify/inversify-inject-decorators/issues"},"dist":{"shasum":"6da7d43a9c8511b19c9bf1a975187617868cde8b","tarball":"https://registry.npmjs.org/inversify-inject-decorators/-/inversify-inject-decorators-1.0.0-beta.1.tgz","integrity":"sha512-VpgZTeNUliQSpY6iSw63MbytvcmkoR4NBW/BazRrVxgZV3NihKqOEBVJUu1F1aBmNx6NnxhuEFco/UWLnjJZIw==","signatures":[{"sig":"MEQCIH2w3quo6m0bnKs/9ri8QOkgmOsUhcxG/J6zA0InZnOEAiBC0/3C1qIAGmKBH0K5elWaGTfKSEnonVbfyZRZ6vm9QA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/index.js","_from":".","_shasum":"6da7d43a9c8511b19c9bf1a975187617868cde8b","gitHead":"a77a42e04e15a748ddf056a749abcfad9c1e1746","scripts":{"test":"gulp","prepublish":"publish-please guard","publish-please":"publish-please"},"_npmUser":{"name":"remojansen","email":"remo.jansen@wolksoftware.com"},"repository":{"url":"git+https://github.com/inversify/inversify-inject-decorators.git","type":"git"},"_npmVersion":"3.7.3","description":"Lazy evaluated property injection decorators for InversifyJS","directories":{"test":"test"},"_nodeVersion":"5.9.0","devDependencies":{"chai":"^3.5.0","gulp":"^3.9.1","mocha":"^3.0.2","tslint":"^3.14.0","inversify":"^2.0.0-rc.5","gulp-mocha":"^2.2.0","typescript":"^1.8.10","gulp-tslint":"^6.0.2","run-sequence":"^1.2.2","gulp-istanbul":"^1.0.0","inversify-dts":"^1.6.0","publish-please":"^2.2.0","gulp-typescript":"^2.13.6","reflect-metadata":"^0.1.3"},"_npmOperationalInternal":{"tmp":"tmp/inversify-inject-decorators-1.0.0-beta.1.tgz_1470782208439_0.13074074825271964","host":"packages-16-east.internal.npmjs.com"}},"1.0.0":{"name":"inversify-inject-decorators","version":"1.0.0","keywords":["inject","lazy","property","decorator","inversify","dependency","injection"],"author":{"url":"http://www.remojansen.com","name":"Remo H. Jansen","email":"remo.jansen@wolksoftware.com"},"license":"MIT","_id":"inversify-inject-decorators@1.0.0","maintainers":[{"name":"remojansen","email":"remo.jansen@wolksoftware.com"}],"homepage":"https://github.com/inversify/inversify-inject-decorators#readme","bugs":{"url":"https://github.com/inversify/inversify-inject-decorators/issues"},"dist":{"shasum":"0af361bfe1ef384cfd3e940f5f9be1a17ec0216a","tarball":"https://registry.npmjs.org/inversify-inject-decorators/-/inversify-inject-decorators-1.0.0.tgz","integrity":"sha512-FoO//CDvfDFuNnaHw7bV5MEcqsz+V33WT+tCab2hcokt2yoP3cFzF7qYf1v/1IQVnl2BqaIrQOaWLmj11aheFw==","signatures":[{"sig":"MEUCIQDbQhX6coDYulZkVhQVML5XkWkhyqXrNkzeTSz5GP9kwgIgU0ynzpea/sKC4J0Z5ZQ6mUjDtUK+zZG+FNGv7Mn38fM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/index.js","_from":".","_shasum":"0af361bfe1ef384cfd3e940f5f9be1a17ec0216a","gitHead":"bbd7e0b9d246a61ca89e6991be2a6cd0aa23f48e","scripts":{"test":"gulp","prepublish":"publish-please guard","publish-please":"publish-please"},"_npmUser":{"name":"remojansen","email":"remo.jansen@wolksoftware.com"},"repository":{"url":"git+https://github.com/inversify/inversify-inject-decorators.git","type":"git"},"_npmVersion":"3.7.3","description":"Lazy evaluated property injection decorators for InversifyJS","directories":{"test":"test"},"_nodeVersion":"5.9.0","devDependencies":{"chai":"^3.5.0","gulp":"^3.9.1","mocha":"^3.0.2","tslint":"^3.14.0","inversify":"^2.0.0-rc.5","gulp-mocha":"^3.0.0","typescript":"^1.8.10","gulp-tslint":"^6.0.2","run-sequence":"^1.2.2","gulp-istanbul":"^1.0.0","inversify-dts":"^2.0.0","publish-please":"^2.2.0","gulp-typescript":"^2.13.6","reflect-metadata":"^0.1.3"},"_npmOperationalInternal":{"tmp":"tmp/inversify-inject-decorators-1.0.0.tgz_1472429462970_0.6638060749974102","host":"packages-16-east.internal.npmjs.com"}},"2.0.0":{"name":"inversify-inject-decorators","version":"2.0.0","keywords":["inject","lazy","property","decorator","inversify","dependency","injection"],"author":{"url":"http://www.remojansen.com","name":"Remo H. Jansen","email":"remo.jansen@wolksoftware.com"},"license":"MIT","_id":"inversify-inject-decorators@2.0.0","maintainers":[{"name":"remojansen","email":"remo.jansen@wolksoftware.com"}],"homepage":"https://github.com/inversify/inversify-inject-decorators#readme","bugs":{"url":"https://github.com/inversify/inversify-inject-decorators/issues"},"dist":{"shasum":"3ea0cef8d6d03e46da54a5b7dc7683fdc90828f1","tarball":"https://registry.npmjs.org/inversify-inject-decorators/-/inversify-inject-decorators-2.0.0.tgz","integrity":"sha512-teCIr9Tr2+ndYxpYzjCg1nBAocp8K6Y669rjKfw5Wpgj1/1NI4KNiaETXfs1z4BoBvtB1Y1rEG17XIIr0nSmeg==","signatures":[{"sig":"MEUCIDx3liohlMfQ5TCppJ+oABQQq7AUAc0uU+XbKlWgodk7AiEAhWDqosrHmg8dwXFoMhdtDQnxjdgH/pacW9+kB42yLTA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/index.js","_from":".","_shasum":"3ea0cef8d6d03e46da54a5b7dc7683fdc90828f1","gitHead":"0ef61ac6199edeabbddc6124b4ac4f03e193815e","scripts":{"test":"gulp","prepublish":"publish-please guard","publish-please":"publish-please"},"typings":"./dts/index.d.ts","_npmUser":{"name":"remojansen","email":"remo.jansen@wolksoftware.com"},"repository":{"url":"git+https://github.com/inversify/inversify-inject-decorators.git","type":"git"},"_npmVersion":"3.10.3","description":"Lazy evaluated property injection decorators for InversifyJS","directories":{"test":"test"},"jsnext:main":"es/index.js","_nodeVersion":"6.5.0","devDependencies":{"chai":"^3.5.0","gulp":"^3.9.1","mocha":"^3.0.2","tslint":"^3.14.0","inversify":"^2.0.0","gulp-mocha":"^3.0.0","typescript":"^2.0.2","@types/chai":"^3.4.32","gulp-tslint":"^6.0.2","@types/mocha":"^2.2.31","@types/sinon":"^1.16.29","run-sequence":"^1.2.2","gulp-istanbul":"^1.0.0","publish-please":"^2.2.0","gulp-typescript":"^2.13.6","reflect-metadata":"^0.1.3"},"_npmOperationalInternal":{"tmp":"tmp/inversify-inject-decorators-2.0.0.tgz_1473582713055_0.23850190686061978","host":"packages-16-east.internal.npmjs.com"}},"3.0.0-beta.1":{"name":"inversify-inject-decorators","version":"3.0.0-beta.1","keywords":["inject","lazy","property","decorator","inversify","dependency","injection"],"author":{"url":"http://www.remojansen.com","name":"Remo H. Jansen","email":"remo.jansen@wolksoftware.com"},"license":"MIT","_id":"inversify-inject-decorators@3.0.0-beta.1","maintainers":[{"name":"remojansen","email":"remo.jansen@wolksoftware.com"}],"homepage":"https://github.com/inversify/inversify-inject-decorators#readme","bugs":{"url":"https://github.com/inversify/inversify-inject-decorators/issues"},"dist":{"shasum":"57f578d304c2efe2b255f17d3415f7f840ffceb3","tarball":"https://registry.npmjs.org/inversify-inject-decorators/-/inversify-inject-decorators-3.0.0-beta.1.tgz","integrity":"sha512-I8DzObqwUDyx91ehug6bqql6ahm609xpFALn5Bo0e+io0ljw36oSoHOpoRbZa9QTBMFcpM2OOl9EP0lLuc3qsg==","signatures":[{"sig":"MEUCIQD1UJbJpQj53dZ0QAtWeEr8SOXcG5EOOv6+Pe43B1Dm5wIgLrUywvMUwk4Kzo+RSRk2n1fJyIQ5jeqifypiLcH4qzg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/index.js","_from":".","_shasum":"57f578d304c2efe2b255f17d3415f7f840ffceb3","gitHead":"d276453e2988e22880fa279c5a4fb59a56a6a635","scripts":{"test":"gulp","prepublish":"publish-please guard","publish-please":"publish-please"},"typings":"./dts/index.d.ts","_npmUser":{"name":"remojansen","email":"remo.jansen@wolksoftware.com"},"repository":{"url":"git+https://github.com/inversify/inversify-inject-decorators.git","type":"git"},"_npmVersion":"3.10.3","description":"Lazy evaluated property injection decorators for InversifyJS","directories":{"test":"test"},"jsnext:main":"es/index.js","_nodeVersion":"6.5.0","devDependencies":{"chai":"^3.5.0","gulp":"^3.9.1","mocha":"^3.0.2","tslint":"^4.0.1","inversify":"^3.0.0-rc.1","gulp-mocha":"^3.0.0","typescript":"^2.1.1","@types/chai":"^3.4.32","gulp-tslint":"^7.0.1","@types/mocha":"^2.2.31","@types/sinon":"^1.16.29","run-sequence":"^1.2.2","gulp-istanbul":"^1.0.0","publish-please":"^2.2.0","gulp-typescript":"^3.0.0","reflect-metadata":"^0.1.3"},"_npmOperationalInternal":{"tmp":"tmp/inversify-inject-decorators-3.0.0-beta.1.tgz_1480988192255_0.774790842551738","host":"packages-12-west.internal.npmjs.com"}},"3.0.0-beta.2":{"name":"inversify-inject-decorators","version":"3.0.0-beta.2","keywords":["inject","lazy","property","decorator","inversify","dependency","injection"],"author":{"url":"http://www.remojansen.com","name":"Remo H. Jansen","email":"remo.jansen@wolksoftware.com"},"license":"MIT","_id":"inversify-inject-decorators@3.0.0-beta.2","maintainers":[{"name":"remojansen","email":"remo.jansen@wolksoftware.com"}],"homepage":"https://github.com/inversify/inversify-inject-decorators#readme","bugs":{"url":"https://github.com/inversify/inversify-inject-decorators/issues"},"dist":{"shasum":"42e261d9d26793910ff37046627692ec584450c7","tarball":"https://registry.npmjs.org/inversify-inject-decorators/-/inversify-inject-decorators-3.0.0-beta.2.tgz","integrity":"sha512-81uOmZfr3tpaI/mLAJjS0WrfWSFlqRXw47JLRdexQaHO9COcu9IvOrW212lsRJHW9BiLeFFG+Qc8fDUwkFSHJQ==","signatures":[{"sig":"MEUCIQDGXmF5qmEWLFtm2N059nUp+2fWyl2ViQHdU87JSWvR/QIgV8tvO4xc9MebX1mzTB7rssfMM9Ou/mD7OHqMyxN3qZk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/index.js","_from":".","_shasum":"42e261d9d26793910ff37046627692ec584450c7","gitHead":"8f25aaeb1f378b334fea97dd90131168dff17475","scripts":{"test":"gulp","prepublish":"publish-please guard","publish-please":"publish-please"},"typings":"./dts/index.d.ts","_npmUser":{"name":"remojansen","email":"remo.jansen@wolksoftware.com"},"repository":{"url":"git+https://github.com/inversify/inversify-inject-decorators.git","type":"git"},"_npmVersion":"3.10.3","description":"Lazy evaluated property injection decorators for InversifyJS","directories":{"test":"test"},"jsnext:main":"es/index.js","_nodeVersion":"6.5.0","devDependencies":{"chai":"^3.5.0","gulp":"^3.9.1","mocha":"^3.0.2","tslint":"^4.0.1","inversify":"^3.0.0-rc.1","gulp-mocha":"^3.0.0","typescript":"^2.1.1","@types/chai":"^3.4.32","gulp-tslint":"^7.0.1","@types/mocha":"^2.2.31","@types/sinon":"^1.16.29","run-sequence":"^1.2.2","gulp-istanbul":"^1.0.0","publish-please":"^2.2.0","gulp-typescript":"^3.0.0","reflect-metadata":"^0.1.3"},"_npmOperationalInternal":{"tmp":"tmp/inversify-inject-decorators-3.0.0-beta.2.tgz_1481061159998_0.36541050928644836","host":"packages-12-west.internal.npmjs.com"}},"3.0.0":{"name":"inversify-inject-decorators","version":"3.0.0","keywords":["inject","lazy","property","decorator","inversify","dependency","injection"],"author":{"url":"http://www.remojansen.com","name":"Remo H. Jansen","email":"remo.jansen@wolksoftware.com"},"license":"MIT","_id":"inversify-inject-decorators@3.0.0","maintainers":[{"name":"remojansen","email":"remo.jansen@wolksoftware.com"}],"homepage":"https://github.com/inversify/inversify-inject-decorators#readme","bugs":{"url":"https://github.com/inversify/inversify-inject-decorators/issues"},"dist":{"shasum":"b7a2c5723ec8888467598b9b50be36fcfcceed5f","tarball":"https://registry.npmjs.org/inversify-inject-decorators/-/inversify-inject-decorators-3.0.0.tgz","integrity":"sha512-aZCic4x6rsZRMepaUOHQZF7K9S9IL75/g2Ueqz1RAB6lU+Fg1PmjoM6t3Z1GjcTLSbJYJ3DvBNBGWBefxC9Ngw==","signatures":[{"sig":"MEYCIQC8n3DjSIjcUma7/dvRIsL7+19u60EpIa1eGRAPlhPy/AIhAODDcZ3VHIew3qeYRyHPLGFcrOc4BTNBdugtrpy0FxrY","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/index.js","_from":".","_shasum":"b7a2c5723ec8888467598b9b50be36fcfcceed5f","gitHead":"a80d84973fe2eb2cbb9c49dcfe1fa15cad2f1bf5","scripts":{"test":"gulp","prepublish":"publish-please guard","publish-please":"publish-please"},"typings":"./dts/index.d.ts","_npmUser":{"name":"remojansen","email":"remo.jansen@wolksoftware.com"},"repository":{"url":"git+https://github.com/inversify/inversify-inject-decorators.git","type":"git"},"_npmVersion":"4.0.5","description":"Lazy evaluated property injection decorators for InversifyJS","directories":{"test":"test"},"jsnext:main":"es/index.js","_nodeVersion":"7.4.0","devDependencies":{"chai":"^3.5.0","gulp":"^3.9.1","mocha":"^3.0.2","tslint":"^4.4.2","inversify":"^3.0.0-rc.1","gulp-mocha":"^3.0.0","typescript":"^2.1.1","@types/chai":"^3.4.32","gulp-tslint":"^7.0.1","@types/mocha":"^2.2.31","@types/sinon":"^1.16.29","run-sequence":"^1.2.2","gulp-istanbul":"^1.0.0","publish-please":"^2.2.0","gulp-typescript":"^3.0.0","reflect-metadata":"^0.1.3"},"_npmOperationalInternal":{"tmp":"tmp/inversify-inject-decorators-3.0.0.tgz_1485736258581_0.452920931391418","host":"packages-18-east.internal.npmjs.com"}},"3.0.1":{"name":"inversify-inject-decorators","version":"3.0.1","keywords":["inject","lazy","property","decorator","inversify","dependency","injection"],"author":{"url":"http://www.remojansen.com","name":"Remo H. Jansen","email":"remo.jansen@wolksoftware.com"},"license":"MIT","_id":"inversify-inject-decorators@3.0.1","maintainers":[{"name":"remojansen","email":"remo.jansen@wolksoftware.com"}],"homepage":"https://github.com/inversify/inversify-inject-decorators#readme","bugs":{"url":"https://github.com/inversify/inversify-inject-decorators/issues"},"dist":{"shasum":"de46df46ba72642eacac79451ec5c101e4dbcb00","tarball":"https://registry.npmjs.org/inversify-inject-decorators/-/inversify-inject-decorators-3.0.1.tgz","integrity":"sha512-nqIAAiAZh4I5IlRETV9sPMBW7sHibtTqa4T9WdJm7WT0cADKVupYBT+61YgCcnM9i+tUBN0N7v6HpXYHzCVeew==","signatures":[{"sig":"MEQCIBZLi3mzq+rIVE5alpTGYKM1t8mIbd4Do1x/sugn0acjAiBdPdI1q22G+m+uNMV5W8mDcWNrvHQ80xzV1EfEehLa5w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/index.js","_from":".","_shasum":"de46df46ba72642eacac79451ec5c101e4dbcb00","gitHead":"886e35a10a9be9ce5c32c1b7787383cd61629fce","scripts":{"test":"gulp","prepublish":"publish-please guard","publish-please":"publish-please"},"typings":"./dts/index.d.ts","_npmUser":{"name":"remojansen","email":"remo.jansen@wolksoftware.com"},"repository":{"url":"git+https://github.com/inversify/inversify-inject-decorators.git","type":"git"},"_npmVersion":"4.0.5","description":"Lazy evaluated property injection decorators for InversifyJS","directories":{"test":"test"},"jsnext:main":"es/index.js","_nodeVersion":"7.4.0","devDependencies":{"chai":"^3.5.0","gulp":"^3.9.1","mocha":"^3.0.2","tslint":"^4.4.2","inversify":"^3.0.0","gulp-mocha":"^3.0.0","typescript":"^2.1.1","@types/chai":"^3.4.32","gulp-tslint":"^7.0.1","@types/mocha":"^2.2.31","@types/sinon":"^1.16.29","run-sequence":"^1.2.2","gulp-istanbul":"^1.0.0","publish-please":"^2.2.0","gulp-typescript":"^3.0.0","reflect-metadata":"^0.1.3"},"_npmOperationalInternal":{"tmp":"tmp/inversify-inject-decorators-3.0.1.tgz_1485737250237_0.3546020849607885","host":"packages-18-east.internal.npmjs.com"}},"3.0.2":{"name":"inversify-inject-decorators","version":"3.0.2","keywords":["inject","lazy","property","decorator","inversify","dependency","injection"],"author":{"url":"http://www.remojansen.com","name":"Remo H. Jansen","email":"remo.jansen@wolksoftware.com"},"license":"MIT","_id":"inversify-inject-decorators@3.0.2","maintainers":[{"name":"remojansen","email":"remo.jansen@wolksoftware.com"}],"homepage":"https://github.com/inversify/inversify-inject-decorators#readme","bugs":{"url":"https://github.com/inversify/inversify-inject-decorators/issues"},"dist":{"shasum":"9817e1f0212b9098d476d502449bd807305ca4e6","tarball":"https://registry.npmjs.org/inversify-inject-decorators/-/inversify-inject-decorators-3.0.2.tgz","integrity":"sha512-kM7lR4kdQPWUkKf8CpzgxksZwBnlbAiCyuIF5cCa2tblzGuVUJ27C5byDN5mOyUGUKzFD0W1Abw3R07NL7/zAA==","signatures":[{"sig":"MEQCIDE5O/yby0qdnxP/jWRs6wXxeu18OZQA/wII/CXeq0rbAiBhPxcFyDpnGsglplC18YWOsK2Zljl0uVzFyLeEsRY/Qg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/index.js","gitHead":"deaf9d2b642835033f9923021e7053f81d9c57ef","scripts":{"test":"gulp","prepublish":"publish-please guard","publish-please":"publish-please"},"typings":"./dts/index.d.ts","_npmUser":{"name":"remojansen","email":"remo.jansen@wolksoftware.com"},"repository":{"url":"git+https://github.com/inversify/inversify-inject-decorators.git","type":"git"},"_npmVersion":"5.5.1","description":"Lazy evaluated property injection decorators for InversifyJS","directories":{"test":"test"},"jsnext:main":"es/index.js","_nodeVersion":"8.1.0","devDependencies":{"chai":"4.1.2","gulp":"3.9.1","mocha":"4.0.1","tslint":"5.8.0","inversify":"4.5.1","gulp-mocha":"3.0.1","typescript":"2.6.1","@types/chai":"4.0.4","gulp-tslint":"8.1.2","@types/mocha":"2.2.44","@types/sinon":"2.3.7","run-sequence":"2.2.0","gulp-istanbul":"1.1.2","publish-please":"2.3.1","gulp-typescript":"3.2.3","reflect-metadata":"0.1.10"},"_npmOperationalInternal":{"tmp":"tmp/inversify-inject-decorators-3.0.2.tgz_1509831515443_0.5188761868048459","host":"s3://npm-registry-packages"}},"3.1.0":{"name":"inversify-inject-decorators","version":"3.1.0","keywords":["inject","lazy","property","decorator","inversify","dependency","injection"],"author":{"url":"http://www.remojansen.com","name":"Remo H. Jansen","email":"remo.jansen@wolksoftware.com"},"license":"MIT","_id":"inversify-inject-decorators@3.1.0","maintainers":[{"name":"remojansen","email":"remo.jansen@wolksoftware.com"}],"homepage":"https://github.com/inversify/inversify-inject-decorators#readme","bugs":{"url":"https://github.com/inversify/inversify-inject-decorators/issues"},"dist":{"shasum":"d9941080bad77cec8a65ee29d905e4d5d73e1e95","tarball":"https://registry.npmjs.org/inversify-inject-decorators/-/inversify-inject-decorators-3.1.0.tgz","integrity":"sha512-/seBlVp5bXrLQS3DpKEmlgeZL6C7Tf/QITd+IMQrbBBGuCbxb7k3hRAWu9XSreNpFzLgSboz3sClLSEmGwHphw==","signatures":[{"sig":"MEUCIQCLbKA2ppoHKdwE3JskgYBerp1rHv3AKp9MHAgJJPuZywIgWjvgIb7uXlZ2NRS0lJrR3EA0ur5Nmqg4cAgG6J29Wy0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/index.js","gitHead":"e6fc8ff4405f67603a6b287a6ef9c42a1534afbf","scripts":{"test":"gulp","prepublish":"publish-please guard","publish-please":"publish-please"},"typings":"./dts/index.d.ts","_npmUser":{"name":"remojansen","email":"remo.jansen@wolksoftware.com"},"repository":{"url":"git+https://github.com/inversify/inversify-inject-decorators.git","type":"git"},"_npmVersion":"5.5.1","description":"Lazy evaluated property injection decorators for InversifyJS","directories":{"test":"test"},"jsnext:main":"es/index.js","_nodeVersion":"8.1.0","devDependencies":{"chai":"4.1.2","gulp":"3.9.1","mocha":"4.1.0","tslint":"5.8.0","ts-node":"4.1.0","inversify":"4.9.0","gulp-mocha":"5.0.0","typescript":"2.6.2","@types/chai":"4.1.0","gulp-tslint":"8.1.2","@types/mocha":"2.2.46","@types/sinon":"4.1.2","run-sequence":"2.2.1","gulp-istanbul":"1.1.3","publish-please":"2.3.1","gulp-typescript":"3.2.3","reflect-metadata":"0.1.10"},"_npmOperationalInternal":{"tmp":"tmp/inversify-inject-decorators-3.1.0.tgz_1515369345722_0.29914815770462155","host":"s3://npm-registry-packages"}}},"time":{"created":"2016-08-09T22:36:51.252Z","modified":"2024-10-12T10:01:13.306Z","1.0.0-beta.1":"2016-08-09T22:36:51.252Z","1.0.0":"2016-08-29T00:11:04.120Z","2.0.0":"2016-09-11T08:31:54.811Z","3.0.0-beta.1":"2016-12-06T01:36:34.549Z","3.0.0-beta.2":"2016-12-06T21:52:41.938Z","3.0.0":"2017-01-30T00:30:59.218Z","3.0.1":"2017-01-30T00:47:30.841Z","3.0.2":"2017-11-04T21:38:36.455Z","3.1.0":"2018-01-07T23:55:46.725Z"},"bugs":{"url":"https://github.com/inversify/inversify-inject-decorators/issues"},"author":{"url":"http://www.remojansen.com","name":"Remo H. Jansen","email":"remo.jansen@wolksoftware.com"},"license":"MIT","homepage":"https://github.com/inversify/inversify-inject-decorators#readme","keywords":["inject","lazy","property","decorator","inversify","dependency","injection"],"repository":{"url":"git+https://github.com/inversify/inversify-inject-decorators.git","type":"git"},"description":"Lazy evaluated property injection decorators for InversifyJS","maintainers":[{"email":"remo.jansen@wolksoftware.com","name":"remojansen"},{"email":"jameskmonger@hotmail.co.uk","name":"jameskmonger"},{"email":"djcavanagh@gmail.com","name":"dcavanagh"},{"email":"roberto.pintos.lopez@gmail.com","name":"notaphplover"}],"readme":"# inversify-inject-decorators\n\n[![Join the chat at https://gitter.im/inversify/InversifyJS](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/inversify/InversifyJS?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n[![Build Status](https://secure.travis-ci.org/inversify/inversify-inject-decorators.svg?branch=master)](https://travis-ci.org/inversify/inversify-inject-decorators)\n[![Test Coverage](https://codeclimate.com/github/inversify/inversify-inject-decorators/badges/coverage.svg)](https://codeclimate.com/github/inversify/inversify-inject-decorators/coverage)\n[![npm version](https://badge.fury.io/js/inversify-inject-decorators.svg)](http://badge.fury.io/js/inversify-inject-decorators)\n[![Dependencies](https://david-dm.org/inversify/inversify-inject-decorators.svg)](https://david-dm.org/inversify/inversify-inject-decorators#info=dependencies)\n[![img](https://david-dm.org/inversify/inversify-inject-decorators/dev-status.svg)](https://david-dm.org/inversify/inversify-inject-decorators/#info=devDependencies)\n[![img](https://david-dm.org/inversify/inversify-inject-decorators/peer-status.svg)](https://david-dm.org/inversify/inversify-inject-decorators/#info=peerDependenciess)\n[![Known Vulnerabilities](https://snyk.io/test/github/inversify/inversify-inject-decorators/badge.svg)](https://snyk.io/test/github/inversify/inversify-inject-decorators)\n\n[![NPM](https://nodei.co/npm/inversify-inject-decorators.png?downloads=true&downloadRank=true)](https://nodei.co/npm/inversify-inject-decorators/)\n[![NPM](https://nodei.co/npm-dl/inversify-inject-decorators.png?months=9&height=3)](https://nodei.co/npm/inversify-inject-decorators/)\n\nLazy evaluated property injection decorators.\n\n## Motivation\nSome frameworks and libraries take control over the creation of instances \nof a given class. For example, React takes control over the creation of \ninstances of a given React component. This kind of frameworks and libraries \n**prevent us from being able to use constructor injection** and as a result \nthey are not easy to integrate with InversifyJS.\n\nInversifyJS also provides support for property injection but it also\nrequires the instances of a class to be created by InversifyJS.\n\nThe decorators included in this library will allow you to lazy-inject \nproperties even when the instances of a class cannot created by InversifyJS.\n\nThis library allows you to integrate InversifyJS with any library or \nframework that takes control over the creation of instances of a \ngiven class.\n\n## Installation\nYou can install `inversify-inject-decorators` using npm:\n\n```\n$ npm install inversify inversify-inject-decorators reflect-metadata --save\n```\n\nThe `inversify-inject-decorators` type definitions are included in the npm module and require TypeScript 2.0.\n\n> :warning: Please note that this library requires support for the ES6 Symbol. You can use the [es6-symbol polyfill](https://www.npmjs.com/package/es6-symbol) as a work arround.\n\nPlease refer to the [InversifyJS documentation](https://github.com/inversify/InversifyJS#installation) to learn more about the installation process.\n\n## Caching vs Non Caching Behaviour\n\nBy default, the lazy injection mechanism implemented by this will cache all requests to the underlying container.\nThis means that rebinding or unbinding services to/from service identifiers will not be reflected in the instances into which these services have been injected into. The same holds true for scenarios where you dynamically load/unload container modules and thus either add or remove bindings from your container.\n\nTo overcome this limitation, one can now pass an additional boolean parameter to `getDecorators(container: Container, doCache = true)`. When set to `false`, services resolved from the container will no longer be cached and will always be resolved from the container directly, e.g.\n\n```ts\nimport { Container } from \"inversify\";\nimport getDecorators from \"inversify-inject-decorators\";\n\nconst container: Container = new Container();\nconst { lazyInject } = getDecorators(container, false);\n```\n\n## Basic property lazy-injection with `@lazyInject`\nThe following example showcases how to inject into a property \nusing the `@lazyInject` decorator:\n\n```ts\nimport getDecorators from \"inversify-inject-decorators\";\nimport { Container, injectable, tagged, named } from \"inversify\";\n\nlet container = new Container();\nlet { lazyInject } = getDecorators(container);\nlet TYPES = { Weapon: \"Weapon\" };\n\ninterface Weapon {\n    name: string;\n    durability: number;\n    use(): void;\n}\n\n@injectable()\nclass Sword implements Weapon {\n    public name: string;\n    public durability: number;\n    public constructor() {\n        this.durability = 100;\n        this.name = \"Sword\";\n    }\n    public use() {\n        this.durability = this.durability - 10;\n    }\n}\n\nclass Warrior {\n    @lazyInject(TYPES.Weapon)\n    public weapon: Weapon;\n}\n\ncontainer.bind<Weapon>(TYPES.Weapon).to(Sword);\n\nlet warrior = new Warrior();\nconsole.log(warrior.weapon instanceof Sword); // true\n```\n\n## Named property injection with `@lazyInjectNamed`\nThe following example showcases how to inject into a named property \nusing the `@lazyInjectNamed` decorator:\n\n```ts\nimport getDecorators from \"inversify-inject-decorators\";\nimport { Container, injectable, named } from \"inversify\";\n\nlet container = new Container();\nlet { lazyInjectNamed } = getDecorators(container);\nlet TYPES = { Weapon: \"Weapon\" };\n\ninterface Weapon {\n    name: string;\n    durability: number;\n    use(): void;\n}\n\n@injectable()\nclass Sword implements Weapon {\n    public name: string;\n    public durability: number;\n    public constructor() {\n        this.durability = 100;\n        this.name = \"Sword\";\n    }\n    public use() {\n        this.durability = this.durability - 10;\n    }\n}\n\n@injectable()\nclass Shuriken implements Weapon {\n    public name: string;\n    public durability: number;\n    public constructor() {\n        this.durability = 100;\n        this.name = \"Shuriken\";\n    }\n    public use() {\n        this.durability = this.durability - 10;\n    }\n}\n\nclass Warrior {\n\n    @lazyInjectNamed(TYPES.Weapon, \"not-throwwable\")\n    @named(\"not-throwwable\")\n    public primaryWeapon: Weapon;\n\n    @lazyInjectNamed(TYPES.Weapon, \"throwwable\")\n    @named(\"throwwable\")\n    public secondaryWeapon: Weapon;\n\n}\n\ncontainer.bind<Weapon>(TYPES.Weapon).to(Sword).whenTargetNamed(\"not-throwwable\");\ncontainer.bind<Weapon>(TYPES.Weapon).to(Shuriken).whenTargetNamed(\"throwwable\");\n\nlet warrior = new Warrior();\nconsole.log(warrior.primaryWeapon instanceof Sword); // true\nconsole.log(warrior.primaryWeapon instanceof Shuriken); // true\n```\n\n## Tagged property injection with `@lazyInjectTagged`\nThe following example showcases how to inject a tagged property \nusing the `@lazyInjectTagged` decorator:\n\n```ts\nimport getDecorators from \"inversify-inject-decorators\";\nimport { Container, injectable, tagged } from \"inversify\";\n\nlet container = new Container();\nlet { lazyInjectTagged } = getDecorators(container);\nlet TYPES = { Weapon: \"Weapon\" };\n\ninterface Weapon {\n    name: string;\n    durability: number;\n    use(): void;\n}\n\n@injectable()\nclass Sword implements Weapon {\n    public name: string;\n    public durability: number;\n    public constructor() {\n        this.durability = 100;\n        this.name = \"Sword\";\n    }\n    public use() {\n        this.durability = this.durability - 10;\n    }\n}\n\n@injectable()\nclass Shuriken implements Weapon {\n    public name: string;\n    public durability: number;\n    public constructor() {\n        this.durability = 100;\n        this.name = \"Shuriken\";\n    }\n    public use() {\n        this.durability = this.durability - 10;\n    }\n}\n\nclass Warrior {\n\n    @lazyInjectTagged(TYPES.Weapon, \"throwwable\", false)\n    @tagged(\"throwwable\", false)\n    public primaryWeapon: Weapon;\n\n    @lazyInjectTagged(TYPES.Weapon, \"throwwable\", true)\n    @tagged(\"throwwable\", true)\n    public secondaryWeapon: Weapon;\n\n}\n\ncontainer.bind<Weapon>(TYPES.Weapon).to(Sword).whenTargetTagged(\"throwwable\", false);\ncontainer.bind<Weapon>(TYPES.Weapon).to(Shuriken).whenTargetTagged(\"throwwable\", true);\n\nlet warrior = new Warrior();\nconsole.log(warrior.primaryWeapon instanceof Sword); // true\nconsole.log(warrior.primaryWeapon instanceof Shuriken); // true\n```\n\n## Multi-injection into a property with `@lazyMultiInject`\nThe following example showcases how to multi-inject a property \nusing the `@lazyMultiInject` decorator:\n\n```ts\nimport getDecorators from \"inversify-inject-decorators\";\nimport { Container, injectable } from \"inversify\";\n\nlet container = new Container();\nlet { lazyMultiInject } = getDecorators(container);\nlet TYPES = { Weapon: \"Weapon\" };\n\ninterface Weapon {\n    name: string;\n    durability: number;\n    use(): void;\n}\n\n@injectable()\nclass Sword implements Weapon {\n    public name: string;\n    public durability: number;\n    public constructor() {\n        this.durability = 100;\n        this.name = \"Sword\";\n    }\n    public use() {\n        this.durability = this.durability - 10;\n    }\n}\n\n@injectable()\nclass Shuriken implements Weapon {\n    public name: string;\n    public durability: number;\n    public constructor() {\n        this.durability = 100;\n        this.name = \"Shuriken\";\n    }\n    public use() {\n        this.durability = this.durability - 10;\n    }\n}\n\nclass Warrior {\n\n    @lazyMultiInject(TYPES.Weapon)\n    public weapons: Weapon[];\n\n}\n\ncontainer.bind<Weapon>(TYPES.Weapon).to(Sword);\ncontainer.bind<Weapon>(TYPES.Weapon).to(Shuriken);\n\nlet warrior = new Warrior();\nconsole.log(warrior.weapons[0] instanceof Sword); // true\nconsole.log(warrior.weapons[1] instanceof Shuriken); // true\n```\n","readmeFilename":"README.md"}