From c3837aa93778770c4e93099cbffbb3e519a35116 Mon Sep 17 00:00:00 2001 From: Denis Bardadym Date: Wed, 26 Sep 2018 15:36:45 +0300 Subject: [PATCH 1/3] Skip strange PG array prefix if presented --- index.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/index.js b/index.js index 1b2c110..95d0312 100644 --- a/index.js +++ b/index.js @@ -48,8 +48,18 @@ ArrayParser.prototype.newEntry = function (includeEmpty) { } } +ArrayParser.prototype.skipPrefix = function() { + if (this.source[0] === "[") { + while (!this.isEof()) { + var char = this.nextCharacter() + if (char.value === "=") break + } + } +} + ArrayParser.prototype.parse = function (nested) { var character, parser, quote + this.skipPrefix() while (!this.isEof()) { character = this.nextCharacter() if (character.value === '{' && !quote) { From f1776d7e6ade33a8af9d6465a99596fad660a4f7 Mon Sep 17 00:00:00 2001 From: Denis Bardadym Date: Wed, 26 Sep 2018 15:37:14 +0300 Subject: [PATCH 2/3] Add test for PG prefix --- test.js | 1 + 1 file changed, 1 insertion(+) diff --git a/test.js b/test.js index 6512e00..d15b7e6 100644 --- a/test.js +++ b/test.js @@ -15,6 +15,7 @@ test(function (t) { var integer = ap.partialRight(array.parse, ap.partialRight(parseInt, 10)) t.deepEqual(integer('{1,2,3}'), [1, 2, 3], 'numerics') + t.deepEqual(integer('[0:2]={1,2,3}'), [1, 2, 3], 'numerics') t.end() }) From 6f49757dd60942fa53114b94b45c158102653053 Mon Sep 17 00:00:00 2001 From: Denis Bardadym Date: Thu, 27 Sep 2018 13:20:58 +0300 Subject: [PATCH 3/3] Correct name of method and standard style --- index.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/index.js b/index.js index 95d0312..ead2a65 100644 --- a/index.js +++ b/index.js @@ -48,18 +48,18 @@ ArrayParser.prototype.newEntry = function (includeEmpty) { } } -ArrayParser.prototype.skipPrefix = function() { - if (this.source[0] === "[") { +ArrayParser.prototype.consumeDimensions = function () { + if (this.source[0] === '[') { while (!this.isEof()) { var char = this.nextCharacter() - if (char.value === "=") break + if (char.value === '=') break } } } ArrayParser.prototype.parse = function (nested) { var character, parser, quote - this.skipPrefix() + this.consumeDimensions() while (!this.isEof()) { character = this.nextCharacter() if (character.value === '{' && !quote) {