silver-fleece
v1.2.1
Published
Parse and manipulate JSON strings
Downloads
45,989
Readme
silver-fleece
Forked from golden-fleece but adjusted and simplified to parse normal JSON with comments. This makes it a bit faster, and the output will always be parsable by standard JSON parsers (comments are only added if you add them).
Why?
Patching files like package.json or tsconfig.json.
Usage
Install it with npm install silver-fleece and import it into your app:
import * as fleece from 'silver-fleece';fleece.parse(str, [options])
const ast = fleece.parse(`true`);
// { start: 0, end: 4, type: 'Literal', raw: 'true', value: true }The returned AST is ESTree compliant.
You can optionally pass callbacks that are fired whenever a value or comment is encountered:
const ast = fleece.parse(str, {
onComment: comment => {
console.log('got a comment', comment);
},
onValue: value => {
console.log('got a value', value);
}
});fleece.evaluate(str)
const { answer } = fleece.evaluate(`{ "answer": 42 }`);
answer === 42; // truefleece.patch(str, value)
This is where it gets fun:
const str = `
"number": 1,
"string": "yes",
"object": { "nested": true },
"array": ["this", "that", "the other"]
`;
const object = fleece.evaluate(str);
object.number = 42;
object.array[2] = 'EVERYTHING';
fleece.patch(str, object) === `{
"number": 42,
"string": "yes",
"object": { "nested": true },
"array": ["this", "that", "EVERYTHING"]
}`; // trueNotice that the formatting has been preserved.
fleece.stringify(value, [options])
const object = {
string: 'hello',
'quoted-property': 2,
array: [3, 4]
};
fleece.stringify(object) === `{
"string": "hello",
"quoted-property": 2,
"array": [
3,
4
]
}`; // trueTo indent with spaces instead of tabs, pass spaces: n, where n is the number of spaces at each level of indentation.
fleece.stringify(object, {
spaces: 2
}) === `{
"string": "hello",
"quoted-property": 2,
"array": [
3,
4
]
}`; // trueLicense and copyright
Original golden-fleece code is owned and copyrighted by Rich Harris and other contributors. They have released their contributions under the LIL license.
The silver-fleece changes are written by Evert Heylen and other contributors and are also released under the same LIL license.
