All files / dsv/base/parse/lib defaults.js

40.45% Statements 53/131
100% Branches 1/1
0% Functions 0/2
40.45% Lines 53/131

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 1321x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x       1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x                                                                                                                                                       1x 1x 1x 1x 1x  
/**
* @license Apache-2.0
*
* Copyright (c) 2022 The Stdlib Authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*    http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
 
'use strict';
 
// MODULES //
 
var noop = require( '@stdlib/utils/noop' );
 
 
// FUNCTIONS //
 
/**
* Throws a provided exception.
*
* @private
* @param {Error} err - error object
* @throws {Error} exception
*/
function throwError( err ) {
	throw err;
}
 
 
// MAIN //
 
/**
* Returns default options.
*
* @private
* @returns {Object} default options
*
* @example
* var o = defaults();
* // returns {...}
*/
function defaults() {
	return {
		// Character sequence appearing at the beginning of a row which demarcates that the row content should be parsed as a commented line. A commented line ends upon encountering the first newline character sequence, regardless of whether that newline character sequence is preceded by an escape character sequence.
		'comment': '',

		// Character sequence separating record fields (e.g., use `','` for CSV and use `'\t'` for TSV).
		'delimiter': ',',

		// Flag indicating how quote sequences should be escaped within a quoted field. When `true`, a quote sequence must be escaped by another quote sequence. When `false`, a quote sequence must be escaped by the escape sequence.
		'doublequote': true,

		// Character sequence for escaping character sequences having special meaning (i.e., delimiter, newline, escape, and comment outside of quoted fields, and the quote sequence within quoted fields when `doublequote` is `false`).
		'escape': '',

		// Flag indicating whether to trim leading whitespace from field values. If `false`, leading whitespace is not trimmed (e.g., `a, b, c` parses as `[ 'a', ' b', ' c' ]`). If `true`, leading whitespace is trimmed (e.g., `a, b, c` parses as `[ 'a', 'b', 'c' ]`).
		'ltrim': false,

		// Maximum number of records to process.
		'maxRows': 1e308,

		// Character sequence separating rows.
		'newline': '\r\n',

		// Callback to be invoked upon closing the parser.
		'onClose': noop,

		// Callback to be invoked upon processing a field.
		'onColumn': noop,

		// Callback to be invoked upon processing a commented line.
		'onComment': null,

		// Callback to be invoked upon encountering an unrecoverable parse error.
		'onError': throwError,

		// Callback to be invoked upon processing a record.
		'onRow': noop,

		// Callback to be invoked upon skipping a line.
		'onSkip': null,

		// When `strict` is `false`, a callback to be invoked upon encountering invalid DSV.
		'onWarn': null,

		// Character sequence demarcating the beginning and ending of a quoted field.
		'quote': '"',

		// Flag indicating whether to enable special processing of quote character sequences (i.e., whether a quote sequence should demarcate a quoted field).
		'quoting': true,

		// Array-like object for storing the field values of the most recently processed record. This allows reusing memory and avoiding copies upon invocation of the `onRow` callback.
		'rowBuffer': [],

		// Flag indicating whether to trim trailing whitespace from field values. If `false`, trailing whitespace is not trimmed (e.g., `a ,b , c` parses as `[ 'a ', 'b ', ' c' ]`). If `true`, trailing whitespace is trimmed (e.g., `a ,b ,c` parses as `[ 'a', 'b', 'c' ]`).
		'rtrim': false,

		// Character sequence appearing at the beginning of a row which demarcates that the row content should be skipped.
		'skip': '',

		// Flag indicating whether to skip over rows which are either empty or containing only whitespace.
		'skipBlankRows': false,

		// Callback whose return value indicates whether to skip over a row.
		'skipRow': null,

		// Flag indicating whether to raise an exception upon encountering invalid DSV.
		'strict': true,

		// Flag indicating whether to trim leading whitespace in commented lines.
		'trimComment': true,

		// List of characters to be treated as whitespace.
		'whitespace': [ ' ' ]
	};
}
 
 
// EXPORTS //
 
module.exports = defaults;