11-- MIT License - Copyright (c) 2019 Void (cryon.io)
2+ local decoder = require " hjson.decoder"
3+ local encoder = require " hjson.encoder"
4+ local encoderH = require " hjson.encoderH"
25
3- local decoder = require " hjson.decoder"
4- local encoder = require " hjson.encoder"
5- local encoderH = require " hjson.encoderH"
6-
7- local function decode (str , strict , object_hook , object_pairs_hook )
6+ local function decode (str , strict , object_hook , object_pairs_hook )
87 local _decoder = decoder :new (strict , object_hook , object_pairs_hoo )
98 return _decoder :decode (str )
109end
1110
12- local function encode_json (obj , indent , skipkeys )
13- local _encoder = encoder :new (indent , skipkeys )
11+ -- options = {indent, skipkeys, sort_keys, item_sort_key, invalidObjectsAsType}
12+ local function encode_json (obj , options )
13+ local _encoder = encoder :new (options )
1414 return _encoder :encode (obj )
1515end
1616
17- local function encode (obj , indent , skipkeys , sort_keys , item_sort_key )
18- local forward = false
19- if indent == " " or indent == false or indent == 0 then
20- return encode_json (obj , indent , skipkeys )
17+ -- options = {indent, skipkeys, sort_keys, item_sort_key, invalidObjectsAsType}
18+ local function encode (obj , options )
19+ if type (options ) ~= " table" then
20+ options = {}
21+ end
22+
23+ if options .indent == " " or options .indent == false or options .indent == 0 then
24+ return encode_json (obj , options )
2125 end
22- local _encoderH = encoderH :new (indent , skipkeys , sort_keys , item_sort_key )
26+ local _encoderH = encoderH :new (options )
2327 return _encoderH :encode (obj )
2428end
2529
@@ -28,8 +32,8 @@ local hjson = {
2832 stringify = encode ,
2933 encode_to_json = encode_json ,
3034 stringify_to_json = encode_json ,
31- decode = decode ,
35+ decode = decode ,
3236 parse = decode
3337}
3438
35- return hjson
39+ return hjson
0 commit comments