j-toml
j-toml copied to clipboard
Can't Parse a Stringified example.
I try to stringify
the readme example and then parse
it and it returns an error. Am I doing it wrong?
Script
import TOML from "@ltd/j-toml";
const test = TOML.stringify({
key: "value",
dotted: {
key: "value",
},
inlineTable: TOML.inline({ key: "value" }),
mix: {
key: "value",
table: TOML.Section({
key: "value",
}),
},
table: TOML.Section({
key: "value",
table: TOML.Section({
key: "value",
}),
}),
});
const rootTable = TOML.parse(test);
Returns
PS C:\Users\User Name\Files\My Project\app> node helpers/configFile.js
file:///C:/Users/User%20Name/Files/My%20Project/app/node_modules/@ltd/j-toml/index.mjs:2230
if ( typeof sourcePath!=='string' ) { throw TypeError$1('TOML.parse(source.path)'); }
^
TypeError: TOML.parse(source.path)
at parse (file:///C:/Users/User%20Name/Files/My%20Project/app/node_modules/@ltd/j-toml/index.mjs:2230:49)
at Module.parse (file:///C:/Users/User%20Name/Files/My%20Project/app/node_modules/@ltd/j-toml/index.mjs:2293:6)
at file:///C:/Users/User%20Name/Files/V%20Rising/app/helpers/configFile.js:38:24
at ModuleJob.run (node:internal/modules/esm/module_job:198:25)
at async Promise.all (index 0)
at async ESMLoader.import (node:internal/modules/esm/loader:409:24)
at async loadESM (node:internal/process/esm_loader:85:5)
at async handleMainPromise (node:internal/modules/run_main:61:12)
Node.js v17.9.0
@meyverick Sorry for replying late. TOML.stringify
returns an array of strings, if there is no options.newline
, because the lib doesn't know use what to join lines.
See the docs:
- https://github.com/LongTengDao/j-toml/tree/master/docs/English#optionsnewline
- https://github.com/LongTengDao/j-toml/tree/master/docs/English#return-2
When you pass it into TOML.parse
, it throws, because TOML.parse
only accept string | Buffer | { path, data }
currently.
I may (or may not) add this feature (parsing array of lines) in the future.
To help users to notice that TOML.stringify
WON'T return string while there is no option newline
, currently I don't add the feature that supporting parsing array of lines, and I make it more friendly to notice that since v1.33.0.
When users widely know the options.newline
, I will add the feature of parsing array; or I found users will never remember that, then I may remove the feature that TOML.stringify
returning array.