Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/master' into klntsky/bytearray-type
Browse files Browse the repository at this point in the history
  • Loading branch information
klntsky committed Jan 26, 2022
2 parents 6b093a6 + 1c116c5 commit ee2a637
Show file tree
Hide file tree
Showing 23 changed files with 647 additions and 148 deletions.
4 changes: 2 additions & 2 deletions .gitignore
@@ -1,5 +1,4 @@
/bower_components/
/node_modules/
/.pulp-cache/
/output/
/generated-docs/
Expand All @@ -13,6 +12,7 @@ result
result-*
.envrc
.direnv
node_modules
/node_modules
/node_modules/
.node
.node-cfg
@@ -0,0 +1 @@
["0","12","-1","1.5","-1.431","1123098123928347023894729384","1\"k\"0","10","10E-20","-2.5324e-23",null,false,true,"10"]
@@ -0,0 +1 @@
{"10":"10.5","1 0":null,"1\"0":"10","2\"0":"-20e-20","nest":[{"a":"10e-20"},{"b":false}]}
@@ -0,0 +1 @@
{"a":"\\\\","b":"123"}
1 change: 1 addition & 0 deletions fixtures/test/parsing/json_stringify_numbers/input/t1.json
@@ -0,0 +1 @@
[0,12,-1,1.5,-1.431,1123098123928347023894729384,"1\"k\"0","10",10E-20,-2.5324e-23,null,false,true,10]
10 changes: 10 additions & 0 deletions fixtures/test/parsing/json_stringify_numbers/input/t2.json
@@ -0,0 +1,10 @@
{
"10": 10.5,
"1 0": null,
"1\"0": 10,
"2\"0": "-20e-20",
"nest": [
{"a":10e-20},
{"b":false}
]
}
1 change: 1 addition & 0 deletions fixtures/test/parsing/json_stringify_numbers/input/t3.json
@@ -0,0 +1 @@
{"a":"\\\\","b":123}
1 change: 1 addition & 0 deletions nix/dev-shell.nix
Expand Up @@ -18,6 +18,7 @@ pkgs.mkShell {
spago
purescript-language-server
purty
pscid
spago2nix
pkgs.nodePackages.node2nix
nodejs
Expand Down
29 changes: 16 additions & 13 deletions node-packages.nix

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

158 changes: 80 additions & 78 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

24 changes: 24 additions & 0 deletions spago-packages.nix

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 7 additions & 4 deletions spago.dhall
Expand Up @@ -18,27 +18,30 @@ You can edit this file as you like.
, "exceptions"
, "foldable-traversable"
, "foreign-object"
, "gen"
, "identity"
, "maybe"
, "medea"
, "mote"
, "node-buffer"
, "node-fs-aff"
, "node-path"
, "nonempty"
, "ordered-collections"
, "prelude"
, "psci-support"
, "quickcheck"
, "quickcheck-laws"
, "rationals"
, "refs"
, "spec"
, "strings"
, "transformers"
, "tuples"
, "uint"
, "undefined"
, "unordered-collections"
]
, packages = ./packages.dhall
, sources =
[ "src/**/*.purs"
, "test/**/*.purs"
]
, sources = [ "src/**/*.purs", "test/**/*.purs" ]
}
53 changes: 53 additions & 0 deletions src/Helpers.js
@@ -0,0 +1,53 @@

// jsonTurnNumbersToStrings :: String -> String
exports.jsonTurnNumbersToStrings = (str) => {
const s = String(str);

var arr = [];
var prev_in_number = false;
var in_number = false;
var in_string = false;
var escaped = -1;

for (var i = 0, n = s.length; i < n; ++i) {
const c = s[i];
// set the escape flag
if (in_string && escaped!=i){
if (c == "\\"){
escaped = i+1;
}
}
// set in_string flag
if (c == '"' && escaped!=i) {
in_string = !in_string;
}
// set in_number flag and quote numbers
if(!in_string){
if (c >= '0' && c <= '9' || c == '-') {
in_number=true;
}
// assuming a number can only end with:
if (c == ',' || c == '}' || c == ']' || /\s/.test(c)){
if(in_number){
arr.push("\"");
}
in_number=false;
}
if(in_number){
if(!prev_in_number){
arr.push("\"");
}
}
prev_in_number = in_number;
}
// push char if in string or is not a whitespace
if(in_string || !/\s/.test(c)){
arr.push(c);
}
}
// simple number case - close with quote
if (!in_string && in_number){
arr.push("\"");
}
return arr.join('');
};

0 comments on commit ee2a637

Please sign in to comment.