aboutsummaryrefslogtreecommitdiffstats
path: root/csv.mjs
diff options
context:
space:
mode:
Diffstat (limited to 'csv.mjs')
-rw-r--r--csv.mjs79
1 files changed, 0 insertions, 79 deletions
diff --git a/csv.mjs b/csv.mjs
deleted file mode 100644
index b096ab4..0000000
--- a/csv.mjs
+++ /dev/null
@@ -1,79 +0,0 @@
-export default class {
- constructor() {
- this.state = this.awaitingTokenOrComma;
- this.inProgress = '';
- this._rowResults = [];
- this._results = [];
- }
-
- push(c) {
- this.state(c);
- }
-
- get results() {
- return this._results.concat([this._rowResults.concat([this.inProgress])]);
- }
-
- awaitingTokenOrComma(c) {
- switch (c) {
- case ',':
- // empty column
- this._rowResults.push('');
- break;
- case '\n':
- this._results.push(this._rowResults);
- this._rowResults = [];
- break;
- default:
- if (/\s/.test(c)) {
- return;
- }
- this.inProgress += c;
- this.state = this.awaitingComma;
- }
- }
-
- awaitingComma(c) {
- switch (c) {
- case ',':
- this._rowResults.push(this.inProgress);
- this.inProgress = '';
- this.state = this.awaitingTokenOrComma;
- break;
- case '\r':
- break;
- case '\n':
- this._results.push(this._rowResults.concat(this.inProgress));
- this._rowResults = [];
- this.inProgress = '';
- this.state = this.awaitingTokenOrComma;
- break;
- case '"':
- this.state = this.checkForDoubleQuote;
- break;
- default:
- this.inProgress += c;
- }
- }
-
- checkForDoubleQuote(c) {
- this.inProgress += c
- switch (c) {
- case '"':
- this.state = this.awaitingComma;
- break;
- default:
- this.state = this.awaitingQuote;
- }
- }
-
- awaitingQuote(c) {
- switch (c) {
- case '"':
- this.state = this.awaitingComma;
- break;
- default:
- this.inProgress += c;
- }
- }
-}