mirror of
https://kevinblog.sytes.net/Code/Jibo-Revival-Group/RoboCommander.git
synced 2026-06-15 10:26:04 +00:00
Initial commit
This commit is contained in:
27
node_modules/d3-dsv/LICENSE
generated
vendored
Normal file
27
node_modules/d3-dsv/LICENSE
generated
vendored
Normal file
@@ -0,0 +1,27 @@
|
||||
Copyright 2013-2016 Mike Bostock
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation
|
||||
and/or other materials provided with the distribution.
|
||||
|
||||
* Neither the name of the author nor the names of contributors may be used to
|
||||
endorse or promote products derived from this software without specific prior
|
||||
written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
32
node_modules/d3-dsv/bin/dsv2dsv
generated
vendored
Executable file
32
node_modules/d3-dsv/bin/dsv2dsv
generated
vendored
Executable file
@@ -0,0 +1,32 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
var os = require("os"),
|
||||
rw = require("rw").dash,
|
||||
path = require("path"),
|
||||
iconv = require("iconv-lite"),
|
||||
commander = require("commander"),
|
||||
dsv = require("../");
|
||||
|
||||
var program = path.basename(process.argv[1]),
|
||||
defaultInDelimiter = program.slice(0, 3) === "tsv" ? "\t" : ",",
|
||||
defaultOutDelimiter = program.slice(-3) === "tsv" ? "\t" : ",";
|
||||
|
||||
commander
|
||||
.version(require("../package.json").version)
|
||||
.usage("[options] [file]")
|
||||
.option("-o, --out <file>", "output file name; defaults to “-” for stdout", "-")
|
||||
.option("-r, --input-delimiter <character>", "input delimiter character", defaultInDelimiter)
|
||||
.option("-w, --output-delimiter <character>", "output delimiter character", defaultOutDelimiter)
|
||||
.option("--input-encoding <encoding>", "input character encoding; defaults to “utf8”", "utf8")
|
||||
.option("--output-encoding <encoding>", "output character encoding; defaults to “utf8”", "utf8")
|
||||
.parse(process.argv);
|
||||
|
||||
var inFormat = dsv.dsvFormat(commander.inputDelimiter),
|
||||
outFormat = dsv.dsvFormat(commander.outputDelimiter);
|
||||
|
||||
rw.readFile(commander.args[0] || "-", function(error, text) {
|
||||
if (error) throw error;
|
||||
rw.writeFile("-", iconv.encode(outFormat.format(inFormat.parse(iconv.decode(text, commander.inputEncoding))) + os.EOL, commander.outputEncoding), function(error) {
|
||||
if (error) throw error;
|
||||
});
|
||||
});
|
||||
33
node_modules/d3-dsv/bin/dsv2json
generated
vendored
Executable file
33
node_modules/d3-dsv/bin/dsv2json
generated
vendored
Executable file
@@ -0,0 +1,33 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
var os = require("os"),
|
||||
rw = require("rw").dash,
|
||||
path = require("path"),
|
||||
iconv = require("iconv-lite"),
|
||||
commander = require("commander"),
|
||||
dsv = require("../");
|
||||
|
||||
var program = path.basename(process.argv[1]),
|
||||
defaultInDelimiter = program.slice(0, 3) === "tsv" ? "\t" : ",";
|
||||
|
||||
commander
|
||||
.version(require("../package.json").version)
|
||||
.usage("[options] [file]")
|
||||
.option("-o, --out <file>", "output file name; defaults to “-” for stdout", "-")
|
||||
.option("-r, --input-delimiter <character>", "input delimiter character", defaultInDelimiter)
|
||||
.option("-n, --newline-delimited", "output newline-delimited JSON")
|
||||
.option("--input-encoding <encoding>", "input character encoding; defaults to “utf8”", "utf8")
|
||||
.option("--output-encoding <encoding>", "output character encoding; defaults to “utf8”", "utf8")
|
||||
.parse(process.argv);
|
||||
|
||||
var inFormat = dsv.dsvFormat(commander.inputDelimiter);
|
||||
|
||||
rw.readFile(commander.args[0] || "-", function(error, text) {
|
||||
if (error) throw error;
|
||||
var rows = inFormat.parse(iconv.decode(text, commander.inputEncoding));
|
||||
rw.writeFile(commander.out, iconv.encode(commander.newlineDelimited
|
||||
? rows.map(function(row) { return JSON.stringify(row); }).join("\n") + "\n"
|
||||
: JSON.stringify(rows) + os.EOL, commander.outputEncoding), function(error) {
|
||||
if (error) throw error;
|
||||
});
|
||||
});
|
||||
33
node_modules/d3-dsv/bin/json2dsv
generated
vendored
Executable file
33
node_modules/d3-dsv/bin/json2dsv
generated
vendored
Executable file
@@ -0,0 +1,33 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
var os = require("os"),
|
||||
rw = require("rw").dash,
|
||||
path = require("path"),
|
||||
iconv = require("iconv-lite"),
|
||||
commander = require("commander"),
|
||||
dsv = require("../");
|
||||
|
||||
var program = path.basename(process.argv[1]),
|
||||
defaultOutDelimiter = program.slice(-3) === "tsv" ? "\t" : ",";
|
||||
|
||||
commander
|
||||
.version(require("../package.json").version)
|
||||
.usage("[options] [file]")
|
||||
.option("-o, --out <file>", "output file name; defaults to “-” for stdout", "-")
|
||||
.option("-w, --output-delimiter <character>", "output delimiter character", defaultOutDelimiter)
|
||||
.option("-n, --newline-delimited", "accept newline-delimited JSON")
|
||||
.option("--input-encoding <encoding>", "input character encoding; defaults to “utf8”", "utf8")
|
||||
.option("--output-encoding <encoding>", "output character encoding; defaults to “utf8”", "utf8")
|
||||
.parse(process.argv);
|
||||
|
||||
var outFormat = dsv.dsvFormat(commander.outputDelimiter);
|
||||
|
||||
rw.readFile(commander.args[0] || "-", function(error, text) {
|
||||
if (error) throw error;
|
||||
text = iconv.decode(text, commander.inputEncoding);
|
||||
rw.writeFile(commander.out, iconv.encode(outFormat.format(commander.newlineDelimited
|
||||
? text.trim().split(/\r?\n/g).map(function(line) { return JSON.parse(line); })
|
||||
: JSON.parse(text)) + os.EOL, commander.outputEncoding), function(error) {
|
||||
if (error) throw error;
|
||||
});
|
||||
});
|
||||
162
node_modules/d3-dsv/build/d3-dsv.js
generated
vendored
Normal file
162
node_modules/d3-dsv/build/d3-dsv.js
generated
vendored
Normal file
@@ -0,0 +1,162 @@
|
||||
// https://d3js.org/d3-dsv/ Version 1.0.8. Copyright 2017 Mike Bostock.
|
||||
(function (global, factory) {
|
||||
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
|
||||
typeof define === 'function' && define.amd ? define(['exports'], factory) :
|
||||
(factory((global.d3 = global.d3 || {})));
|
||||
}(this, (function (exports) { 'use strict';
|
||||
|
||||
var EOL = {};
|
||||
var EOF = {};
|
||||
var QUOTE = 34;
|
||||
var NEWLINE = 10;
|
||||
var RETURN = 13;
|
||||
|
||||
function objectConverter(columns) {
|
||||
return new Function("d", "return {" + columns.map(function(name, i) {
|
||||
return JSON.stringify(name) + ": d[" + i + "]";
|
||||
}).join(",") + "}");
|
||||
}
|
||||
|
||||
function customConverter(columns, f) {
|
||||
var object = objectConverter(columns);
|
||||
return function(row, i) {
|
||||
return f(object(row), i, columns);
|
||||
};
|
||||
}
|
||||
|
||||
// Compute unique columns in order of discovery.
|
||||
function inferColumns(rows) {
|
||||
var columnSet = Object.create(null),
|
||||
columns = [];
|
||||
|
||||
rows.forEach(function(row) {
|
||||
for (var column in row) {
|
||||
if (!(column in columnSet)) {
|
||||
columns.push(columnSet[column] = column);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
return columns;
|
||||
}
|
||||
|
||||
var dsv = function(delimiter) {
|
||||
var reFormat = new RegExp("[\"" + delimiter + "\n\r]"),
|
||||
DELIMITER = delimiter.charCodeAt(0);
|
||||
|
||||
function parse(text, f) {
|
||||
var convert, columns, rows = parseRows(text, function(row, i) {
|
||||
if (convert) return convert(row, i - 1);
|
||||
columns = row, convert = f ? customConverter(row, f) : objectConverter(row);
|
||||
});
|
||||
rows.columns = columns || [];
|
||||
return rows;
|
||||
}
|
||||
|
||||
function parseRows(text, f) {
|
||||
var rows = [], // output rows
|
||||
N = text.length,
|
||||
I = 0, // current character index
|
||||
n = 0, // current line number
|
||||
t, // current token
|
||||
eof = N <= 0, // current token followed by EOF?
|
||||
eol = false; // current token followed by EOL?
|
||||
|
||||
// Strip the trailing newline.
|
||||
if (text.charCodeAt(N - 1) === NEWLINE) --N;
|
||||
if (text.charCodeAt(N - 1) === RETURN) --N;
|
||||
|
||||
function token() {
|
||||
if (eof) return EOF;
|
||||
if (eol) return eol = false, EOL;
|
||||
|
||||
// Unescape quotes.
|
||||
var i, j = I, c;
|
||||
if (text.charCodeAt(j) === QUOTE) {
|
||||
while (I++ < N && text.charCodeAt(I) !== QUOTE || text.charCodeAt(++I) === QUOTE);
|
||||
if ((i = I) >= N) eof = true;
|
||||
else if ((c = text.charCodeAt(I++)) === NEWLINE) eol = true;
|
||||
else if (c === RETURN) { eol = true; if (text.charCodeAt(I) === NEWLINE) ++I; }
|
||||
return text.slice(j + 1, i - 1).replace(/""/g, "\"");
|
||||
}
|
||||
|
||||
// Find next delimiter or newline.
|
||||
while (I < N) {
|
||||
if ((c = text.charCodeAt(i = I++)) === NEWLINE) eol = true;
|
||||
else if (c === RETURN) { eol = true; if (text.charCodeAt(I) === NEWLINE) ++I; }
|
||||
else if (c !== DELIMITER) continue;
|
||||
return text.slice(j, i);
|
||||
}
|
||||
|
||||
// Return last token before EOF.
|
||||
return eof = true, text.slice(j, N);
|
||||
}
|
||||
|
||||
while ((t = token()) !== EOF) {
|
||||
var row = [];
|
||||
while (t !== EOL && t !== EOF) row.push(t), t = token();
|
||||
if (f && (row = f(row, n++)) == null) continue;
|
||||
rows.push(row);
|
||||
}
|
||||
|
||||
return rows;
|
||||
}
|
||||
|
||||
function format(rows, columns) {
|
||||
if (columns == null) columns = inferColumns(rows);
|
||||
return [columns.map(formatValue).join(delimiter)].concat(rows.map(function(row) {
|
||||
return columns.map(function(column) {
|
||||
return formatValue(row[column]);
|
||||
}).join(delimiter);
|
||||
})).join("\n");
|
||||
}
|
||||
|
||||
function formatRows(rows) {
|
||||
return rows.map(formatRow).join("\n");
|
||||
}
|
||||
|
||||
function formatRow(row) {
|
||||
return row.map(formatValue).join(delimiter);
|
||||
}
|
||||
|
||||
function formatValue(text) {
|
||||
return text == null ? ""
|
||||
: reFormat.test(text += "") ? "\"" + text.replace(/"/g, "\"\"") + "\""
|
||||
: text;
|
||||
}
|
||||
|
||||
return {
|
||||
parse: parse,
|
||||
parseRows: parseRows,
|
||||
format: format,
|
||||
formatRows: formatRows
|
||||
};
|
||||
};
|
||||
|
||||
var csv = dsv(",");
|
||||
|
||||
var csvParse = csv.parse;
|
||||
var csvParseRows = csv.parseRows;
|
||||
var csvFormat = csv.format;
|
||||
var csvFormatRows = csv.formatRows;
|
||||
|
||||
var tsv = dsv("\t");
|
||||
|
||||
var tsvParse = tsv.parse;
|
||||
var tsvParseRows = tsv.parseRows;
|
||||
var tsvFormat = tsv.format;
|
||||
var tsvFormatRows = tsv.formatRows;
|
||||
|
||||
exports.dsvFormat = dsv;
|
||||
exports.csvParse = csvParse;
|
||||
exports.csvParseRows = csvParseRows;
|
||||
exports.csvFormat = csvFormat;
|
||||
exports.csvFormatRows = csvFormatRows;
|
||||
exports.tsvParse = tsvParse;
|
||||
exports.tsvParseRows = tsvParseRows;
|
||||
exports.tsvFormat = tsvFormat;
|
||||
exports.tsvFormatRows = tsvFormatRows;
|
||||
|
||||
Object.defineProperty(exports, '__esModule', { value: true });
|
||||
|
||||
})));
|
||||
2
node_modules/d3-dsv/build/d3-dsv.min.js
generated
vendored
Normal file
2
node_modules/d3-dsv/build/d3-dsv.min.js
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
// https://d3js.org/d3-dsv/ Version 1.0.8. Copyright 2017 Mike Bostock.
|
||||
!function(r,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n(r.d3=r.d3||{})}(this,function(r){"use strict";function n(r){return new Function("d","return {"+r.map(function(r,n){return JSON.stringify(r)+": d["+n+"]"}).join(",")+"}")}var t={},e={},o=34,u=10,a=13,c=function(r){function c(r,n){function c(){if(m)return e;if(v)return v=!1,t;var n,c,i=d;if(r.charCodeAt(i)===o){for(;d++<s&&r.charCodeAt(d)!==o||r.charCodeAt(++d)===o;);return(n=d)>=s?m=!0:(c=r.charCodeAt(d++))===u?v=!0:c===a&&(v=!0,r.charCodeAt(d)===u&&++d),r.slice(i+1,n-1).replace(/""/g,'"')}for(;d<s;){if((c=r.charCodeAt(n=d++))===u)v=!0;else if(c===a)v=!0,r.charCodeAt(d)===u&&++d;else if(c!==p)continue;return r.slice(i,n)}return m=!0,r.slice(i,s)}var i,f=[],s=r.length,d=0,l=0,m=s<=0,v=!1;for(r.charCodeAt(s-1)===u&&--s,r.charCodeAt(s-1)===a&&--s;(i=c())!==e;){for(var h=[];i!==t&&i!==e;)h.push(i),i=c();n&&null==(h=n(h,l++))||f.push(h)}return f}function i(n){return n.map(f).join(r)}function f(r){return null==r?"":s.test(r+="")?'"'+r.replace(/"/g,'""')+'"':r}var s=new RegExp('["'+r+"\n\r]"),p=r.charCodeAt(0);return{parse:function(r,t){var e,o,u=c(r,function(r,u){if(e)return e(r,u-1);o=r,e=t?function(r,t){var e=n(r);return function(n,o){return t(e(n),o,r)}}(r,t):n(r)});return u.columns=o||[],u},parseRows:c,format:function(n,t){return null==t&&(t=function(r){var n=Object.create(null),t=[];return r.forEach(function(r){for(var e in r)e in n||t.push(n[e]=e)}),t}(n)),[t.map(f).join(r)].concat(n.map(function(n){return t.map(function(r){return f(n[r])}).join(r)})).join("\n")},formatRows:function(r){return r.map(i).join("\n")}}},i=c(","),f=i.parse,s=i.parseRows,p=i.format,d=i.formatRows,l=c("\t"),m=l.parse,v=l.parseRows,h=l.format,w=l.formatRows;r.dsvFormat=c,r.csvParse=f,r.csvParseRows=s,r.csvFormat=p,r.csvFormatRows=d,r.tsvParse=m,r.tsvParseRows=v,r.tsvFormat=h,r.tsvFormatRows=w,Object.defineProperty(r,"__esModule",{value:!0})});
|
||||
3
node_modules/d3-dsv/index.js
generated
vendored
Normal file
3
node_modules/d3-dsv/index.js
generated
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
export {default as dsvFormat} from "./src/dsv";
|
||||
export {csvParse, csvParseRows, csvFormat, csvFormatRows} from "./src/csv";
|
||||
export {tsvParse, tsvParseRows, tsvFormat, tsvFormatRows} from "./src/tsv";
|
||||
22
node_modules/d3-dsv/node_modules/commander/LICENSE
generated
vendored
Normal file
22
node_modules/d3-dsv/node_modules/commander/LICENSE
generated
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
(The MIT License)
|
||||
|
||||
Copyright (c) 2011 TJ Holowaychuk <tj@vision-media.ca>
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
'Software'), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
1237
node_modules/d3-dsv/node_modules/commander/index.js
generated
vendored
Normal file
1237
node_modules/d3-dsv/node_modules/commander/index.js
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
27
node_modules/d3-dsv/node_modules/commander/package.json
generated
vendored
Normal file
27
node_modules/d3-dsv/node_modules/commander/package.json
generated
vendored
Normal file
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"name": "commander",
|
||||
"version": "2.18.0",
|
||||
"description": "the complete solution for node.js command-line programs",
|
||||
"author": "TJ Holowaychuk <tj@vision-media.ca>",
|
||||
"license": "MIT",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/tj/commander.js.git"
|
||||
},
|
||||
"main": "index",
|
||||
"files": [
|
||||
"index.js",
|
||||
"typings/index.d.ts"
|
||||
],
|
||||
"dependencies": {},
|
||||
"devDependencies": {
|
||||
"@types/node": "^10.9.4",
|
||||
"eslint": "^5.5.0",
|
||||
"should": "^13.2.3",
|
||||
"sinon": "^6.2.0",
|
||||
"standard": "^12.0.1",
|
||||
"ts-node": "^7.0.1",
|
||||
"typescript": "^2.9.2"
|
||||
},
|
||||
"typings": "typings/index.d.ts"
|
||||
}
|
||||
42
node_modules/d3-dsv/package.json
generated
vendored
Normal file
42
node_modules/d3-dsv/package.json
generated
vendored
Normal file
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"name": "d3-dsv",
|
||||
"version": "1.0.8",
|
||||
"description": "A parser and formatter for delimiter-separated values, such as CSV and TSV",
|
||||
"homepage": "https://d3js.org/d3-dsv/",
|
||||
"license": "BSD-3-Clause",
|
||||
"author": {
|
||||
"name": "Mike Bostock",
|
||||
"url": "http://bost.ocks.org/mike"
|
||||
},
|
||||
"main": "build/d3-dsv.js",
|
||||
"module": "index",
|
||||
"jsnext:main": "index.js",
|
||||
"bin": {
|
||||
"csv2json": "bin/dsv2json",
|
||||
"csv2tsv": "bin/dsv2dsv",
|
||||
"dsv2dsv": "bin/dsv2dsv",
|
||||
"dsv2json": "bin/dsv2json",
|
||||
"json2csv": "bin/json2dsv",
|
||||
"json2dsv": "bin/json2dsv",
|
||||
"json2tsv": "bin/json2dsv",
|
||||
"tsv2csv": "bin/dsv2dsv",
|
||||
"tsv2json": "bin/dsv2json"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/d3/d3-dsv.git"
|
||||
},
|
||||
"dependencies": {
|
||||
"commander": "2",
|
||||
"iconv-lite": "0.4",
|
||||
"rw": "1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"csv-spectrum": "1",
|
||||
"eslint": "4",
|
||||
"package-preamble": "0.1",
|
||||
"rollup": "0.49",
|
||||
"tape": "4",
|
||||
"uglify-js": "3"
|
||||
}
|
||||
}
|
||||
9
node_modules/d3-dsv/rollup.config.js
generated
vendored
Normal file
9
node_modules/d3-dsv/rollup.config.js
generated
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
export default {
|
||||
input: "index",
|
||||
output: {
|
||||
extend: true,
|
||||
file: "build/d3-dsv.js",
|
||||
format: "umd",
|
||||
name: "d3"
|
||||
}
|
||||
};
|
||||
8
node_modules/d3-dsv/src/csv.js
generated
vendored
Normal file
8
node_modules/d3-dsv/src/csv.js
generated
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
import dsv from "./dsv";
|
||||
|
||||
var csv = dsv(",");
|
||||
|
||||
export var csvParse = csv.parse;
|
||||
export var csvParseRows = csv.parseRows;
|
||||
export var csvFormat = csv.format;
|
||||
export var csvFormatRows = csv.formatRows;
|
||||
127
node_modules/d3-dsv/src/dsv.js
generated
vendored
Normal file
127
node_modules/d3-dsv/src/dsv.js
generated
vendored
Normal file
@@ -0,0 +1,127 @@
|
||||
var EOL = {},
|
||||
EOF = {},
|
||||
QUOTE = 34,
|
||||
NEWLINE = 10,
|
||||
RETURN = 13;
|
||||
|
||||
function objectConverter(columns) {
|
||||
return new Function("d", "return {" + columns.map(function(name, i) {
|
||||
return JSON.stringify(name) + ": d[" + i + "]";
|
||||
}).join(",") + "}");
|
||||
}
|
||||
|
||||
function customConverter(columns, f) {
|
||||
var object = objectConverter(columns);
|
||||
return function(row, i) {
|
||||
return f(object(row), i, columns);
|
||||
};
|
||||
}
|
||||
|
||||
// Compute unique columns in order of discovery.
|
||||
function inferColumns(rows) {
|
||||
var columnSet = Object.create(null),
|
||||
columns = [];
|
||||
|
||||
rows.forEach(function(row) {
|
||||
for (var column in row) {
|
||||
if (!(column in columnSet)) {
|
||||
columns.push(columnSet[column] = column);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
return columns;
|
||||
}
|
||||
|
||||
export default function(delimiter) {
|
||||
var reFormat = new RegExp("[\"" + delimiter + "\n\r]"),
|
||||
DELIMITER = delimiter.charCodeAt(0);
|
||||
|
||||
function parse(text, f) {
|
||||
var convert, columns, rows = parseRows(text, function(row, i) {
|
||||
if (convert) return convert(row, i - 1);
|
||||
columns = row, convert = f ? customConverter(row, f) : objectConverter(row);
|
||||
});
|
||||
rows.columns = columns || [];
|
||||
return rows;
|
||||
}
|
||||
|
||||
function parseRows(text, f) {
|
||||
var rows = [], // output rows
|
||||
N = text.length,
|
||||
I = 0, // current character index
|
||||
n = 0, // current line number
|
||||
t, // current token
|
||||
eof = N <= 0, // current token followed by EOF?
|
||||
eol = false; // current token followed by EOL?
|
||||
|
||||
// Strip the trailing newline.
|
||||
if (text.charCodeAt(N - 1) === NEWLINE) --N;
|
||||
if (text.charCodeAt(N - 1) === RETURN) --N;
|
||||
|
||||
function token() {
|
||||
if (eof) return EOF;
|
||||
if (eol) return eol = false, EOL;
|
||||
|
||||
// Unescape quotes.
|
||||
var i, j = I, c;
|
||||
if (text.charCodeAt(j) === QUOTE) {
|
||||
while (I++ < N && text.charCodeAt(I) !== QUOTE || text.charCodeAt(++I) === QUOTE);
|
||||
if ((i = I) >= N) eof = true;
|
||||
else if ((c = text.charCodeAt(I++)) === NEWLINE) eol = true;
|
||||
else if (c === RETURN) { eol = true; if (text.charCodeAt(I) === NEWLINE) ++I; }
|
||||
return text.slice(j + 1, i - 1).replace(/""/g, "\"");
|
||||
}
|
||||
|
||||
// Find next delimiter or newline.
|
||||
while (I < N) {
|
||||
if ((c = text.charCodeAt(i = I++)) === NEWLINE) eol = true;
|
||||
else if (c === RETURN) { eol = true; if (text.charCodeAt(I) === NEWLINE) ++I; }
|
||||
else if (c !== DELIMITER) continue;
|
||||
return text.slice(j, i);
|
||||
}
|
||||
|
||||
// Return last token before EOF.
|
||||
return eof = true, text.slice(j, N);
|
||||
}
|
||||
|
||||
while ((t = token()) !== EOF) {
|
||||
var row = [];
|
||||
while (t !== EOL && t !== EOF) row.push(t), t = token();
|
||||
if (f && (row = f(row, n++)) == null) continue;
|
||||
rows.push(row);
|
||||
}
|
||||
|
||||
return rows;
|
||||
}
|
||||
|
||||
function format(rows, columns) {
|
||||
if (columns == null) columns = inferColumns(rows);
|
||||
return [columns.map(formatValue).join(delimiter)].concat(rows.map(function(row) {
|
||||
return columns.map(function(column) {
|
||||
return formatValue(row[column]);
|
||||
}).join(delimiter);
|
||||
})).join("\n");
|
||||
}
|
||||
|
||||
function formatRows(rows) {
|
||||
return rows.map(formatRow).join("\n");
|
||||
}
|
||||
|
||||
function formatRow(row) {
|
||||
return row.map(formatValue).join(delimiter);
|
||||
}
|
||||
|
||||
function formatValue(text) {
|
||||
return text == null ? ""
|
||||
: reFormat.test(text += "") ? "\"" + text.replace(/"/g, "\"\"") + "\""
|
||||
: text;
|
||||
}
|
||||
|
||||
return {
|
||||
parse: parse,
|
||||
parseRows: parseRows,
|
||||
format: format,
|
||||
formatRows: formatRows
|
||||
};
|
||||
}
|
||||
8
node_modules/d3-dsv/src/tsv.js
generated
vendored
Normal file
8
node_modules/d3-dsv/src/tsv.js
generated
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
import dsv from "./dsv";
|
||||
|
||||
var tsv = dsv("\t");
|
||||
|
||||
export var tsvParse = tsv.parse;
|
||||
export var tsvParseRows = tsv.parseRows;
|
||||
export var tsvFormat = tsv.format;
|
||||
export var tsvFormatRows = tsv.formatRows;
|
||||
Reference in New Issue
Block a user