{"_id":"@skbkontur/simple-container","_rev":"26-347d6d8c2e5f1efb02826306aeebecc9","name":"@skbkontur/simple-container","dist-tags":{"latest":"0.2.0"},"versions":{"0.1.0":{"name":"@skbkontur/simple-container","version":"0.1.0","author":{"name":"Timur Khazamov","email":"t1mmaas@skbkontur.ru"},"license":"MIT","_id":"@skbkontur/simple-container@0.1.0","maintainers":[{"name":"t1mmaas","email":"bboytx@gmail.com"}],"homepage":"https://github.com/nanot1m/simple-container#readme","bugs":{"url":"https://github.com/nanot1m/simple-container/issues"},"dist":{"shasum":"53711afbc5455fe0080d2f201394ebaa415cf762","tarball":"https://registry.npmjs.org/@skbkontur/simple-container/-/simple-container-0.1.0.tgz","integrity":"sha512-MDgOqttKII1+nVANnYrfHgqRUdr/RbA05+uB1/LbJJUOmly8xgISSxIFcfRAadd2S+xsVa3gtdIEin2E2NdtLw==","signatures":[{"sig":"MEYCIQCLJgtb980ZBhWC4oOqni2gsOnRXu+uh9s2puykIJa3WwIhAJfD/cfSybuvEAJTluU7H8aU6DtwbdUd5AtBFnw3C5ob","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/index.js","files":["lib"],"gitHead":"83d590e7bebbf47f0c6509299a83f5bef85c7fc6","scripts":{"test":"jest","build":"babel src --out-dir lib --ignore test.js --copy-files","prepublish":"npm test && npm run build"},"_npmUser":{"name":"t1mmaas","email":"bboytx@gmail.com"},"repository":{"url":"git+ssh://git@github.com/nanot1m/simple-container.git","type":"git"},"_npmVersion":"5.5.1","description":"Zero deps simple di container","directories":{},"_nodeVersion":"8.9.0","devDependencies":{"jest":"^21.2.1","husky":"^0.14.3","flow-bin":"^0.59.0","prettier":"^1.8.2","babel-cli":"^6.26.0","lint-staged":"^5.0.0","babel-preset-env":"^1.6.1","babel-preset-flow":"^6.23.0"},"_npmOperationalInternal":{"tmp":"tmp/simple-container-0.1.0.tgz_1511514503706_0.17436566180549562","host":"s3://npm-registry-packages"}},"0.2.0":{"name":"@skbkontur/simple-container","version":"0.2.0","author":{"name":"Timur Khazamov","email":"t1mmaas@skbkontur.ru"},"license":"MIT","_id":"@skbkontur/simple-container@0.2.0","maintainers":[{"name":"21alexander21","email":"21alexander21@gmail.com"},{"name":"olegtorokhov","email":"torokhov093@gmail.com"},{"name":"ssamooilov_skbkontur","email":"ssamooilov@skbkontur.ru"},{"name":"t1mmaas","email":"bboytx@gmail.com"},{"name":"tihonove","email":"tihonov.ea@gmail.com"},{"name":"ubitso4","email":"stanislav.kuklin@mail.ru"},{"name":"vkochev","email":"worack@ya.ru"},{"name":"wkich","email":"nflazzer@gmail.com"},{"name":"xalf","email":"khalfina.galina@gmail.com"}],"homepage":"https://github.com/nanot1m/simple-container#readme","bugs":{"url":"https://github.com/nanot1m/simple-container/issues"},"dist":{"shasum":"b635d51fecaa8a92f1770ec1366ece56b837ea50","tarball":"https://registry.npmjs.org/@skbkontur/simple-container/-/simple-container-0.2.0.tgz","fileCount":5,"integrity":"sha512-rfIv8zdNO8z/GIUWfVIa2TvjEwQNt0CSEfn43N+MLVDerToxAD392pP90TjLteSsb91dI5X4mLvwT3Z+0a8XIA==","signatures":[{"sig":"MEYCIQCa7+ZNtKt7XCSzo8cuYnyfiDaxY0cuww3Ch3cGlVwhYgIhANziNFNAHyKfFsPbso51JpQdZcZiuuh006T6rwRg5C4o","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":6394,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbT0lrCRA9TVsSAnZWagAAXDAQAI3VOmw4VTeOjmZqJr1M\npvNmjO0g4niBW1HgktsNmiAmbh763gO13O2UIOhPVPFIzqmMntYbPrEi65yU\noLVn521yKqyNT0rG77qaSoADmZFswZPuiyGm7hAqHo7wTe014cf2rdTmLm3o\n1yrFmTM+snVhFvaWCH2ohIrDFLMVQl7YRp0oL1NsqP0Gt12Nx2pwdlHH6K/A\n/C9RsYteO/pHnK6aXUsIf3OdgRFra19yN+Li1dMQuFHsBE91OGKuLR2NOqSm\n2GiAVglruJ/W/3DcerF6KS+78Pg89g8s7fWpIExEEG++t6to3i3ESf7HQ22d\nMPuSVhNP364UYll9c+oXT/W+e4wQ/w0fQBwLyiOC/97i0OqrdzYIObhj17Yr\nz1VoWM1TROlTiJ/QjmbZAKv6pn8aqmKM4IBQunfe3OksDar3l8uxdE4PXEuj\n/saZkY75BDThuMC6rLbYHwlvkdg7LuMumRNvbKqyME3aRc+93V9vVHqyjJAT\n0uNxy2uUmum0LMPXp/gobJ/C1RS5tYK75bmRiP7W14JwAuwwX/7X9M+SaNQg\n7GfXD6yz6AVIpqHttzbj6WdDuuCyP7Zi16orpVwaLXcQxj/Yy8Wk6LDtb3cH\njpQD3Nhca0Eugg4UC3/2NxLMd4c5I5buOIxMYfC+cH4Ve3/pMuAT48II4PZB\n/dEM\r\n=oQi5\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","files":["lib"],"gitHead":"f203842fe8c29273468d57ab651e6962f9b48305","scripts":{"size":"size-limit","test":"jest","build":"babel src --out-dir lib --ignore test.js --copy-files","precommit":"lint-staged","prepublish":"npm test && npm run build"},"_npmUser":{"name":"t1mmaas","email":"bboytx@gmail.com"},"repository":{"url":"git+ssh://git@github.com/nanot1m/simple-container.git","type":"git"},"size-limit":[{"path":"lib/index"}],"_npmVersion":"5.6.0","description":"Zero deps container","directories":{},"lint-staged":{"*.{js}":["prettier --write","git add"]},"_nodeVersion":"8.9.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^21.2.1","husky":"^0.14.3","flow-bin":"^0.59.0","prettier":"^1.8.2","babel-cli":"^6.26.0","size-limit":"^0.13.2","lint-staged":"^5.0.0","babel-preset-env":"^1.6.1","babel-preset-flow":"^6.23.0"},"_npmOperationalInternal":{"tmp":"tmp/simple-container_0.2.0_1531922795350_0.782091720535806","host":"s3://npm-registry-packages"}}},"time":{"created":"2017-11-24T09:08:23.813Z","modified":"2026-01-30T09:50:36.228Z","0.1.0":"2017-11-24T09:08:23.813Z","0.2.0":"2018-07-18T14:06:35.420Z"},"bugs":{"url":"https://github.com/nanot1m/simple-container/issues"},"author":{"name":"Timur Khazamov","email":"t1mmaas@skbkontur.ru"},"license":"MIT","homepage":"https://github.com/nanot1m/simple-container#readme","repository":{"url":"git+ssh://git@github.com/nanot1m/simple-container.git","type":"git"},"description":"Zero deps container","maintainers":[{"email":"anna.khlutkova@mail.ru","name":"khlutkova"},{"email":"tihonov.ea@gmail.com","name":"tihonove"},{"email":"stanislav.kuklin@mail.ru","name":"ubitso4"},{"email":"pogadaev.e@ya.ru","name":"zhzz"},{"email":"design-system-team@skbkontur.ru","name":"skbkontur-bot"},{"email":"feikfake1@gmail.com","name":"fakefeik"},{"email":"wertyxa@bk.ru","name":"original001"},{"email":"imbalanced47@gmail.com","name":"templeoftemplar"},{"email":"d.omelkov@ya.ru","name":"apocalyp0sys"},{"email":"robottorobato@gmail.com","name":"lossir"},{"email":"dmitrey04@gmail.com","name":"dpeshkin"},{"email":"alex.chabin@gmail.com","name":"nibach"},{"email":"mshatikhin@gmail.com","name":"mshatikhin"}],"readme":"# simple-container\n\nZero deps container\n\n## Usage\n\n```js\nimport SimpleContainer from '@skbkontur/SimpleContainer'\n\nconst hebrewFactory = ({ httpClient, log }) => ({\n  async brew() {\n    try {\n      await httpClient('/api/brew')\n    } catch (ex) {\n      log.error(ex)\n    }\n  }\n})\n\nconst container = new SimpleContainer()\n  .registerFactory('hebrew', hebrewFactory)\n  .registerValue('httpClient', fetch.bind(global))\n  .registerValue('log', console)\n\nconst hebrew = container.resolve('hebrew')\n\nhebrew.brew()\n```\n\n## Api\n\n`SimpleContainer` — class instantiates container\n\n### Instance methods\n\n`.registerValue(name, value)` — registers value in container\n\n`.registerClass(name, klass)` — registers class in container. When resolves,\ninstance would be created with cradle to constructor\n\n`.registerFactory(name, factory)` — registers factory function in container.\nWhen resolves, function would be called with cradle passed to arguments\n\n`.resolve(name)` — resolves registered item\n\n### Instance properties\n\n`.cradle` — Proxy, which resolves items on property get. For example:\n\n```js\nconst hebrew = container.cradle.hebrew\n// is the same as\nconst hebrew = cotainer.resolve('hebrew')\n```\n","readmeFilename":"README.md"}