{"_id":"micon","_rev":"27-276e21ec5080ba7a8e2b32055ebed515","name":"micon","description":"Dependency injector","dist-tags":{"latest":"1.2.7"},"versions":{"1.0.0":{"name":"micon","main":"./micon","version":"1.0.0","homepage":"http://github.com/alexeypetrushin/miconjs","dependencies":{"underscore":"1.3.x"},"devDependencies":{"chai":"1.3.x","mocha":"1.5.x","fibers":"1.0.x"},"description":"Dependency injector","keywords":["DI","IoC","Dependency Injection"],"author":{"name":"Alexey Petrushin","url":"http://petrush.in"},"license":"MIT","_npmUser":{"name":"alexey.petrushin","email":"alexey.petrushin@gmail.com"},"_id":"micon@1.0.0","optionalDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.9","_nodeVersion":"v0.8.2","_defaultsLoaded":true,"dist":{"shasum":"de030c490cd53aff7292534169a17156d98cea7a","tarball":"https://registry.npmjs.org/micon/-/micon-1.0.0.tgz","integrity":"sha512-KvK0f7cJXZmqKq0UXdANqHhcAyb3Y3MthbL3jiAdbA/AaCFYkbG2Z74Lj9NFrSRFSN05HRFktWlozIx0yRftDw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDaKEzjpgCKKEptrilgeQSapuKpnA+n2eIpB2CQFyVVLQIhAKOOuynfLMw6Qrd6PE9EGFNpqS3M08lFdZ119QpCkHNr"}]},"maintainers":[{"name":"alexey.petrushin","email":"alexey.petrushin@gmail.com"}]},"1.1.0":{"name":"micon","main":"./micon","version":"1.1.0","homepage":"http://github.com/alexeypetrushin/miconjs","dependencies":{"fibers":"1.0.x"},"devDependencies":{"chai":"1.3.x","mocha":"1.5.x"},"description":"Dependency injector","keywords":["DI","IoC","Dependency Injection"],"author":{"name":"Alexey Petrushin","url":"http://petrush.in"},"license":"MIT","_npmUser":{"name":"alexey.petrushin","email":"alexey.petrushin@gmail.com"},"_id":"micon@1.1.0","optionalDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.9","_nodeVersion":"v0.8.2","_defaultsLoaded":true,"dist":{"shasum":"3098c7994edc9c4022ff7bf72af1a46a737b0653","tarball":"https://registry.npmjs.org/micon/-/micon-1.1.0.tgz","integrity":"sha512-ILxyuWF9myOMzyMebJya+CBRxsm0Yf7keyIB7wBX0LaKSt6WLV9mL59kZgOO31VHcRFg+4hfqAcPtmmEOqXLmQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQClwE8i91t7WHISFzI9zKCpUUpFuNn+WPxRWu2Z25iQYgIgYaPtw4SofgmfCdF69z1uo3/iuHgdTrtr9TZmDOiHEIY="}]},"maintainers":[{"name":"alexey.petrushin","email":"alexey.petrushin@gmail.com"}]},"1.2.0":{"name":"micon","main":"./micon","version":"1.2.0","homepage":"http://github.com/alexeypetrushin/miconjs","dependencies":{"fibers":"1.0.x"},"devDependencies":{"chai":"1.3.x","mocha":"1.5.x"},"description":"Dependency injector","keywords":["DI","IoC","Dependency Injection"],"author":{"name":"Alexey Petrushin","url":"http://petrush.in"},"license":"MIT","scripts":{"prepublish":"coffee -c micon.coffee","postpublish":"rm micon.js"},"_npmUser":{"name":"alexey.petrushin","email":"alexey.petrushin@gmail.com"},"_id":"micon@1.2.0","optionalDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.9","_nodeVersion":"v0.8.2","_defaultsLoaded":true,"dist":{"shasum":"0dca404d2b1d97b7f304b16678173c552e765e01","tarball":"https://registry.npmjs.org/micon/-/micon-1.2.0.tgz","integrity":"sha512-dxa6UWpAzkECaXzwrK6i2iVzdIpKPi9pcaSPPCGEtAH5qywB5/ZvzDXb7zYTwy4RQ6w4nL9jrKHjuGgUJRRDiw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCxkwQZRIkMyR6yDdE9Qd+XwiQH1RoH1xzmE49+j5tJUQIgG7tJ3+5MxZ14pXllKY+UKXlzqbSSDi4KL7ukPEoyZtI="}]},"maintainers":[{"name":"alexey.petrushin","email":"alexey.petrushin@gmail.com"}]},"1.2.1":{"name":"micon","main":"./micon","version":"1.2.1","homepage":"http://github.com/alexeypetrushin/miconjs","devDependencies":{"chai":"1.3.x","mocha":"1.5.x","synchronize":"0.5.x"},"description":"Dependency injector","keywords":["DI","IoC","Dependency Injection"],"author":{"name":"Alexey Petrushin","url":"http://petrush.in"},"license":"MIT","scripts":{"prepublish":"coffee -c micon.coffee","postpublish":"rm micon.js"},"_id":"micon@1.2.1","dist":{"shasum":"50752b22b82658f81ad501ac96795166dc3cb3f7","tarball":"https://registry.npmjs.org/micon/-/micon-1.2.1.tgz","integrity":"sha512-k8iTy7QXvK3T3gHvm6Rvu/jMSJHWNuVuEOyWI4NgPcYZ/xPKi/lrgIt4FZmmFZVPxJNWXyUJ/sLKH4ScNQ+lmw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDn9zxjF0wiCdTQtc+DFOcjdKl/+o6HP+8Yl8gWR/wQ3AiA2LWoq7Tua3IxK0Gte/p/0n/AlCBR12L4M5qkU5KdkIg=="}]},"_from":".","_npmVersion":"1.2.10","_npmUser":{"name":"alexey.petrushin","email":"alexey.petrushin@gmail.com"},"maintainers":[{"name":"alexey.petrushin","email":"alexey.petrushin@gmail.com"}]},"1.2.2":{"name":"micon","main":"./micon","version":"1.2.2","homepage":"http://github.com/alexeypetrushin/miconjs","devDependencies":{"chai":"1.3.x","mocha":"1.5.x","synchronize":"0.5.x"},"description":"Dependency injector","keywords":["DI","IoC","Dependency Injection"],"author":{"name":"Alexey Petrushin","url":"http://petrush.in"},"license":"MIT","scripts":{"prepublish":"coffee -c micon.coffee","postpublish":"rm micon.js"},"_id":"micon@1.2.2","dist":{"shasum":"4c123a23ccb50fa190089565c817f249dc4f06f2","tarball":"https://registry.npmjs.org/micon/-/micon-1.2.2.tgz","integrity":"sha512-FG+15wzc9Y1hVhwINOEbYzyOoOVuKyQiMy2BtDCwxFi/OWknKCOeL1MR2e4adEMlimT2sN/64p+0doezVHshxQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDHPNyQKQBN4zboZIg45Od/OM4LazZCR9KY4xz5jv1tjwIhAMYkbGuJo/h7SFRyg2+dTrF3R5+HJTqmSp+SVRubleQG"}]},"_from":".","_npmVersion":"1.2.23","_npmUser":{"name":"alexey.petrushin","email":"alexey.petrushin@gmail.com"},"maintainers":[{"name":"alexey.petrushin","email":"alexey.petrushin@gmail.com"}]},"1.2.3":{"name":"micon","main":"./micon","version":"1.2.3","homepage":"http://github.com/alexeypetrushin/miconjs","devDependencies":{"chai":"1.3.x","mocha":"1.5.x","synchronize":"0.5.x"},"description":"Dependency injector","keywords":["DI","IoC","Dependency Injection"],"author":{"name":"Alexey Petrushin","url":"http://petrush.in"},"license":"MIT","scripts":{"prepublish":"coffee -c micon.coffee","postpublish":"rm micon.js"},"_id":"micon@1.2.3","dist":{"shasum":"7bb850acaff879740af719540cb5db4e1cf544a9","tarball":"https://registry.npmjs.org/micon/-/micon-1.2.3.tgz","integrity":"sha512-Ng/8hrgCy6iuHqOtrAjGhBOiaXPMYs4jghOvwouEk7xvJ1N0Nnx8MNLeWMgq2rFlFKpRSx9pzUcI7WMhY8C1EA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICoEN6z9/L5+Os9zZtajPd8YTAIC9cfxjCJeVSbNc6IcAiEA3axV+3fd9gMxmp7W4Vowb0JDrvx4HHhqfG9olmTTq6I="}]},"_from":".","_npmVersion":"1.3.2","_npmUser":{"name":"alexey.petrushin","email":"alexey.petrushin@gmail.com"},"maintainers":[{"name":"alexey.petrushin","email":"alexey.petrushin@gmail.com"}]},"1.2.4":{"name":"micon","main":"./micon","version":"1.2.4","homepage":"http://github.com/alexeypetrushin/miconjs","devDependencies":{"chai":"1.3.x","mocha":"1.5.x","synchronize":"0.5.x"},"description":"Dependency injector","keywords":["DI","IoC","Dependency Injection"],"author":{"name":"Alexey Petrushin","url":"http://petrush.in"},"license":"MIT","scripts":{"prepublish":"coffee -c micon.coffee","postpublish":"rm micon.js"},"_id":"micon@1.2.4","dist":{"shasum":"0d0acaee597aa68ca214ecea806fbcd70f5f8ab0","tarball":"https://registry.npmjs.org/micon/-/micon-1.2.4.tgz","integrity":"sha512-/wPNxU8iQ96WKmT+bisdK4y4KlSQVXCEruBDkk1k5VUlCu2LWDEluBtWAdCBRm3JxtdPdyOYZceXk2/LV0Xonw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDQ5Pzz768dfUhIQhDZBFfdrM4T41lE4JJzScpMuyn3IQIgWQlx4Y1hBntYCVhd/gr5A+WPdt0IC3P7tMLrYVSQ504="}]},"_from":".","_npmVersion":"1.3.2","_npmUser":{"name":"alexey.petrushin","email":"alexey.petrushin@gmail.com"},"maintainers":[{"name":"alexey.petrushin","email":"alexey.petrushin@gmail.com"}]},"1.2.5":{"name":"micon","main":"./micon","version":"1.2.5","homepage":"http://github.com/alexeypetrushin/miconjs","devDependencies":{"chai":"1.3.x","mocha":"1.5.x","synchronize":"0.5.x"},"description":"Dependency injector","keywords":["DI","IoC","Dependency Injection"],"author":{"name":"Alexey Petrushin","url":"http://petrush.in"},"license":"MIT","scripts":{"prepublish":"coffee -c micon.coffee","postpublish":"rm micon.js"},"_id":"micon@1.2.5","dist":{"shasum":"864523ec079025ade3cb50f95f314c03f4f19228","tarball":"https://registry.npmjs.org/micon/-/micon-1.2.5.tgz","integrity":"sha512-ivLJZfpJzdbQZ1zyZ+tvRf2PZ01KaXWlgJezFu2u9/qotvhACXJW67b+fCPcFGsWDFlSicBaYlVWTuMjtcyL1A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQClh8KXcRNBOxKaki7hoXDdLegEhZnWMIlpfIQis1iS5gIhAMgrgnQ9w9Znxt1MlZZt5myQubvsjSD8sX6vJe074yzX"}]},"_from":".","_npmVersion":"1.3.2","_npmUser":{"name":"alexey.petrushin","email":"alexey.petrushin@gmail.com"},"maintainers":[{"name":"alexey.petrushin","email":"alexey.petrushin@gmail.com"}]},"1.2.6":{"name":"micon","main":"./micon","version":"1.2.6","homepage":"http://github.com/alexeypetrushin/miconjs","devDependencies":{"chai":"1.3.x","mocha":"1.5.x","synchronize":"0.5.x"},"description":"Dependency injector","keywords":["DI","IoC","Dependency Injection"],"author":{"name":"Alexey Petrushin","url":"http://petrush.in"},"license":"MIT","scripts":{"prepublish":"coffee -c micon.coffee","postpublish":"rm micon.js"},"_id":"micon@1.2.6","dist":{"shasum":"e20104bba2e7935ef2593ad92ca35e1fa88b32fb","tarball":"https://registry.npmjs.org/micon/-/micon-1.2.6.tgz","integrity":"sha512-l029MjUj9RFxLqtO6b9a5IQ2V0xPXhgVsARBfkH0m0MBUix7S7Qyovy6cLc1pasaQhP8rFw4auMp407QV28ytQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFZkRnbPEu9dUNAmw7BrmmkOJt4WHGjn4USna2wW2el1AiAnlgPKmofaOvrzw9bYPGtccFXyFRm2Y8f9LDI9OEEbDw=="}]},"_from":".","_npmVersion":"1.3.14","_npmUser":{"name":"alexey.petrushin","email":"alexey.petrushin@gmail.com"},"maintainers":[{"name":"alexey.petrushin","email":"alexey.petrushin@gmail.com"}]},"1.2.7":{"name":"micon","main":"./micon","version":"1.2.7","homepage":"http://github.com/alexeypetrushin/miconjs","devDependencies":{"chai":"1.3.x","mocha":"1.5.x","synchronize":"0.5.x"},"description":"Dependency injector","keywords":["DI","IoC","Dependency Injection"],"author":{"name":"Alexey Petrushin","url":"http://petrush.in"},"license":"MIT","scripts":{"prepublish":"coffee -c micon.coffee","postpublish":"rm micon.js"},"_id":"micon@1.2.7","dist":{"shasum":"b0058b365066133772293d4df6441c098ae47179","tarball":"https://registry.npmjs.org/micon/-/micon-1.2.7.tgz","integrity":"sha512-NUe+OsQNghxkf1Th3t5DSexf+AOzUP95p/+ViMZBgTCk7VjMqbpmLqsC0eqaiMbCf50ngKsX6qePKtO97KOCGw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD2NBr5i9xM8WKAB0U2+cY8SZ/yUmextiWyNmE0cDD02QIhAO3/OymqpR/jF+2Rbkt9V9aRyNmDczu4szP8Mc2ixxiF"}]},"_from":".","_npmVersion":"1.3.14","_npmUser":{"name":"alexey.petrushin","email":"alexey.petrushin@gmail.com"},"maintainers":[{"name":"alexey.petrushin","email":"alexey.petrushin@gmail.com"}]}},"readme":"Dependency injector, assembles application.\n\nRegistering, getting and setting components.\n\n``` CoffeeScript\napp.register 'component', -> 'some component'\nconsole.log app.component\n# => some component\n\napp.component = 'another component'\nconsole.log app.component\n# => another component\n```\n\nDependencies can be specified implicitly.\n\n``` CoffeeScript\napp.register 'a', ->\n  console.log 'initializing a'\n  'a'\napp.register 'b', ->\n  console.log 'initializing b'\n  \"#{app.a} b\"\n\nconsole.log app.b\n# => initializing b\n# => initializing a\n# => a b\n```\n\nOr explicitly. The only difference with implicit approach is that explicit\ndeclaration will resolve circular dependencies (implicit approach\nwill fail).\n\n``` CoffeeScript\napp.register 'a', ->\n  console.log 'initializing a'\n  'a'\napp.register 'b', dependencies: ['a'], ->\n  console.log 'initializing b'\n  \"#{app.a} b\"\n\nconsole.log app.b\n# => initializing a\n# => initializing b\n# => a b\n```\n\nComponent lifecycle callbacks.\n\n``` CoffeeScript\napp.register 'component', ->\n  console.log 'initialization'\n  'some component'\napp.before 'component', -> console.log 'before initialization'\napp.after 'component', -> console.log 'after initialization'\n\napp.component\n# => before initialization\n# => initialization\n# => after initialization\n```\n\nScopes.\n\n``` CoffeeScript\napp.register 'params', scope: 'request', -> {}\n\nstartFiberSomehow ->\n  app.scope 'request', ->\n    app.params.key = 'some value'\n    console.log app.params\n    # => {key: 'some value'}\n```\n\nScope callbacks.\n\n``` CoffeeScript\napp.beforeScope 'request', -> console.log 'before'\napp.afterScope 'request', -> console.log 'after'\n\nstartFiberSomehow ->\n  app.scope 'request', ->\n  # => before\n  # => after\n```\n\nRequire files in directory, provide `watch: true` option to watch for changes and reload.\n\n``` CoffeeScript\n# /app/controllers/SomeController.coffee\n# app.SomeController = 'some controller'\n\napp.requireDirectory '/absolutePath/app/controllers', watch: true\n\nconsole.log app.SomeController\n# => some controller\n```\n\nLimitations.\n\n- Fiber and custom scopes will not work in browser because browsers doesn't support fibers.\n- Use `app.get componentName` instead of `app.componentName` in old browsers not supporting\ngetters and setters syntax. Use `set` for setting components.\n\nCopyright (c) Alexey Petrushin, http://petrush.in, released under the MIT license.","maintainers":[{"name":"alexey.petrushin","email":"alexey.petrushin@gmail.com"}],"time":{"modified":"2022-06-19T18:40:24.179Z","created":"2013-03-15T17:29:46.326Z","1.0.0":"2013-03-15T17:29:50.339Z","1.1.0":"2013-03-16T18:52:02.182Z","1.2.0":"2013-03-17T20:33:44.283Z","1.2.1":"2013-04-13T19:48:35.637Z","1.2.2":"2013-07-07T17:34:44.547Z","1.2.3":"2013-09-05T12:52:28.714Z","1.2.4":"2013-09-06T00:53:27.574Z","1.2.5":"2013-10-21T22:43:12.343Z","1.2.6":"2014-01-23T09:39:42.228Z","1.2.7":"2014-02-06T18:17:41.977Z"},"author":{"name":"Alexey Petrushin","url":"http://petrush.in"},"readmeFilename":"readme.md","users":{"mpinteractiv":true}}