{"_id":"nodecat","_rev":"8-237287d57c6adec18653c39e1c29feda","name":"nodecat","dist-tags":{"latest":"3.0.0"},"versions":{"0.1.0":{"name":"nodecat","version":"0.1.0","keywords":["cat","posix"],"author":{"name":"Kevin Locke","email":"kevin@kevinlocke.name"},"license":"MIT","_id":"nodecat@0.1.0","maintainers":[{"name":"kevinoid","email":"kevin@kevinlocke.name"}],"homepage":"https://github.com/kevinoid/nodecat","bugs":{"url":"https://github.com/kevinoid/nodecat/issues"},"//":"All scripts should run in POSIX sh and Windows cmd.exe","bin":{"nodecat":"bin/nodecat.js"},"dist":{"shasum":"d174623c58169907d1340746d8e10e9011bd3aff","tarball":"https://registry.npmjs.org/nodecat/-/nodecat-0.1.0.tgz","integrity":"sha512-mpV7bZKpY2jj9gCi0dYdGtIh8RM2N0bNrJBV4zhjF8Vxj8+B/qerZxp7wuy1orXUahIL2CPt9r4ecP7j3JN5pQ==","signatures":[{"sig":"MEQCIDHkaGZoJYy6BVkVAEeX25vpEiXcVkpQwyQs4cC4pJLlAiB5JRORwsMtk0Snp7ZjxwLOrhVgprzMaWmMvxVXnqUQVQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"d174623c58169907d1340746d8e10e9011bd3aff","engines":{"npm":">=1.3.7","node":">=0.10"},"gitHead":"7ecd5882a59e3214f9575c2132bb564c36de760d","scripts":{"doc":"npm run doc-js && npm run doc-spec","lint":"npm run lint-js && npm run lint-doc","test":"npm run lint && npm run test-unit","clean":"rimraf coverage && rimraf doc","doc-js":"rimraf doc/api && jsdoc -c jsdoc.conf.json .","lint-js":"eslint . && echo ESLint passed.","version":"github_changelog_generator -t \"$npm_config_gcg_github_token\" --future-release \"$npm_package_version\" && echo && echo === Please edit CHANGELOG.md as desired, then exit === && echo && $npm_config_shell && git commit -m \"Update CHANGELOG.md for $npm_package_version\" CHANGELOG.md","doc-spec":"rimraf doc/spec && mkdir doc/spec && mocha --reporter doc --recursive test | cat doc-src/spec/header.xhtml - doc-src/spec/footer.xhtml >> doc/spec/index.xhtml","lint-doc":"jsdoc -c jsdoc-lint.conf.json . && echo JSDoc passed.","test-cov":"npm run lint && npm run test-unit-cov","test-unit":"mocha --recursive test","preversion":"git-branch-is master && travis-status -b -c -qwx && depcheck && david","upload-cov":"codecov < ./coverage/lcov.info && coveralls < ./coverage/lcov.info","postpublish":"git -C doc push && git push --follow-tags origin master gh-pages && echo Remember to update GitHub Releases from CHANGELOG.md && echo until skywinder/github-changelog-generator#56 is fixed.","postversion":"rimraf doc && git clone -b gh-pages -l -q . doc && npm run doc && git -C doc add . && git -C doc commit -n -m \"Docs for v$npm_package_version\"","version-deps":"npm install david depcheck git-branch-is travis-status","test-unit-cov":"istanbul cover _mocha -- --recursive test"},"_npmUser":{"name":"kevinoid","email":"kevin@kevinlocke.name"},"repository":{"url":"git+https://github.com/kevinoid/nodecat.git","type":"git"},"_npmVersion":"3.7.5","description":"A Node.js implementation of cat, as specified by POSIX/SUSv3.  No frills, no buffering, no charset conversion, just cat.","directories":{},"_nodeVersion":"4.3.1","dependencies":{"exit":"^0.1.2"},"devDependencies":{"chai":"^3.5.0","jsdoc":"^3.4.0","mocha":"^2.3.4","sinon":"^1.17.3","eslint":"^2.3.0","codecov":"^1.0.1","bluebird":">=2.0.0","istanbul":"^0.4.1","coveralls":"^2.11.6","proxyquire":"^1.7.4","eslint-config-airbnb":"^6.0.1"},"_npmOperationalInternal":{"tmp":"tmp/nodecat-0.1.0.tgz_1459571112412_0.8340182951651514","host":"packages-12-west.internal.npmjs.com"}},"1.0.0":{"name":"nodecat","version":"1.0.0","keywords":["cat","cli","command","coreutils","posix","stream"],"author":{"name":"Kevin Locke","email":"kevin@kevinlocke.name"},"license":"MIT","_id":"nodecat@1.0.0","maintainers":[{"name":"kevinoid","email":"kevin@kevinlocke.name"}],"homepage":"https://github.com/kevinoid/nodecat","bugs":{"url":"https://github.com/kevinoid/nodecat/issues"},"//":"All scripts should run in POSIX sh and Windows cmd.exe","bin":{"nodecat":"bin/nodecat.js"},"nyc":{"exclude":["test"],"reporter":["lcov","text"]},"dist":{"shasum":"9285e361f38c635177727f26e5891d595d4c279a","tarball":"https://registry.npmjs.org/nodecat/-/nodecat-1.0.0.tgz","integrity":"sha512-0QqOyDQQRn8vdU+IQcKt3uTki16XcCYgBWyAHo1kvGYVEZcao+i2wK30PPH+/vyoAww2HKUUfH9ydhKMBrbPUA==","signatures":[{"sig":"MEYCIQDyDKeScMJef6f2fkNd8VMl54UtonEOO2yn7J2cEW2eEQIhAJirsIeKcwsj4V+33MznBk4Njbv+QfZQ3weTcCBc+d9V","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"9285e361f38c635177727f26e5891d595d4c279a","engines":{"npm":">=1.3.7","node":">=0.10"},"gitHead":"a7e383b9817d7e86829a13288221ac1a07fae575","scripts":{"doc":"npm run doc-js && npm run doc-spec","lint":"npm run lint-js && npm run lint-doc","test":"npm run lint && npm run test-unit","clean":"rimraf coverage && rimraf doc","doc-js":"rimraf doc/api && jsdoc -c jsdoc.conf.json .","lint-js":"node-version-gte-4 && eslint . && echo ESLint passed. || node-version-lt-4","version":"github_changelog_generator -t \"$npm_config_gcg_github_token\" --future-release \"$npm_package_version\" && echo && echo === Please edit CHANGELOG.md as desired, then exit === && echo && $npm_config_shell && git commit -m \"Update CHANGELOG.md for $npm_package_version\" CHANGELOG.md","doc-spec":"rimraf doc/spec && mkdir doc/spec && mocha --reporter doc --recursive test | node ./bin/nodecat.js doc-src/spec/header.xhtml - doc-src/spec/footer.xhtml > doc/spec/index.xhtml","lint-doc":"jsdoc -t templates/silent -c jsdoc-lint.conf.json . && echo JSDoc passed.","test-cov":"npm run lint && npm run test-unit-cov","test-unit":"mocha --recursive test","preversion":"depcheck --ignores eslint-plugin-import --ignore-dirs doc && david && git-branch-is master && travis-status -b master -c -wx && appveyor-status -b master -c -w -p kevinoid/nodecat && nyc check-coverage --lines 95","upload-cov":"codecov < ./coverage/lcov.info && coveralls < ./coverage/lcov.info","postpublish":"git -C doc push && git push --follow-tags origin master gh-pages && echo Remember to update GitHub Releases from CHANGELOG.md && echo until skywinder/github-changelog-generator#56 is fixed.","postversion":"rimraf doc && git clone -b gh-pages -l -q . doc && npm run doc && git -C doc add . && git -C doc commit -n -m \"Docs for v$npm_package_version\"","version-deps":"npm install david depcheck git-branch-is travis-status","test-unit-cov":"nyc mocha --recursive test"},"_npmUser":{"name":"kevinoid","email":"kevin@kevinlocke.name"},"repository":{"url":"git+https://github.com/kevinoid/nodecat.git","type":"git"},"_npmVersion":"4.1.1","description":"A Node.js implementation of cat, as specified by POSIX/SUSv3.  No frills, no buffering, no charset conversion, just cat.","directories":{},"_nodeVersion":"6.9.2","dependencies":{"exit":"^0.1.2"},"devDependencies":{"nyc":"^10.1.2","chai":"^3.5.0","jsdoc":"^3.4.0","mocha":"^3.0.0","sinon":"^1.17.3","eslint":"^3.0.0","rimraf":"^2.2.0","codecov":"^1.0.1","bluebird":">=2.0.0","coveralls":"^2.11.6","proxyquire":"^1.7.4","node-version-check":"^2.1.1","eslint-plugin-import":"^2.2.0","eslint-config-airbnb-base":"^11.0.0"},"_npmOperationalInternal":{"tmp":"tmp/nodecat-1.0.0.tgz_1487989479381_0.7584289794322103","host":"packages-18-east.internal.npmjs.com"}},"2.0.0":{"name":"nodecat","version":"2.0.0","keywords":["cat","cli","command","coreutils","posix","stream"],"author":{"name":"Kevin Locke","email":"kevin@kevinlocke.name"},"license":"MIT","_id":"nodecat@2.0.0","maintainers":[{"name":"kevinoid","email":"kevin@kevinlocke.name"}],"homepage":"https://github.com/kevinoid/nodecat","bugs":{"url":"https://github.com/kevinoid/nodecat/issues"},"//":"All scripts should run in POSIX sh and Windows cmd.exe","bin":{"nodecat":"bin/nodecat.js"},"nyc":{"exclude":["test"],"reporter":["lcov","text"]},"dist":{"shasum":"ac0d4bccd24e98097a6a29fa1198d20513e9dc36","tarball":"https://registry.npmjs.org/nodecat/-/nodecat-2.0.0.tgz","fileCount":7,"integrity":"sha512-0Terfdda/M6QH4fze99EestAS6qmdymRBERpG5OAiwvMUtS3V1k1Lrj4kxPl9kzyFW7LsFy99E28XANBe91URA==","signatures":[{"sig":"MEUCICiVAF5VmUs5N9xSnJhr6WCvICdKcx23B5g4Ne0sEqFCAiEAqnyrEDWAdl4uLK2uAoWCis3AA5tAhe7xNZhVK16DPWQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":22268,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbNrQMCRA9TVsSAnZWagAA3kAQAJlEyFGauX/haU5JTAMG\njaszauZWpzTw3dT3MZeuvgo6PxO5Kj1trvdCcLB6EWCv9YfFkLafcGBGwe7j\nzX3fnSbjij6Q2hL+k4HIPFKMh/viUAF9BQVJkO0LpCVMRTRpdwTRha8PLrJN\nafxL+hwxQaqsP+TnZMm7B+PDzP7N06qAXiRsVcqt4K/APYWvJaoibeooNWSm\nF+b+npl5Lwoz4XipqnbajwYDrBkf67DBIBoFl9538SA0aFpA91uTZfZ+EpQW\nmRAzxYA/Ohg9p3b5Ry3+beU/KFuqW7xSV4X7la2ibN/MTM84aiv+2Cah4DGI\nZlgiT7d/rE49D6JILJdtpr1Mu0zpFl/FQOMGR8/OcviQCSVX1oKmfPE+1Kyq\nh4MQM9UtidU4Hik8Jao4Bgd2Z21uvqiIxyCeyAhy5R6IMDogS0Yn5X52bwxW\nyafchQIRG82iMqOeKbjdYPRPjZvZj9ae/TT2TnIBICJFVVy1mrl3LFnFeOlG\n3l8yDklJN/H/Fv/XMM7Ms4s29WPpciOemc3KDcktCjT4Stf2DhrlxI0iWBLc\nqOZ3hG6OBUw/oK2pxS9JntsG6rL0QLbNuuZjPi1FLDGePDsmd3vuMh3Dg2zd\ne6lCZegsBmg7vgoSacc9ZuuVtB17zGvT0KaASBzVbDgrrNP4xzyBf88Etefw\naLRm\r\n=medL\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","engines":{"npm":">=1.3.7","node":">=6"},"gitHead":"292a9e9c659dcaa63e99fab01d28a22bb55b7d09","scripts":{"doc":"npm run doc-js && npm run doc-spec","lint":"npm run lint-js && npm run lint-doc","test":"npm run lint && npm run test-unit","clean":"rimraf coverage && rimraf doc","doc-js":"rimraf doc/api && jsdoc -c jsdoc.conf.json .","lint-js":"eslint . && echo ESLint passed.","version":"github_changelog_generator -t \"$npm_config_gcg_github_token\" --future-release \"$npm_package_version\" && echo && echo === Please edit CHANGELOG.md as desired, then exit === && echo && $npm_config_shell && git commit -m \"Update CHANGELOG.md for $npm_package_version\" CHANGELOG.md","doc-spec":"rimraf doc/spec && mkdir doc/spec && mocha --reporter doc --recursive test | node ./bin/nodecat.js doc-src/spec/header.xhtml - doc-src/spec/footer.xhtml > doc/spec/index.xhtml","lint-doc":"jsdoc -t templates/silent -c jsdoc-lint.conf.json . && echo JSDoc passed.","test-cov":"npm run lint && npm run test-unit-cov","test-unit":"mocha --recursive test","preversion":"depcheck --ignores eslint-plugin-import,greenkeeper-lockfile --ignore-dirs doc && david -i eslint && git-branch-is master && travis-status -b master -c -wx && appveyor-status -b master -c -p kevinoid/nodecat -w && nyc check-coverage --lines 95","upload-cov":"codecov < ./coverage/lcov.info && coveralls < ./coverage/lcov.info","postpublish":"git -C doc push && git push --follow-tags origin master gh-pages && echo Remember to update GitHub Releases from CHANGELOG.md && echo until skywinder/github-changelog-generator#56 is fixed.","postversion":"rimraf doc && git clone -b gh-pages -l -q . doc && npm run doc && git -C doc add . && git -C doc commit -n -m \"Docs for v$npm_package_version\"","version-deps":"npm install david depcheck git-branch-is travis-status","test-unit-cov":"nyc mocha --recursive test"},"_npmUser":{"name":"kevinoid","email":"kevin@kevinlocke.name"},"repository":{"url":"git+https://github.com/kevinoid/nodecat.git","type":"git"},"_npmVersion":"6.1.0","description":"A Node.js implementation of cat, as specified by POSIX/SUSv3.  No frills, no buffering, no charset conversion, just cat.","directories":{},"greenkeeper":{"ignore":["eslint"]},"_nodeVersion":"8.11.2","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^12.0.2","chai":"^4.1.2","jsdoc":"^3.4.1","mocha":"^5.0.0","sinon":"^6.0.1","eslint":"^4.6.1","rimraf":"^2.2.0","codecov":"^3.0.0","coveralls":"^3.0.0","proxyquire":"^2.0.0","eslint-plugin-import":"^2.7.0","greenkeeper-lockfile":"^1.15.1","eslint-config-airbnb-base":"^13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/nodecat_2.0.0_1530311692301_0.47599205713655857","host":"s3://npm-registry-packages"}},"3.0.0":{"name":"nodecat","version":"3.0.0","description":"A Node.js implementation of cat, as specified by POSIX/SUSv3.  No frills, no buffering, no charset conversion, just cat.","keywords":["cat","cli","command","coreutils","posix","stream"],"license":"MIT","homepage":"https://github.com/kevinoid/nodecat","bugs":{"url":"https://github.com/kevinoid/nodecat/issues"},"author":{"name":"Kevin Locke","email":"kevin@kevinlocke.name"},"repository":{"type":"git","url":"git+https://github.com/kevinoid/nodecat.git"},"type":"commonjs","main":"index.js","exports":{".":"./index.js","./package.json":"./package.json"},"bin":{"nodecat":"bin/nodecat.js"},"//":"All scripts should run in POSIX sh and Windows cmd.exe","scripts":{"changelog":"conventional-changelog -p angular -i CHANGELOG.md -s -u","clean":"rimraf coverage && rimraf doc","doc":"npm run doc-js && npm run doc-spec","doc-js":"rimraf doc/api && jsdoc -c jsdoc.conf.json .","doc-spec":"rimraf doc/spec && mkdir doc/spec && mocha --reporter doc --recursive test | node ./bin/nodecat.js doc-src/spec/header.xhtml - doc-src/spec/footer.xhtml > doc/spec/index.xhtml","lint":"npm run lint-js && npm run lint-doc","lint-doc":"jsdoc -t templates/silent -c jsdoc-lint.conf.json . && echo JSDoc passed.","lint-js":"eslint --report-unused-disable-directives . && echo ESLint passed.","release":"git -C doc push && git push --follow-tags origin main gh-pages && echo \"Create a GitHub Release (from CHANGELOG.md) to run publish workflow.\"","postversion":"rimraf doc && git clone -b gh-pages -l -q . doc && npm run doc && git -C doc add . && git -C doc commit -n -m \"Docs for v$npm_package_version\"","preversion":"npm run test-cov && c8 check-coverage --statements 95 && depcheck --ignore-dirs doc --ignores=\"eslint-*,rimraf\" && david && git-branch-is main && hub-ci-status -vv --wait","test":"npm run lint && npm run test-unit","test-cov":"npm run lint && npm run test-unit-cov","test-unit":"node --disable-proto=throw --throw-deprecation --unhandled-rejections=strict node_modules/mocha/bin/mocha.js --parallel --recursive test","test-unit-cov":"c8 --reporter=lcov --reporter=text npm run test-unit","version":"npm run changelog && echo && echo === Please edit CHANGELOG.md as desired, then exit === && echo && \"${npm_config_shell:-${SHELL:-bash}}\" && git commit -m \"Update CHANGELOG.md for $npm_package_version\" CHANGELOG.md","version-deps":"npm install conventional-changelog-cli david depcheck git-branch-is hub-ci-status"},"devDependencies":{"@kevinoid/eslint-config":"^34.0.0","c8":"^11.0.0","chai":"^6.0.0","eslint":"^9.35.0","globals":"^17.0.0","jsdoc":"^4.0.0","mocha":"^11.0.1","proxyquire":"^2.0.0","rimraf":"^6.1.2","sinon":"^22.0.0"},"engines":{"node":"20 || >=22","npm":">=1.3.7"},"mocha":{"checkLeaks":true,"exit":false},"c8":{"exclude":["test"],"reporter":["lcov","text"]},"david":{"// eslint":"Must match version from peerDependencies of @kevinoid/eslint-plugin","ignore":["eslint"]},"gitHead":"9a176d43e5827852b591d5d0ea285011044d2d5d","_id":"nodecat@3.0.0","_nodeVersion":"26.2.0","_npmVersion":"11.13.0","dist":{"integrity":"sha512-eE1yYbdAEyImOb4w1uAtoSwDjBiZrMzyzytUX9SMjORXZoTkgAckGGa923FDrk7h6HsK87CMemVleFoqMA7PsA==","shasum":"89c4d3a842d769bdfeb3eda14b20a351dcde1ca7","tarball":"https://registry.npmjs.org/nodecat/-/nodecat-3.0.0.tgz","fileCount":5,"unpackedSize":19416,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/nodecat@3.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQD2Gs8BS0KIcLQ55WgBCjGAoGzqvJ42Vp8mdqPRPfLmggIhALA2C32q1uiTV5m+1LwksKVrzTgXZCjRjw2AFc3xqGSg"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9513b42c-60ab-4901-9046-9aa52ba88b20"}},"directories":{},"maintainers":[{"name":"kevinoid","email":"kevin@kevinlocke.name"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/nodecat_3.0.0_1780176075891_0.014315017588379941"},"_hasShrinkwrap":false}},"time":{"created":"2016-04-02T04:25:12.878Z","modified":"2026-05-30T21:21:16.367Z","0.1.0":"2016-04-02T04:25:12.878Z","1.0.0":"2017-02-25T02:24:39.989Z","2.0.0":"2018-06-29T22:34:52.364Z","3.0.0":"2026-05-30T21:21:16.027Z"},"bugs":{"url":"https://github.com/kevinoid/nodecat/issues"},"author":{"name":"Kevin Locke","email":"kevin@kevinlocke.name"},"license":"MIT","homepage":"https://github.com/kevinoid/nodecat","keywords":["cat","cli","command","coreutils","posix","stream"],"repository":{"type":"git","url":"git+https://github.com/kevinoid/nodecat.git"},"description":"A Node.js implementation of cat, as specified by POSIX/SUSv3.  No frills, no buffering, no charset conversion, just cat.","maintainers":[{"name":"kevinoid","email":"kevin@kevinlocke.name"}],"readme":"Nodecat\n========\n\n[![Build Status](https://img.shields.io/github/actions/workflow/status/kevinoid/nodecat/node.js.yml?branch=main&style=flat&label=build)](https://github.com/kevinoid/nodecat/actions/workflows/node.js.yml?query=branch%3Amain)\n[![Coverage](https://img.shields.io/codecov/c/github/kevinoid/nodecat/main.svg?style=flat)](https://app.codecov.io/gh/kevinoid/nodecat/branch/main)\n[![Dependency Status](https://img.shields.io/librariesio/release/npm/nodecat.svg?style=flat)](https://libraries.io/npm/nodecat)\n[![Supported Node Version](https://img.shields.io/node/v/nodecat.svg?style=flat)](https://www.npmjs.com/package/nodecat)\n[![Version on NPM](https://img.shields.io/npm/v/nodecat.svg?style=flat)](https://www.npmjs.com/package/nodecat)\n\nA Node.js implementation of cat, as [specified by\nPOSIX/SUSv3](http://pubs.opengroup.org/onlinepubs/9699919799/utilities/cat.html).\nNo frills, no buffering, no charset conversion, just cat.\n\n## Introductory Example\n\n```sh\n$ marked README.md | nodecat header.html - footer.html > README.html\n```\n\n## Features\n\n* Supports copying stdin by default or explicitly using the name `-`.\n* Copies all files byte-for-byte without requiring a valid encoding.\n* Does not buffer any input or output (beyond any buffering done by the\n  libuv/Node internals and the `stream.Readable.prototype.pipe`\n  implementation).\n* Handles both read and write errors gracefully.\n* Recognizes the `-u` option specified by POSIX (which is ignored, since\n  nodecat is always unbuffered).\n* Recognizes the `--` option delimiter, allowing filenames which begin with\n  `-` after the delimiter.\n* Asynchronous, non-blocking API to support concurrent use cases and\n  caller-provided streams.\n\n## Installation\n\n[This package](https://www.npmjs.com/package/nodecat) can be\ninstalled using [npm](https://www.npmjs.com/), either globally or locally, by\nrunning:\n\n```sh\nnpm install nodecat\n```\n\n## Recipes\n\n### Concatenate a filename starting with -\n\n```sh\n$ nodecat -- -unfortunate-name.html footer.html > combined.html\n```\n\n### Concatenate to `stdout` via the API\n\n```js\nvar nodecat = require('nodecat');\nnodecat(\n  ['header.html', '-', 'footer.html'],\n  {fileStreams: {'-': process.stdin}},\n  function(err) {\n    if (err) {\n      console.error('Error concatenating files: ', err);\n    } else {\n      console.error('Done concatenating files.');\n    }\n  }\n);\n```\n\n### Concatenate to a `stream` via the API\n\nTo concatenate files into a `stream.Writable` (which may be a\n`fs.WriteStream`, `net.Socket`, `tty.WriteStream`, `stream.PassThrough`, or\nany other `stream.Writable` subtype):\n\n```js\nvar nodecat = require('nodecat');\nvar stream = require('stream');\nvar outStream = stream.PassThrough();\nvar errStream = stream.PassThrough();\nnodecat(\n  ['header.html', '-', 'footer.html'],\n  {\n    fileStreams: {'-': process.stdin},\n    outStream: outStream,\n    errStream: errStream\n  },\n  function(err) {\n    if (err) {\n      console.error('Error concatenating files: ', err);\n    } else {\n      console.error('Done concatenating files.');\n      console.error('Content:\\n', String(outStream.read()));\n    }\n  }\n);\n```\n\nNote:  When `nodecat` is called on large files and `stdout` is redirected to a\nfile, it may be useful to use `fs.createWriteStream('-', {fd: 1})` instead of\n`process.stdout`, which does [synchronous\nwrites](https://nodejs.org/api/process.html#process_process_stdout).  Be sure\nto end the stream before exiting.\n\nMore examples can be found in the [test\nspecifications](https://kevinoid.github.io/nodecat/spec).\n\n## API Docs\n\nTo use this module as a library, see the [API\nDocumentation](https://kevinoid.github.io/nodecat/api).\n\n## Contributing\n\nContributions are appreciated.  Contributors agree to abide by the [Contributor\nCovenant Code of\nConduct](https://www.contributor-covenant.org/version/1/4/code-of-conduct.html).\nIf this is your first time contributing to a Free and Open Source Software\nproject, consider reading [How to Contribute to Open\nSource](https://opensource.guide/how-to-contribute/)\nin the Open Source Guides.\n\nIf the desired change is large, complex, backwards-incompatible, can have\nsignificantly differing implementations, or may not be in scope for this\nproject, opening an issue before writing the code can avoid frustration and\nsave a lot of time and effort.\n\n## Alternatives\n\nIf nodecat does not satisfy your needs, you may want to consider these\nalternatives:\n\n* [cash-cat](https://www.npmjs.com/package/cash-cat)\n* [minicat](https://www.npmjs.com/package/minicat)\n* [posix-cat](https://www.npmjs.com/package/posix-cat)\n\n## License\n\nThis project is available under the terms of the [MIT License](LICENSE.txt).\nSee the [summary at TLDRLegal](https://tldrlegal.com/license/mit-license).\n","readmeFilename":"README.md"}