{"_id":"base-compose","_rev":"231167","name":"base-compose","description":"Selectively merge values from one or more generators onto the current application instance.","dist-tags":{"latest":"0.2.1"},"maintainers":[{"name":"doowb","email":"brian.woodward@gmail.com"},{"name":"jonschlinkert","email":"github@sellside.com"}],"time":{"modified":"2021-06-03T15:46:13.000Z","created":"2016-02-03T19:48:55.782Z","0.2.1":"2016-06-11T07:42:04.895Z","0.2.0":"2016-06-07T21:53:54.485Z","0.1.5":"2016-05-07T05:17:56.581Z","0.1.4":"2016-04-22T00:56:17.979Z","0.1.3":"2016-04-21T01:54:20.317Z","0.1.2":"2016-04-21T01:52:25.833Z","0.1.1":"2016-02-04T15:22:55.126Z","0.1.0":"2016-02-03T19:48:55.782Z"},"users":{},"author":{"name":"Brian Woodward","url":"https://github.com/doowb"},"repository":{"type":"git","url":"git+https://github.com/node-base/base-compose.git"},"versions":{"0.2.1":{"name":"base-compose","description":"Selectively merge values from one or more generators onto the current application instance.","version":"0.2.1","homepage":"https://github.com/node-base/base-compose","author":{"name":"Brian Woodward","url":"https://github.com/doowb"},"repository":{"type":"git","url":"git+https://github.com/node-base/base-compose.git"},"bugs":{"url":"https://github.com/node-base/base-compose/issues"},"license":"MIT","files":["index.js","lib"],"main":"index.js","engines":{"node":">=4.0"},"scripts":{"test":"mocha"},"dependencies":{"copy-task":"^0.1.0","lazy-cache":"^2.0.1","mixin-deep":"^1.1.3"},"devDependencies":{"assemble-core":"^0.21.0","base":"^0.11.0","base-generators":"^0.4.0","base-pipeline":"^0.3.1","base-questions":"^0.6.6","engine-base":"^0.1.2","engine-handlebars":"^0.8.0","gulp":"^3.9.1","gulp-eslint":"^2.0.0","gulp-format-md":"^0.1.9","gulp-istanbul":"^1.0.0","gulp-mocha":"^2.2.0","mocha":"^2.5.3"},"keywords":["base","compose"],"verb":{"plugins":["gulp-format-md"],"related":{"list":["assemble","base","generate","verb"]},"toc":false,"layout":"default","tasks":["readme"],"lint":{"reflinks":true},"reflinks":["base-generators","base-pipeline","base-questions","base-task","templates","verb","verb-readme-generator"]},"gitHead":"df2ce628f1695409fe80c1469084affdde5beca7","_id":"base-compose@0.2.1","_shasum":"ade49a97f5a2448bd56bcb340b4f7468c6fbe2d7","_from":".","_npmVersion":"3.8.9","_nodeVersion":"6.2.0","_npmUser":{"name":"jonschlinkert","email":"github@sellside.com"},"maintainers":[{"name":"doowb","email":"brian.woodward@gmail.com"},{"name":"jonschlinkert","email":"github@sellside.com"}],"dist":{"shasum":"ade49a97f5a2448bd56bcb340b4f7468c6fbe2d7","size":4282,"noattachment":false,"key":"/base-compose/-/base-compose-0.2.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/base-compose/download/base-compose-0.2.1.tgz"},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/base-compose-0.2.1.tgz_1465630922636_0.16000628657639027"},"directories":{},"publish_time":1465630924895,"_cnpm_publish_time":1465630924895,"_hasShrinkwrap":false},"0.2.0":{"name":"base-compose","description":"Selectively merge values from one or more generators onto the current application instance.","version":"0.2.0","homepage":"https://github.com/node-base/base-compose","author":{"name":"Brian Woodward","url":"https://github.com/doowb"},"repository":{"type":"git","url":"git+https://github.com/node-base/base-compose.git"},"bugs":{"url":"https://github.com/node-base/base-compose/issues"},"license":"MIT","files":["index.js","lib"],"main":"index.js","engines":{"node":">=4.0"},"scripts":{"test":"mocha"},"dependencies":{"copy-task":"^0.1.0","lazy-cache":"^2.0.1","mixin-deep":"^1.1.3"},"devDependencies":{"assemble-core":"^0.21.0","base":"^0.10.0","base-generators":"^0.3.1","base-pipeline":"^0.3.1","base-questions":"^0.6.6","engine-base":"^0.1.2","engine-handlebars":"^0.8.0","gulp":"^3.9.1","gulp-eslint":"^2.0.0","gulp-format-md":"^0.1.9","gulp-istanbul":"^0.10.4","gulp-mocha":"^2.2.0","mocha":"^2.5.3"},"keywords":["base","compose"],"verb":{"plugins":["gulp-format-md"],"related":{"list":["assemble","base","generate","verb"]},"toc":false,"layout":"default","tasks":["readme"],"lint":{"reflinks":true},"reflinks":["base-generators","base-pipeline","base-task","templates","verb","base-questions"]},"gitHead":"9660732d260c2633bc5f9871575691c640142d75","_id":"base-compose@0.2.0","_shasum":"c5be62ce5ac4e42711ef64dc345df63849812f35","_from":".","_npmVersion":"3.7.5","_nodeVersion":"5.1.1","_npmUser":{"name":"doowb","email":"brian.woodward@gmail.com"},"dist":{"shasum":"c5be62ce5ac4e42711ef64dc345df63849812f35","size":6003,"noattachment":false,"key":"/base-compose/-/base-compose-0.2.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/base-compose/download/base-compose-0.2.0.tgz"},"maintainers":[{"name":"doowb","email":"brian.woodward@gmail.com"},{"name":"jonschlinkert","email":"github@sellside.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/base-compose-0.2.0.tgz_1465336432562_0.8204625630751252"},"directories":{},"publish_time":1465336434485,"_cnpm_publish_time":1465336434485,"_hasShrinkwrap":false},"0.1.5":{"name":"base-compose","description":"Selectively merge values from one or more generators onto the current application instance.","version":"0.1.5","homepage":"https://github.com/node-base/base-compose","author":{"name":"Brian Woodward","url":"https://github.com/doowb"},"repository":{"type":"git","url":"git+https://github.com/node-base/base-compose.git"},"bugs":{"url":"https://github.com/node-base/base-compose/issues"},"license":"MIT","files":["index.js","lib"],"main":"index.js","engines":{"node":">=4.0"},"scripts":{"test":"mocha"},"dependencies":{"copy-task":"^0.1.0","lazy-cache":"^2.0.1","mixin-deep":"^1.1.3"},"devDependencies":{"assemble-core":"^0.17.1","base":"^0.8.1","base-generators":"^0.2.11","base-pipeline":"^0.2.5","base-questions":"^0.6.0","engine-base":"^0.1.2","engine-handlebars":"^0.8.0","gulp":"^3.9.1","gulp-eslint":"^2.0.0","gulp-format-md":"^0.1.9","gulp-istanbul":"^0.10.4","gulp-mocha":"^2.2.0","mocha":"^2.4.5"},"keywords":["base","compose"],"verb":{"plugins":["gulp-format-md"],"related":{"list":["assemble","base","generate","verb"]},"toc":false,"layout":"default","tasks":["readme"],"lint":{"reflinks":true},"reflinks":["base-generators","templates","verb","base-pipeline","base-task"]},"gitHead":"d2c7736b48be07d6cc8188e2be4ab39c0c79bde3","_id":"base-compose@0.1.5","_shasum":"6d473298a1cf4c42808e7e10cb1884a59a7b9f01","_from":".","_npmVersion":"3.6.0","_nodeVersion":"5.5.0","_npmUser":{"name":"jonschlinkert","email":"github@sellside.com"},"maintainers":[{"name":"doowb","email":"brian.woodward@gmail.com"},{"name":"jonschlinkert","email":"github@sellside.com"}],"dist":{"shasum":"6d473298a1cf4c42808e7e10cb1884a59a7b9f01","size":5830,"noattachment":false,"key":"/base-compose/-/base-compose-0.1.5.tgz","tarball":"http://registry.cnpm.dingdandao.com/base-compose/download/base-compose-0.1.5.tgz"},"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/base-compose-0.1.5.tgz_1462598275604_0.5039492123760283"},"directories":{},"publish_time":1462598276581,"_cnpm_publish_time":1462598276581,"_hasShrinkwrap":false},"0.1.4":{"name":"base-compose","description":"Selectively merge values from one or more generators onto the current application instance.","version":"0.1.4","homepage":"https://github.com/node-base/base-compose","author":{"name":"Brian Woodward","url":"https://github.com/doowb"},"repository":{"type":"git","url":"git+https://github.com/node-base/base-compose.git"},"bugs":{"url":"https://github.com/node-base/base-compose/issues"},"license":"MIT","files":["index.js","lib"],"main":"index.js","engines":{"node":">=4.0"},"scripts":{"test":"mocha"},"dependencies":{"copy-task":"^0.1.0","lazy-cache":"^1.0.3","mixin-deep":"^1.1.3"},"devDependencies":{"assemble-core":"^0.17.0","base":"^0.8.1","base-generators":"^0.2.2","base-pipeline":"^0.2.5","engine-base":"^0.1.2","engine-handlebars":"^0.8.0","gulp":"^3.9.1","gulp-eslint":"^2.0.0","gulp-format-md":"^0.1.8","gulp-istanbul":"^0.10.4","gulp-mocha":"^2.2.0","mocha":"^2.4.5"},"keywords":["base","compose"],"verb":{"plugins":["gulp-format-md"],"related":{"list":["assemble","base","generate","verb"]},"toc":false,"layout":"default","tasks":["readme"],"lint":{"reflinks":true},"reflinks":["base-generators","templates","verb","base-pipeline","base-task"]},"gitHead":"eb807360e1a21f7cbf974f0237ff6c7132991d13","_id":"base-compose@0.1.4","_shasum":"8f99ffd798bbc69d5a960fc00440c053c9857f10","_from":".","_npmVersion":"3.6.0","_nodeVersion":"5.5.0","_npmUser":{"name":"jonschlinkert","email":"github@sellside.com"},"maintainers":[{"name":"doowb","email":"brian.woodward@gmail.com"},{"name":"jonschlinkert","email":"github@sellside.com"}],"dist":{"shasum":"8f99ffd798bbc69d5a960fc00440c053c9857f10","size":5716,"noattachment":false,"key":"/base-compose/-/base-compose-0.1.4.tgz","tarball":"http://registry.cnpm.dingdandao.com/base-compose/download/base-compose-0.1.4.tgz"},"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/base-compose-0.1.4.tgz_1461286576355_0.6860441642347723"},"directories":{},"publish_time":1461286577979,"_cnpm_publish_time":1461286577979,"_hasShrinkwrap":false},"0.1.3":{"name":"base-compose","description":"Selectively merge values from one or more generators onto the current application instance.","version":"0.1.3","homepage":"https://github.com/node-base/base-compose","author":{"name":"Brian Woodward","url":"https://github.com/doowb"},"repository":{"type":"git","url":"git+https://github.com/node-base/base-compose.git"},"bugs":{"url":"https://github.com/node-base/base-compose/issues"},"license":"MIT","files":["index.js","lib"],"main":"index.js","engines":{"node":">=4.0"},"scripts":{"test":"mocha"},"dependencies":{"copy-task":"^0.1.0","lazy-cache":"^1.0.3","mixin-deep":"^1.1.3"},"devDependencies":{"assemble-core":"^0.17.0","base":"^0.8.1","base-generators":"^0.2.2","base-pipeline":"^0.2.5","engine-base":"^0.1.2","engine-handlebars":"^0.8.0","gulp":"^3.9.1","gulp-eslint":"^2.0.0","gulp-format-md":"^0.1.8","gulp-istanbul":"^0.10.4","gulp-mocha":"^2.2.0","mocha":"^2.4.5"},"keywords":["base","compose"],"verb":{"plugins":["gulp-format-md"],"related":{"list":["assemble","base","generate","verb"]},"toc":false,"layout":"default","tasks":["readme"],"lint":{"reflinks":true},"reflinks":["base-generators","templates","verb","base-pipeline","base-task"]},"gitHead":"9021ae2d6dd9aa2e5715262f5c5d44d63136d184","_id":"base-compose@0.1.3","_shasum":"eacf9c5d0fae0ae3e0ca0b2a23a1292b5d8c7882","_from":".","_npmVersion":"3.6.0","_nodeVersion":"5.5.0","_npmUser":{"name":"jonschlinkert","email":"github@sellside.com"},"maintainers":[{"name":"doowb","email":"brian.woodward@gmail.com"},{"name":"jonschlinkert","email":"github@sellside.com"}],"dist":{"shasum":"eacf9c5d0fae0ae3e0ca0b2a23a1292b5d8c7882","size":5698,"noattachment":false,"key":"/base-compose/-/base-compose-0.1.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/base-compose/download/base-compose-0.1.3.tgz"},"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/base-compose-0.1.3.tgz_1461203659048_0.870007868623361"},"directories":{},"publish_time":1461203660317,"_cnpm_publish_time":1461203660317,"_hasShrinkwrap":false},"0.1.2":{"name":"base-compose","description":"Selectively merge values from one or more generators onto the current application instance.","version":"0.1.2","homepage":"https://github.com/node-base/base-compose","author":{"name":"Brian Woodward","url":"https://github.com/doowb"},"repository":{"type":"git","url":"git+https://github.com/node-base/base-compose.git"},"bugs":{"url":"https://github.com/node-base/base-compose/issues"},"license":"MIT","files":["index.js","lib"],"main":"index.js","engines":{"node":">=4.0"},"scripts":{"test":"mocha"},"dependencies":{"copy-task":"^0.1.0","lazy-cache":"^1.0.3","mixin-deep":"^1.1.3"},"devDependencies":{"assemble-core":"^0.17.0","base":"^0.8.1","base-generators":"^0.2.2","base-pipeline":"^0.2.5","engine-base":"^0.1.2","engine-handlebars":"^0.8.0","gulp":"^3.9.1","gulp-eslint":"^2.0.0","gulp-format-md":"^0.1.8","gulp-istanbul":"^0.10.4","gulp-mocha":"^2.2.0","mocha":"^2.4.5"},"keywords":["base","compose"],"verb":{"plugins":["gulp-format-md"],"related":{"list":["assemble","base","generate","verb"]},"toc":false,"layout":"default","tasks":["readme"],"lint":{"reflinks":true},"reflinks":["base-generators","templates","verb"]},"gitHead":"7f47a21eb0208a70675722c27a64f2f24ea1b99e","_id":"base-compose@0.1.2","_shasum":"49ffdfc614570cdc729f7ba1491417e5e35f5f6b","_from":".","_npmVersion":"3.6.0","_nodeVersion":"5.5.0","_npmUser":{"name":"jonschlinkert","email":"github@sellside.com"},"maintainers":[{"name":"doowb","email":"brian.woodward@gmail.com"},{"name":"jonschlinkert","email":"github@sellside.com"}],"dist":{"shasum":"49ffdfc614570cdc729f7ba1491417e5e35f5f6b","size":5296,"noattachment":false,"key":"/base-compose/-/base-compose-0.1.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/base-compose/download/base-compose-0.1.2.tgz"},"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/base-compose-0.1.2.tgz_1461203544569_0.918794555356726"},"directories":{},"publish_time":1461203545833,"_cnpm_publish_time":1461203545833,"_hasShrinkwrap":false},"0.1.1":{"name":"base-compose","description":"Compose elements from multiple applications into one.","version":"0.1.1","homepage":"https://github.com/node-base/base-compose","author":{"name":"Brian Woodward","url":"https://github.com/doowb"},"repository":{"type":"git","url":"git+https://github.com/node-base/base-compose.git"},"bugs":{"url":"https://github.com/node-base/base-compose/issues"},"license":"MIT","files":["index.js","lib/"],"main":"index.js","engines":{"node":">=0.10.0"},"scripts":{"test":"mocha"},"dependencies":{"copy-task":"^0.1.0","lazy-cache":"^1.0.3","mixin-deep":"^1.1.3"},"devDependencies":{"assemble-core":"^0.11.1","base":"^0.6.7","base-generators":"^0.1.2","engine-base":"^0.1.2","engine-handlebars":"^0.8.0","gulp":"^3.9.0","gulp-eslint":"^1.1.1","gulp-format-md":"^0.1.5","gulp-istanbul":"^0.10.3","gulp-mocha":"^2.2.0","mocha":"*","should":"*"},"keywords":[],"verb":{"related":{"list":["assemble-core","assemble","base","base-generators","base-option","base-task","generate","templates","update","verb"]},"plugins":["gulp-format-md"]},"gitHead":"282da0e536692a8c92f71f7d1feb075ba4788667","_id":"base-compose@0.1.1","_shasum":"f369503e933b5823121ce64f3b1c01580a18c759","_from":".","_npmVersion":"3.5.2","_nodeVersion":"5.1.1","_npmUser":{"name":"doowb","email":"brian.woodward@gmail.com"},"dist":{"shasum":"f369503e933b5823121ce64f3b1c01580a18c759","size":5801,"noattachment":false,"key":"/base-compose/-/base-compose-0.1.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/base-compose/download/base-compose-0.1.1.tgz"},"maintainers":[{"name":"doowb","email":"brian.woodward@gmail.com"},{"name":"jonschlinkert","email":"github@sellside.com"}],"_npmOperationalInternal":{"host":"packages-5-east.internal.npmjs.com","tmp":"tmp/base-compose-0.1.1.tgz_1454599373788_0.2260225045029074"},"directories":{},"publish_time":1454599375126,"_cnpm_publish_time":1454599375126,"_hasShrinkwrap":false},"0.1.0":{"name":"base-compose","description":"Compose elements from multiple applications into one.","version":"0.1.0","homepage":"https://github.com/node-base/base-compose","author":{"name":"Brian Woodward","url":"https://github.com/doowb"},"repository":{"type":"git","url":"git+https://github.com/node-base/base-compose.git"},"bugs":{"url":"https://github.com/node-base/base-compose/issues"},"license":"MIT","files":["index.js","lib/"],"main":"index.js","engines":{"node":">=0.10.0"},"scripts":{"test":"mocha"},"dependencies":{"copy-task":"^0.1.0","lazy-cache":"^1.0.3","mixin-deep":"^1.1.3"},"devDependencies":{"assemble-core":"^0.11.1","base":"^0.6.7","base-generators":"^0.1.2","engine-base":"^0.1.2","engine-handlebars":"^0.8.0","gulp":"^3.9.0","gulp-eslint":"^1.1.1","gulp-format-md":"^0.1.5","gulp-istanbul":"^0.10.3","gulp-mocha":"^2.2.0","mocha":"*","should":"*"},"keywords":[],"verb":{"related":{"list":["assemble-core","assemble","base","base-generators","base-option","base-task","generate","templates","update","verb"]},"plugins":["gulp-format-md"]},"gitHead":"715422f0d7e256bc28072e1565f4ad4dac2f7cf5","_id":"base-compose@0.1.0","_shasum":"da992f842fa1094fb02e0ca9a97375f242b73ea7","_from":".","_npmVersion":"3.5.2","_nodeVersion":"5.1.1","_npmUser":{"name":"doowb","email":"brian.woodward@gmail.com"},"dist":{"shasum":"da992f842fa1094fb02e0ca9a97375f242b73ea7","size":5518,"noattachment":false,"key":"/base-compose/-/base-compose-0.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/base-compose/download/base-compose-0.1.0.tgz"},"maintainers":[{"name":"doowb","email":"brian.woodward@gmail.com"},{"name":"jonschlinkert","email":"github@sellside.com"}],"_npmOperationalInternal":{"host":"packages-9-west.internal.npmjs.com","tmp":"tmp/base-compose-0.1.0.tgz_1454528932840_0.8281747540459037"},"directories":{},"publish_time":1454528935782,"_cnpm_publish_time":1454528935782,"_hasShrinkwrap":false}},"readme":"# base-compose [![NPM version](https://img.shields.io/npm/v/base-compose.svg?style=flat)](https://www.npmjs.com/package/base-compose) [![NPM downloads](https://img.shields.io/npm/dm/base-compose.svg?style=flat)](https://npmjs.org/package/base-compose) [![Build Status](https://img.shields.io/travis/node-base/base-compose.svg?style=flat)](https://travis-ci.org/node-base/base-compose)\n\nSelectively merge values from one or more generators onto the current application instance.\n\n## Install\n\nInstall with [npm](https://www.npmjs.com/):\n\n```sh\n$ npm install --save base-compose\n```\n\nThis plugin requires the [base-generators](https://github.com/node-base/base-generators) to be registered first. If not already registered, you can do so now by following [these instructions](#base-generators).\n\n## Usage\n\n```js\nvar compose = require('base-compose');\nvar Base = require('base');\nvar app = new Base();\n\n// register the \"compose\" plugin\napp.use(compose());\n```\n\n## API\n\n**Heads up!**\n\nSome of the methods exposed on [.compose](#methods) expect for `app` to be an instance of [templates](https://github.com/jonschlinkert/templates), or for specific plugins to be registered first.\n\nYou don't need to register all of the plugins prescribed below, just use the plugins you need with the methods you need. `base-compose` will give you detailed error messages when something is missing.\n\nMore information is provided in the [methods documentation](#methods) below.\n\n### [.compose](index.js#L39)\n\nSetup a composition by passing in an array of generators to compose elements. If a generator cannot be found, an error will be thrown.\n\n**Params**\n\n* `parent` **{Object}**: Parent generator to lookup generators.\n* `names` **{String|Array}**: One or more generator names or instances.\n* `returns` **{Object}**: Returns an instance of `Compose`\n\n**Example**\n\n```js\napp.compose(base, ['a', 'b', 'c'])\n  .data()\n  .options()\n  .helpers()\n  .views();\n```\n\n### [.compose.options](lib/compose.js#L44)\n\nMerge the options from each generator into the `app` options. This method requires using the [base-option][base-option] plugin.\n\n**Params**\n\n* `key` **{String}**: Optionally pass the name of a property to merge from the `options` object. Dot-notation may be used for nested properties.\n* `returns` **{Object}**: Returns the `Compose` instance for chaining\n\n**Example**\n\n```js\na.option({foo: 'a'});\nb.option({foo: 'b'});\nc.option({foo: 'c'});\n\napp.compose(base, ['a', 'b', 'c'])\n  .options();\n\nconsole.log(app.options);\n//=> {foo: 'c'}\n```\n\n### [.compose.data](lib/compose.js#L76)\n\nMerge the `cache.data` object from each generator onto the `app.cache.data` object. This method requires the `.data()` method from [templates](https://github.com/jonschlinkert/templates).\n\n**Params**\n\n* `key` **{String}**: Optionally pass a key to merge from the `data` object.\n* `returns` **{Object}**: Returns the `Compose` instance for chaining\n\n**Example**\n\n```js\na.data({foo: 'a'});\nb.data({foo: 'b'});\nc.data({foo: 'c'});\n\napp.compose(base, ['a', 'b', 'c'])\n  .data();\n\nconsole.log(app.cache.data);\n//=> {foo: 'c'}\n```\n\n### [.compose.engines](lib/compose.js#L105)\n\nMerge the engines from each generator into the `app` engines. This method requires the `.engine()` methods from [templates](https://github.com/jonschlinkert/templates).\n\n* `returns` **{Object}**: Returns the `Compose` instance for chaining\n\n**Example**\n\n```js\napp.compose(base, ['a', 'b', 'c'])\n  .engines();\n```\n\n### [.compose.helpers](lib/compose.js#L130)\n\nMerge the helpers from each generator into `app.helpers`. Requires the `.helper` method from [templates](https://github.com/jonschlinkert/templates).\n\n* `returns` **{Object}**: Returns the `Compose` instance for chaining\n\n**Example**\n\n```js\napp.compose(base, ['a', 'b', 'c'])\n  .helpers();\n```\n\n### [.compose.questions](lib/compose.js#L156)\n\nMerge `generator.questions.cache` from specified generators onto `app.questions.cache`. Requires the [base-questions](https://github.com/node-base/base-questions) plugin to be registered.\n\n* `returns` **{Object}**: Returns the `Compose` instance for chaining\n\n**Example**\n\n```js\napp.compose(base, ['a', 'b', 'c'])\n  .questions();\n```\n\n### [.compose.pipeline](lib/compose.js#L185)\n\nMerge the pipeline plugins from each generator onto `app.plugins`. Requires the [base-pipeline](https://github.com/node-base/base-pipeline) plugin to be registered.\n\n* `returns` **{Object}**: Returns the `Compose` instance for chaining\n\n**Example**\n\n```js\napp.compose(base, ['a', 'b', 'c'])\n  .pipeline();\n```\n\n### [.compose.tasks](lib/compose.js#L217)\n\nCopy the specified tasks and task-dependencies from each generator onto `app.tasks`. Requires using the [base-task](https://github.com/node-base/base-task) plugin to be registered.\n\n**Params**\n\n* `tasks` **{String|Array}**: One or more task names (optional)\n* `returns` **{Object}**: Returns the `Compose` instance for chaining\n\n**Example**\n\n```js\napp.compose(base, ['a', 'b', 'c'])\n  .tasks(['foo', 'bar', 'default']);\n\n// or to copy all tasks\napp.compose(base, ['a', 'b', 'c'])\n  .tasks();\n```\n\n### [.compose.views](lib/compose.js#L246)\n\nCopy view collections and views from each generator onto `app`. Expects `app` to be an instance of [templates](https://github.com/jonschlinkert/templates).\n\n**Params**\n\n* `names` **{Array|String}**: (optional) Names of one or more collections to copy. If undefined all collections will be copied.\n* `filter` **{Function}**: Optionally pass a filter function to filter views copied from each collection. The filter function exposes `key`, `view` and `collection` as arguments. If used, the function must return `true` to copy a view.\n* `returns` **{Object}**: Returns the `Compose` instance for chaining\n\n**Example**\n\n```js\napp.compose(base, ['a', 'b', 'c'])\n  .views();\n```\n\n### [.compose.iterator](lib/compose.js#L325)\n\nReturns an iterator function for iterating over an array of generators. The iterator takes a `fn` that exposes the current generator being iterated over (`generator`) and the app passed into the original function as arguments. No binding is done within the iterator so the function passed in can be safely bound.\n\n**Params**\n\n* `names` **{Array}**: Names of generators to iterate over (optional).\n* `iteratorFn` **{Function}**: Function to invoke for each generator in `generators`. Exposes `app` and `generator` as arguments.\n* `returns` **{Object}**: Returns the `Compose` instance for chaining\n\n**Example**\n\n```js\napp.compose(base, ['a', 'b', 'c'])\n  .iterator(function(generator, app) {\n    // do work\n    app.data(generator.cache.data);\n  });\n\n// optionally pass an array of additional generator names as the\n// first argument. If generator names are defined on `iterator`,\n// any names passed to `.compose()` will be ignored.\napp.compose(base, ['a', 'b', 'c'])\n  .iterator(['d', 'e', 'f'], function(generator, app) {\n    // do stuff to `generator` and `app`\n  });\n```\n\n## base-generators\n\nFollow these instructions to install and register the [base-generators](https://github.com/node-base/base-generators) plugin before registering `base-compose`.\n\n**Install base-generators**\n\n```sh\n$ npm install base-generators --save\n```\n\n**Register base-generators**\n\n```js\nvar generators = require('base-generators');\nvar compose = require('base-compose');\nvar Base = require('base');\nvar app = new Base();\n\n// register plugins\napp.use(generators());\napp.use(compose());\n```\n\n## Related projects\n\nYou might also be interested in these projects:\n\n* [assemble](https://www.npmjs.com/package/assemble): Assemble is a powerful, extendable and easy to use static site generator for node.js. Used… [more](https://github.com/assemble/assemble) | [homepage](https://github.com/assemble/assemble \"Assemble is a powerful, extendable and easy to use static site generator for node.js. Used by thousands of projects for much more than building websites, Assemble is also used for creating themes, scaffolds, boilerplates, e-books, UI components, API docum\")\n* [base](https://www.npmjs.com/package/base): base is the foundation for creating modular, unit testable and highly pluggable node.js applications, starting… [more](https://github.com/node-base/base) | [homepage](https://github.com/node-base/base \"base is the foundation for creating modular, unit testable and highly pluggable node.js applications, starting with a handful of common methods, like `set`, `get`, `del` and `use`.\")\n* [generate](https://www.npmjs.com/package/generate): Fast, composable, highly pluggable project generator with a user-friendly and expressive API. | [homepage](https://github.com/generate/generate \"Fast, composable, highly pluggable project generator with a user-friendly and expressive API.\")\n* [verb](https://www.npmjs.com/package/verb): Documentation generator for GitHub projects. Verb is extremely powerful, easy to use, and is used… [more](https://github.com/verbose/verb) | [homepage](https://github.com/verbose/verb \"Documentation generator for GitHub projects. Verb is extremely powerful, easy to use, and is used on hundreds of projects of all sizes to generate everything from API docs to readmes.\")\n\n## Contributing\n\nThis document was generated by [verb-readme-generator](https://github.com/verbose/verb-readme-generator) (a [verb](https://github.com/verbose/verb) generator), please don't edit directly. Any changes to the readme must be made in [.verb.md](.verb.md). See [Building Docs](#building-docs).\n\nPull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new). Or visit the [verb-readme-generator](https://github.com/verbose/verb-readme-generator) project to submit bug reports or pull requests for the readme layout template.\n\n## Building docs\n\nGenerate readme and API documentation with [verb](https://github.com/verbose/verb):\n\n```sh\n$ npm install -g verb verb-readme-generator && verb\n```\n\n## Running tests\n\nInstall dev dependencies:\n\n```sh\n$ npm install -d && npm test\n```\n\n## Author\n\n**Brian Woodward**\n\n* [github/doowb](https://github.com/doowb)\n* [twitter/doowb](http://twitter.com/doowb)\n\n## License\n\nCopyright © 2016, [Brian Woodward](https://github.com/doowb).\nReleased under the [MIT license](https://github.com/node-base/base-compose/blob/master/LICENSE).\n\n***\n\n_This file was generated by [verb](https://github.com/verbose/verb), v0.9.0, on June 11, 2016._","_attachments":{},"homepage":"https://github.com/node-base/base-compose","bugs":{"url":"https://github.com/node-base/base-compose/issues"},"license":"MIT"}