{"_id":"treadmill","_rev":"26-4c872e74652aa2b43fc238f6ba0a5516","name":"treadmill","description":"A build tool for Node.js programs.","dist-tags":{"latest":"2.2.0"},"versions":{"0.1.0":{"name":"treadmill","version":"0.1.0","description":"Treadmill is a cross platform JavaScript testing framework.","_npmUser":{"name":"kixxauth","email":"kris@kixx.name"},"_id":"treadmill@0.1.0","dependencies":{},"devDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.0-beta-10","_nodeVersion":"v0.6.7","_defaultsLoaded":true,"dist":{"shasum":"1c1ee1fbf72c4cd2ed61fdf39cd85fe16a2d1b2b","tarball":"https://registry.npmjs.org/treadmill/-/treadmill-0.1.0.tgz","integrity":"sha512-5pVzeC+uWyUWPpSweIypdgnpVSJn7+vO3cyKZETVBDVXfpAbqfuFn9qRNtFBOeIVfdDcliZKPjaig06gJDXMKQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIH/hMhEll4diIDMSGxnsaYmq3tHt5nyF5tJsYXUvpyBEAiAMkE8XMF5BwMvId97a6h0GlTfoXjOQO52yy+iKmaLpNg=="}]},"maintainers":[{"name":"kixxauth","email":"kris@kixx.name"}]},"0.3.0":{"name":"treadmill","version":"0.3.0","description":"Keep your code in shape on the Treadmill","_npmUser":{"name":"kixxauth","email":"kris@kixx.name"},"_id":"treadmill@0.3.0","dependencies":{},"devDependencies":{},"optionalDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.1","_nodeVersion":"v0.6.11","_defaultsLoaded":true,"dist":{"shasum":"68370c5f9b99a54b856856ba28a193899c64d668","tarball":"https://registry.npmjs.org/treadmill/-/treadmill-0.3.0.tgz","integrity":"sha512-9khCfSpMzBBpv0TULsqDqu76XAFRaIKQ1AM08l28b8lo1zsyTNGL5JYOwXhxd+d4ejaiCb2dnyRVzh8z4QrlrA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB24UlDhTXMb+YmwHTNC78Dphg+HTA6pZTZbX/M/KsH5AiA4++LgG+VdosPKNDM/+CDTHdcSlhsjhZigyroAokAqBw=="}]},"maintainers":[{"name":"kixxauth","email":"kris@kixx.name"}]},"0.4.0":{"name":"treadmill","version":"0.4.0","description":"Keep your code in shape on the Treadmill","_npmUser":{"name":"kixxauth","email":"kris@kixx.name"},"_id":"treadmill@0.4.0","dependencies":{},"devDependencies":{},"optionalDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.1","_nodeVersion":"v0.6.11","_defaultsLoaded":true,"dist":{"shasum":"983ef39ee7ddbc2e564aaaa81913badf7a25ae59","tarball":"https://registry.npmjs.org/treadmill/-/treadmill-0.4.0.tgz","integrity":"sha512-EWQE0fsitt69lrCN7hY/s6T+KiFpn+Y7fa8yr1uyZKXkGR+nLUvgZldhspTu1ULZ3+hH8W/ckP5ZVmCenH0OIw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF+7dHe6DzagLlJFYjb0WwEbgRUxKWEsDKtulEXl4v7UAiAfmmSm44fc/RaEX859uBDjMv4mQCk+dLBO8m9BhNRXwA=="}]},"maintainers":[{"name":"kixxauth","email":"kris@kixx.name"}]},"0.6.0":{"name":"treadmill","version":"0.6.0","description":"Keep your code in shape on the Treadmill","_npmUser":{"name":"kixxauth","email":"kris@kixx.name"},"_id":"treadmill@0.6.0","dependencies":{},"devDependencies":{},"optionalDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.1","_nodeVersion":"v0.6.11","_defaultsLoaded":true,"dist":{"shasum":"96cd891584fec8eecf76fbdb9984f27a4458efff","tarball":"https://registry.npmjs.org/treadmill/-/treadmill-0.6.0.tgz","integrity":"sha512-4YZK2qvPhSxztFFghoh42oeqhH65SVx1f0pT/hTw/364lx5H71nsVtsYmiLlpkATfltEHexZs07uNYt0/4gQhg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDE9lfqTal24n4mUzJjiQ1YM4t/MoirpQ47DfbkFnqQUwIhAKP8dpe7PjK732e+s/x9u+kJpBjk69BAi1DNlo3OURJx"}]},"maintainers":[{"name":"kixxauth","email":"kris@kixx.name"}]},"0.7.0":{"name":"treadmill","version":"0.7.0","description":"Keep your code in shape on the Treadmill","_npmUser":{"name":"kixxauth","email":"kris@kixx.name"},"_id":"treadmill@0.7.0","dependencies":{},"devDependencies":{},"optionalDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.1","_nodeVersion":"v0.6.11","_defaultsLoaded":true,"dist":{"shasum":"72d877a7b9c686070e6315253b08e55af9a9df8e","tarball":"https://registry.npmjs.org/treadmill/-/treadmill-0.7.0.tgz","integrity":"sha512-o9WixXblL4RQtdVWA1Q7Ibb9H84NneiaiofK6oJaIw8sPAiSF9+Yp9wZICIP0Pc7L4uH1uPqoPNA2mN72KRLmQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCjtNMC0keqB+0Vix6d/C0031BQwICvE0n6jPMi/Sm/swIgRXT0KRXN4HHGAUnaZuW4p50yOSY11bDy4K4OIbJmz/Q="}]},"maintainers":[{"name":"kixxauth","email":"kris@kixx.name"}]},"1.0.0":{"name":"treadmill","version":"1.0.0","description":"Keep your JavaScript and CoffeeScript in shape on the Treadmill","keywords":["testing tests test coffeescript treadmill"],"bugs":{"email":"kris@kixx.name","url":"https://github.com/kixxauth/treadmill/issues"},"author":{"name":"Kris Walker","email":"kris@kixx.name","url":"http://www.kixx.name"},"repository":{"type":"git","url":"git://github.com/kixxauth/treadmill.git"},"_npmUser":{"name":"kixxauth","email":"kris@kixx.name"},"_id":"treadmill@1.0.0","dependencies":{},"devDependencies":{},"optionalDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.1","_nodeVersion":"v0.6.11","_defaultsLoaded":true,"dist":{"shasum":"9cf84d715d2523968e1aafffd2f674df86bfa7c9","tarball":"https://registry.npmjs.org/treadmill/-/treadmill-1.0.0.tgz","integrity":"sha512-7XWzWF/shXAJ0JdAZ+qy7Z/cMOwPLKZyuFe2GvlaSb/oWKyQ6wjQVpZbiEClgiJUSbhSAYuWNTR0houUU6ervg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDfNwQMXi5WLG6HJKIhpOXhmmLtnPTMLQlspfLhUp7H8QIgNRO57aMibRhRmtEZM9X/EDgPKhb//tdO2ZeFeC0J6XM="}]},"maintainers":[{"name":"kixxauth","email":"kris@kixx.name"}]},"1.0.1":{"name":"treadmill","version":"1.0.1","description":"Keep your JavaScript and CoffeeScript in shape on the Treadmill","keywords":["testing tests test coffeescript treadmill"],"bugs":{"email":"kris@kixx.name","url":"https://github.com/kixxauth/treadmill/issues"},"author":{"name":"Kris Walker","email":"kris@kixx.name","url":"http://www.kixx.name"},"repository":{"type":"git","url":"git://github.com/kixxauth/treadmill.git"},"_npmUser":{"name":"kixxauth","email":"kris@kixx.name"},"_id":"treadmill@1.0.1","dependencies":{},"devDependencies":{},"optionalDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.1","_nodeVersion":"v0.6.11","_defaultsLoaded":true,"dist":{"shasum":"2e20190fe3a3936a5b0fa79574f57a5046aaab37","tarball":"https://registry.npmjs.org/treadmill/-/treadmill-1.0.1.tgz","integrity":"sha512-r4DaULBMvkpkXnvpfLyJgaiqNLzQzOnzU7qn5hVtrXF7OkZplCmuwIoIiv6ct6I8H/CDV3u2sRSdqCs595eFpw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDtRLoZYopXPlnfXVPzT6jA5eZWXORKvsLnULzOTGp0ogIhAPj1UZvH8VBUOSNesugPzZxX/50wCSg9R6kQzoUwvUym"}]},"maintainers":[{"name":"kixxauth","email":"kris@kixx.name"}]},"2.0.1":{"name":"treadmill","version":"2.0.1","description":"Automated testing for JavaScript and CoffeeScript","keywords":["testing tests test coffeescript treadmill"],"bugs":{"email":"kris@kixx.name","url":"https://github.com/kixxauth/treadmill/issues"},"author":{"name":"Kris Walker","email":"kris@kixx.name","url":"http://www.kixx.name"},"repository":{"type":"git","url":"git://github.com/kixxauth/treadmill.git"},"_npmUser":{"name":"kixxauth","email":"kris@kixx.name"},"_id":"treadmill@2.0.1","dependencies":{},"devDependencies":{},"optionalDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.1","_nodeVersion":"v0.6.11","_defaultsLoaded":true,"dist":{"shasum":"373d7859c083ec7ea7acea7e8d3ff8fd2d28e0d1","tarball":"https://registry.npmjs.org/treadmill/-/treadmill-2.0.1.tgz","integrity":"sha512-eLKyRIqseUB6NoGLTQErHUL+UlS3uGG9fQnEYVpIGUmRsFaOVP7bUMvPj9xzNRkyHS5ZrjZYtWFmG0Bmj/9OVg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDo2/Jsxf2i2WdXgyru3Ygmd85JSQdl98eG9adbqqP0VQIhAKSBKLIXQkxxnjyfA6k+d+6xUPBkwPEx49iJUkLbGU7o"}]},"maintainers":[{"name":"kixxauth","email":"kris@kixx.name"}]},"2.0.2":{"name":"treadmill","version":"2.0.2","description":"Automated testing for JavaScript and CoffeeScript","keywords":["testing tests test coffeescript treadmill"],"bugs":{"email":"kris@kixx.name","url":"https://github.com/kixxauth/treadmill/issues"},"author":{"name":"Kris Walker","email":"kris@kixx.name","url":"http://www.kixx.name"},"repository":{"type":"git","url":"git://github.com/kixxauth/treadmill.git"},"_npmUser":{"name":"kixxauth","email":"kris@kixx.name"},"_id":"treadmill@2.0.2","dependencies":{},"devDependencies":{},"optionalDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.21","_nodeVersion":"v0.6.18","_defaultsLoaded":true,"dist":{"shasum":"a7ce420cd4ce4008d7cb98fa2a61c6a259a9cc0b","tarball":"https://registry.npmjs.org/treadmill/-/treadmill-2.0.2.tgz","integrity":"sha512-aF7n863ChKkZpNscjOLO1+KDMvAzyPIJbGxcntnv2PHTTmExs0lNRQ3jJv0Oj1QV7Hi+RhOIXv8PnGbd0BAkrg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDoMm9lDZTPb9uxlhaeNbks6i3ozeheBxMnR/lyqIuvZQIgc0Jxs+X6AtCjOLTrPRD5Ec9RPv0xl7EcpC4L1O/UDNg="}]},"maintainers":[{"name":"kixxauth","email":"kris@kixx.name"}]},"2.0.0":{"name":"treadmill","version":"2.0.0","description":"A build tool for Node.js programs.","bin":{"treadmill":"./bin/treadmill.js"},"main":"./lib/treadmill.js","scripts":{"test":"xo"},"dependencies":{"filepath":"~1.1.0","immutable":"~3.7.0","yargs":"~4.2.0"},"devDependencies":{"xo":"~0.13.0"},"repository":{"typ":"git","url":"git://github.com/kixxauth/treadmill.git"},"bugs":{"url":"https://github.com/kixxauth/treadmill/issues"},"author":{"name":"Kris Walker","email":"kris@kixx.name","url":"http://www.kixx.name/"},"license":"MIT","gitHead":"6da45a303c4069562a85577d78345a669bd896fb","homepage":"https://github.com/kixxauth/treadmill#readme","_id":"treadmill@2.0.0","_shasum":"8f8b7b9c1f6f758242d73964ba01faeb570c296b","_from":".","_npmVersion":"2.14.12","_nodeVersion":"4.3.1","_npmUser":{"name":"kixxauth","email":"kris@kixx.name"},"dist":{"shasum":"8f8b7b9c1f6f758242d73964ba01faeb570c296b","tarball":"https://registry.npmjs.org/treadmill/-/treadmill-2.0.0.tgz","integrity":"sha512-hKn+ZGbDUY+JP6PLy1mO5T/zu8jIEdLkjdLyEZqXqI5ju7wdFSUlrh/R/2XymXFXP0caegCKsHP41E53yMhjaQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCn6rKjlGh4Hj/csEWpGoCz1zxKFjrhxh93AdzvaH24PgIhAPlOJkfueNQqKkYGr0zSH2qjC+JgnzA5egYxWaxUhKkS"}]},"maintainers":[{"name":"kixxauth","email":"kris@kixx.name"}],"_npmOperationalInternal":{"host":"packages-13-west.internal.npmjs.com","tmp":"tmp/treadmill-2.0.0.tgz_1457344170151_0.05041774921119213"}},"2.1.0":{"name":"treadmill","version":"2.1.0","description":"A build tool for Node.js programs.","bin":{"treadmill":"./bin/treadmill.js"},"main":"./lib/treadmill.js","scripts":{"test":"xo"},"dependencies":{"filepath":"~1.1.0","immutable":"~3.7.0","yargs":"~4.2.0"},"devDependencies":{"xo":"~0.13.0"},"repository":{"typ":"git","url":"git://github.com/kixxauth/treadmill.git"},"bugs":{"url":"https://github.com/kixxauth/treadmill/issues"},"author":{"name":"Kris Walker","email":"kris@kixx.name","url":"http://www.kixx.name/"},"license":"MIT","gitHead":"90178cac60fb70749a8a12354cd451fc19156770","homepage":"https://github.com/kixxauth/treadmill#readme","_id":"treadmill@2.1.0","_shasum":"fe596d686707a0055beffc396bb0207932b237ac","_from":".","_npmVersion":"2.15.9","_nodeVersion":"4.5.0","_npmUser":{"name":"kixxauth","email":"kris@kixx.name"},"dist":{"shasum":"fe596d686707a0055beffc396bb0207932b237ac","tarball":"https://registry.npmjs.org/treadmill/-/treadmill-2.1.0.tgz","integrity":"sha512-Ke/12O8msxqMvG8TV5mAyxJBJC5sVEagNhHvDp+65mtnasyqZkU1BaeR7IT0xdbs+aETkFFPi2cccrSuYulmOg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCVKCgo6bNN6TR0iI6qZdpgv8FwYqItOlLzHS6AwrXlVAIhALdgBIjTn13cNp4efUi+zQI/gvsYOR4HVXGiLbqybgWd"}]},"maintainers":[{"name":"kixxauth","email":"kris@kixx.name"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/treadmill-2.1.0.tgz_1479462838759_0.8573165407869965"}},"2.1.1":{"name":"treadmill","version":"2.1.1","description":"A build tool for Node.js programs.","bin":{"treadmill":"./bin/treadmill.js"},"main":"./lib/treadmill.js","scripts":{"test":"xo"},"dependencies":{"filepath":"~1.1.0","immutable":"~3.7.0","yargs":"~4.2.0"},"devDependencies":{"xo":"~0.13.0"},"repository":{"typ":"git","url":"git://github.com/kixxauth/treadmill.git"},"bugs":{"url":"https://github.com/kixxauth/treadmill/issues"},"author":{"name":"Kris Walker","email":"kris@kixx.name","url":"http://www.kixx.name/"},"license":"MIT","gitHead":"d6512f724fc90859a39906122f63bc0debe84140","homepage":"https://github.com/kixxauth/treadmill#readme","_id":"treadmill@2.1.1","_shasum":"39a70459e6514c82477191af987aac47dcabdb42","_from":".","_npmVersion":"2.15.9","_nodeVersion":"4.5.0","_npmUser":{"name":"kixxauth","email":"kris@kixx.name"},"dist":{"shasum":"39a70459e6514c82477191af987aac47dcabdb42","tarball":"https://registry.npmjs.org/treadmill/-/treadmill-2.1.1.tgz","integrity":"sha512-P+NUbksYjghTjUeweK0aEEJEnHHN23+UAa+8xcF4+UBUIwHdlNvHdRRY/NYOzRtcnrZGPZritGJ8DYy6rD1FAA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHx7Z386+yMut9yauXO8d7p8IIoT0FxUjS5qJa2Y7hU6AiBl5p1wqAxG1gz56WfKFU/TeqkCLs31EMbLH/4s9MXa3A=="}]},"maintainers":[{"name":"kixxauth","email":"kris@kixx.name"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/treadmill-2.1.1.tgz_1479464513986_0.2333978007081896"}},"2.1.2":{"name":"treadmill","version":"2.1.2","description":"A build tool for Node.js programs.","bin":{"treadmill":"./bin/treadmill.js"},"main":"./lib/treadmill.js","scripts":{"test":"xo"},"dependencies":{"filepath":"~1.1.0","immutable":"~3.7.0","yargs":"~4.2.0"},"devDependencies":{"xo":"~0.13.0"},"repository":{"typ":"git","url":"git://github.com/kixxauth/treadmill.git"},"bugs":{"url":"https://github.com/kixxauth/treadmill/issues"},"author":{"name":"Kris Walker","email":"kris@kixx.name","url":"http://www.kixx.name/"},"license":"MIT","gitHead":"d746108b2cb1c56601d05d397ce2f3f69d86178c","homepage":"https://github.com/kixxauth/treadmill#readme","_id":"treadmill@2.1.2","_shasum":"dab1cda8aa3f513544ccc5a4dfce186fa704e2cd","_from":".","_npmVersion":"2.15.9","_nodeVersion":"4.5.0","_npmUser":{"name":"kixxauth","email":"kris@kixx.name"},"dist":{"shasum":"dab1cda8aa3f513544ccc5a4dfce186fa704e2cd","tarball":"https://registry.npmjs.org/treadmill/-/treadmill-2.1.2.tgz","integrity":"sha512-N+xWDHtaNAKdn9VKT5K7a+jbN5kj6TDC6PQRDnUrhiKpnTxWaPLo+nj/O8ModwdbCuzBqLswclwI5HNXaKgXQg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGG9Dc5RtVlxJXv8Pe5yOIOpKu8nUJT1/itzK32GwxhnAiEA//BUnEsNv963MLFKZHIhBXA2Cg5LBppMzbNsZSDALhg="}]},"maintainers":[{"name":"kixxauth","email":"kris@kixx.name"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/treadmill-2.1.2.tgz_1479464714860_0.05426555406302214"}},"2.2.0":{"name":"treadmill","version":"2.2.0","description":"A build tool for Node.js programs.","bin":{"treadmill":"./bin/treadmill.js"},"main":"./lib/treadmill.js","scripts":{"test":"xo"},"dependencies":{"filepath":"~1.1.0","immutable":"~3.8.0","yargs":"~7.0.0"},"devDependencies":{"xo":"~0.16.0"},"repository":{"typ":"git","url":"git://github.com/kixxauth/treadmill.git"},"bugs":{"url":"https://github.com/kixxauth/treadmill/issues"},"author":{"name":"Kris Walker","email":"kris@kixx.name","url":"http://www.kixx.name/"},"license":"MIT","xo":{"envs":["node"],"ignores":["examples/**"]},"gitHead":"20d0776e5df8ce4e5abd4c5a34e3bd894cfbaff1","homepage":"https://github.com/kixxauth/treadmill#readme","_id":"treadmill@2.2.0","_shasum":"2d4c34cc7ebec29962805a070061a4eefff69cc4","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.9.5","_npmUser":{"name":"kixxauth","email":"kris@kixx.name"},"dist":{"shasum":"2d4c34cc7ebec29962805a070061a4eefff69cc4","tarball":"https://registry.npmjs.org/treadmill/-/treadmill-2.2.0.tgz","integrity":"sha512-trSeXQN2Je7ZhGg5cHlKbrNBJLQIlWC1i45c2dism5KgZ45lmNLXg+YG7CjDUYC6/fowzNYxx9VOzopgHCrDcw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDazzbQwo3qirILp8YXtHphHB3fqw/Vmo9sT9IwepDLaAiEAy2RvAPMH29WFQrTtKeRVE2in4qLiVB33Bgbf6VSTqao="}]},"maintainers":[{"name":"kixxauth","email":"kris@kixx.name"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/treadmill-2.2.0.tgz_1490609827281_0.4203208137769252"}}},"readme":"Treadmill\n=========\nA build tool for Node.js programs.\n\n### Installation\nInstall globally with\n\n    npm install -g treadmill\n\nOr add to your local dependencies in `package.json` with\n\n    npm install --save treadmill\n\n### Example\nSay you have a project folder that looks something like this:\n\n```\n├── frontend\n│   └── scripts\n│   |   ├── main.js\n│   |   └── store.js\n|   └── styles\n│       ├── main.scss\n│       └── buttons.scss\n├── public\n│   └── assets\n└── server\n    └── server.js\n```\n\nYou could write an asset build file for Treadmill in the root of your project as `build.js` like this:\n\n```js\n'use strict';\n\nconst treadmill = require('treadmill');\nconst browserify = require('browserify');\nconst sass = require('sass');\n\nconst task = treadmill.task;\nconst Promise = treadmill.Promise;\nconst log = treadmill.log;\n\ntask('bundle-js', function (args, done) {\n  const cwd = args.get('currentWorkingDirectory');\n  const src = cwd.append('frontend', 'scripts', 'main.js');\n\n  const bundler = browserify({\n    debug: true,\n    entries: [src]\n  });\n\n  return bundler.bundle().on('error', done);\n});\n\ntask('bundle-sass', function (args, done) {\n  const src = args.cwd.append('frontend', 'scripts', 'main.js');\n\n  const options = {\n    file: src.toString(),\n    outputStyle: 'compact'\n  };\n\n  sass.render(options, done);\n});\n\ntask('build-assets', ['bundle-js', 'bundle-sass'], function (args) {\n  const cwd = args.get('currentWorkingDirectory');\n  const jsDest = cwd.append('public', 'assets', 'scripts', 'main.js');\n  const cssDest = cwd.append('public', 'assets', 'styles', 'main.css');\n\n  return Promise.all([\n    jsDest.write(args.get('bundle-js')).then(function (file) {\n      log('JavaScript bundle %d', file.stats().size);\n    }),\n    cssDest.write(args.get('bundle-sass')).then(function (file) {\n      log('CSS bundle %d', file.stats().size);\n    })\n  ]);\n});\n```\n\nAnd run it like this:\n\n    treadmill build.js build-assets\n\n### Creating Tasks\nUse the `task()` function like in the example above to create tasks. `task()` takes 3 parameters:\n\n- __name__ - String name of the task (will be used in arguments to Handler Function later; see below). *required*\n- __dependencies__ - Array of names of tasks which should automatically be run first. *optional*\n- __handler__ - The handler Function (see Handler Function below). *required*\n\nThe listed dependency tasks will be run first and the results passed into your handler (see Handler Function below).\n\n### Handler Function\nYour Handler Function will be passed 2 arguments:\n\n- __args__ - An Immutable.Map of the results from your dependencies as well as a few helpful defaults (see Handler Arguments below).\n- __done__ - A callback Function to signal the task is complete.\n\n#### Handler - args\nThe first argument passed to your handler is called `args` and it is an Immutable.Map of some useful default values as well as the results of all your dependencies. Since `args` is an Immutable Object you'll need to get values from it using the getter like this:\n\n`const cwd = args.get('currentWorkingDirectory');`\n\n#### Handler - args defaults\n\n- __currentWorkingDirectory__ A [Filepath](https://github.com/kixxauth/filepath#api-reference) Object representing the current working directory.\n\n#### Example using args\n\n```js\ntask('build-something', ['collect-files'], args => {\n  // The results of dependency tasks are collected into the args\n  // Immutable.Map for you.\n  const files = args.get('collect-files');\n\n  // Available by default\n  const cwd = args.get('currentWorkingDirectory');\n\n  return buildSomethingAsync(cwd, files);\n});\n```\n\n#### Handler - done\nIf you accept the `done` argument like this:\n\n```js\ntask('build-something', (args, done) => {\n  buildSomething(done);\n});\n```\n\nYour task will not complete until `done()` is called. If you pass an argument to `done()` Treadmill will assume it is an error and report it as such. This is a Node.js convention.\n\n__Treadmill Knows Promises!__\nIf you do not accept the `done` argument in your handler like this:\n\n```js\ntask('build-something', (args) => {\n  return buildSomethingAsync().then(result => {\n    return compressSomething(result);\n  });\n});\n```\n\nTreadmill will assume that you returned a Promise from your Handler and will report the resolve or reject from that promise.\n\n\nCopyright and License\n---------------------\nCopyright (c) 2013 - 2016 by Kris Walker <kris@kixx.name> (http://www.kixx.name).\n\nUnless otherwise indicated, all source code is licensed under the MIT license. See MIT-LICENSE for details.\n","maintainers":[{"name":"kixxauth","email":"kris@kixx.name"}],"time":{"modified":"2022-06-27T20:45:37.884Z","created":"2012-01-22T15:26:45.159Z","0.1.0":"2012-01-22T15:26:46.250Z","0.3.0":"2012-03-17T14:31:42.248Z","0.4.0":"2012-03-29T14:32:43.277Z","0.6.0":"2012-04-09T16:06:10.952Z","0.7.0":"2012-04-21T21:12:00.562Z","1.0.0":"2012-04-23T21:03:04.784Z","1.0.1":"2012-04-23T21:03:53.508Z","2.0.1":"2012-05-08T09:19:16.184Z","2.0.2":"2012-06-25T15:48:19.206Z","2.0.0":"2016-03-07T09:49:33.549Z","2.1.0":"2016-11-18T09:53:59.300Z","2.1.1":"2016-11-18T10:21:54.515Z","2.1.2":"2016-11-18T10:25:15.425Z","2.2.0":"2017-03-27T10:17:07.830Z"},"author":{"name":"Kris Walker","email":"kris@kixx.name","url":"http://www.kixx.name/"},"repository":{"typ":"git","url":"git://github.com/kixxauth/treadmill.git"},"homepage":"https://github.com/kixxauth/treadmill#readme","bugs":{"url":"https://github.com/kixxauth/treadmill/issues"},"license":"MIT","readmeFilename":"README.md"}