VDF is a module to convert Valve's KeyValue format to JSON and back using Typescript.
Heavily inspired by simple-vdf
(
< v2.0.0
can be used as a drop-in replacement)
You can install VDF through the command line by using the following command:
yarn add @node-steam/vdf
import * as VDF from '@node-steam/vdf';
// or
import {
parse,
stringify,
} from '@node-steam/vdf';
Parse a VDF string into a JSON object
const string = `
"string" "string"
"false" "false"
"true" "true"
"number" "1234"
"float" "12.34"
"null" "null"
"undefined" "undefined"
"nested"
{
"string" "string"
"deep"
{
"string" "string"
}
}
`;
const object = VDF.parse(string);
// or
const object = parse(string);
> {
string: 'string',
false: false,
true: true,
number: 1234,
float: 12.34,
null: null,
undefined: undefined,
nested: {
string: 'string',
deep: {
string: 'string',
},
},
};
Parse a JSON object into a VDF string
const object = {
string: 'string',
false: false,
true: true,
number: 1234,
float: 12.34,
null: null,
undefined: undefined,
nested: {
string: 'string',
deep: {
string: 'string',
},
},
};
const string = VDF.stringify(object);
// or
const string = stringify(object);
> `
"string" "string"
"false" "false"
"true" "true"
"number" "1234"
"float" "12.34"
"null" "null"
"undefined" "undefined"
"nested"
{
"string" "string"
"deep"
{
"string" "string"
}
}
`;
Differences from simple-vdf
- Correct parsing of
booleans
,numbers
,null
andundefined
(>= v2.0.0
) - ES6 // Typescript syntax
- Typescript definitions
- Modern ES6 tests
- Silas Rech aka. lenovouser
Interested in contributing to VDF? Contributions are welcome, and are accepted via pull requests. Please review these guidelines before submitting any pull requests.
Installing dependencies:
yarn
Compile:
yarn compile
Test:
yarn test
Generate Docs:
yarn docs
This module is thoroughly tested with ava