"use strict";
|
|
// Generated by CoffeeScript 2.3.2
|
// # CSV Generator Sync
|
// Provides a synchronous alternative to the CSV generator.
|
// ## Usage
|
// `const csv = generate(options)`
|
// ## Source Code
|
var generate;
|
generate = require('.');
|
|
module.exports = function (options) {
|
var chunks, generator, work;
|
|
if (typeof options === 'string' && /\d+/.test(options)) {
|
options = parseInt(options);
|
}
|
|
if (Number.isInteger(options)) {
|
options = {
|
length: options
|
};
|
}
|
|
if (!Number.isInteger(options != null ? options.length : void 0)) {
|
throw Error('Invalid Argument: length is not defined');
|
}
|
|
chunks = [];
|
work = true; // See https://nodejs.org/api/stream.html#stream_new_stream_readable_options
|
|
options.highWaterMark = options.objectMode ? 16 : 16384;
|
generator = new generate.Generator(options);
|
|
generator.push = function (chunk) {
|
if (chunk === null) {
|
return work = false;
|
}
|
|
if (options.objectMode) {
|
return chunks.push(chunk);
|
} else {
|
return chunks.push(chunk);
|
}
|
};
|
|
while (work) {
|
generator._read(options.highWaterMark);
|
}
|
|
if (!options.objectMode) {
|
chunks = chunks.join('');
|
}
|
|
return chunks;
|
};
|