From acecdefad1ab8ba5bb6beae7ac6a197fac6132dc Mon Sep 17 00:00:00 2001 From: stdlib-bot <82920195+stdlib-bot@users.noreply.github.com> Date: Fri, 8 Mar 2024 15:08:38 +0000 Subject: [PATCH] Update artifacts --- utils/parse-ndjson/coverage.ndjson | 1 + utils/parse-ndjson/index.html | 131 +++++++++++ utils/parse-ndjson/index.js.html | 208 +++++++++++++++++ utils/parse-ndjson/main.js.html | 361 +++++++++++++++++++++++++++++ 4 files changed, 701 insertions(+) create mode 100644 utils/parse-ndjson/coverage.ndjson create mode 100644 utils/parse-ndjson/index.html create mode 100644 utils/parse-ndjson/index.js.html create mode 100644 utils/parse-ndjson/main.js.html diff --git a/utils/parse-ndjson/coverage.ndjson b/utils/parse-ndjson/coverage.ndjson new file mode 100644 index 000000000..09f5fe868 --- /dev/null +++ b/utils/parse-ndjson/coverage.ndjson @@ -0,0 +1 @@ +[131,133,98.4962,17,18,94.4444,1,1,100,131,133,98.4962,"8d6f33c6b2162168d9855080d5cc261f4f9bfd9e","2024-03-08 10:07:07 -0500"] diff --git a/utils/parse-ndjson/index.html b/utils/parse-ndjson/index.html new file mode 100644 index 000000000..30374c2fd --- /dev/null +++ b/utils/parse-ndjson/index.html @@ -0,0 +1,131 @@ + + + + +
++ Press n or j to go to the next uncovered block, b, p or k for the previous block. +
+ ++ 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 | 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) 2024 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'; + +/** +* Parse a string as newline-delimited JSON (NDJSON). +* +* @module @stdlib/utils/parse-ndjson +* +* @example +* var parseNDJSON = require( '@stdlib/utils/parse-ndjson' ); +* +* var out = parseNDJSON( '{"beep":"boop"}\n{"example":42}' ); +* // returns [ { 'beep': 'boop' }, { 'example': 42 } ] +*/ + + +// MODULES // + +var main = require( './main.js' ); + + +// EXPORTS // + +module.exports = main; + |
+ 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 | 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 +28x +28x +28x +28x +28x +28x +28x +28x +16x +16x +28x +8x +8x +28x +1x +1x +3x +3x +3x +3x +3x +3x +28x + + +3x +3x +3x +28x +7x +3x +7x +4x +4x +7x +1x +1x +6x +6x +6x +2x +28x +1x +1x +1x +1x +1x + | /** +* @license Apache-2.0 +* +* Copyright (c) 2024 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 isString = require( '@stdlib/assert/is-string' ).isPrimitive; +var isFunction = require( '@stdlib/assert/is-function' ); +var parseJSON = require( '@stdlib/utils/parse-json' ); +var format = require( '@stdlib/string/format' ); +var isWhitespace = require( '@stdlib/assert/is-whitespace' ); +var reEOL = require( '@stdlib/regexp/eol' ); + + +// MAIN // + +/** +* Parses a string as newline-delimited JSON (NDJSON). +* +* @param {string} str - input string +* @param {Function} [reviver] - transformation function applied to each line +* @throws {TypeError} first argument must be a string +* @throws {TypeError} reviver must be a function +* @returns {Array|Error} array of parsed values or an error +* +* @example +* var out = parseNDJSON( '{"name":"John"}\n{"name":"Doe"}' ); +* // returns [ { 'name': 'John' }, { 'name': 'Doe' } ] +*/ +function parseNDJSON( str, reviver ) { + var parsed; + var RE_EOL; + var lines; + var out; + var i; + + if ( !isString( str ) ) { + throw new TypeError( format( 'invalid argument. First argument must be a string. Value: `%s`.', str ) ); + } + if ( arguments.length > 1 && !isFunction( reviver ) ) { + throw new TypeError( format( 'invalid argument. Reviver argument must be a function. Value: `%s`.', str ) ); + } + if ( isWhitespace( str ) || str === '' ) { + return []; + } + + RE_EOL = reEOL(); + + lines = str.split( RE_EOL ); + + // Remove trailing newline: + if ( lines[ lines.length - 1 ].length === 0 ) { + lines.pop(); + } + + out = []; + + for ( i = 0; i < lines.length; i++ ) { + if ( reviver ) { + parsed = parseJSON( lines[ i ], reviver ); + } else { + parsed = parseJSON( lines[ i ] ); + } + if ( parsed instanceof Error ) { + return parsed; + } + + out.push( parsed ); + } + return out; +} + + +// EXPORTS // + +module.exports = parseNDJSON; + |