https://github.com/mann-conomy/vdf-utils
A Node.js utility library for parsing and converting objects in Valve's Data File (VDF) format.
https://github.com/mann-conomy/vdf-utils
format mann-conomy nodejs parser steam typescript valve vdf
Last synced: 3 months ago
JSON representation
A Node.js utility library for parsing and converting objects in Valve's Data File (VDF) format.
- Host: GitHub
- URL: https://github.com/mann-conomy/vdf-utils
- Owner: Mann-Conomy
- License: mit
- Created: 2024-11-10T11:04:23.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-09-03T16:22:30.000Z (9 months ago)
- Last Synced: 2025-09-22T16:11:23.962Z (9 months ago)
- Topics: format, mann-conomy, nodejs, parser, steam, typescript, valve, vdf
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/@mann-conomy/vdf-utils
- Size: 66.4 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# vdf-utils
A Node.js utility library for parsing and converting objects in Valve's Data File (VDF) format.
[](https://npmjs.com/package/@mann-conomy/vdf-utils)
[](https://npmjs.com/package/@mann-conomy/vdf-utils)
[](https://nodejs.org/en/about/releases/)
[](https://github.com/Mann-Conomy/vdf-utils/blob/main/.github/workflows/test.yml)
[](https://github.com/Mann-Conomy/vdf-utils/blob/main/LICENSE)
## Installation
Using [npm](https://www.npmjs.com/package/@mann-conomy/vdf-utils):
```bashf
$ npm install @mann-conomy/vdf-utils
```
Using [yarn](https://yarnpkg.com/package/@mann-conomy/vdf-utils):
```bash
$ yarn add @mann-conomy/vdf-utils
```
## Testing
Using [npm](https://docs.npmjs.com/cli/v8/commands/npm-run-script):
```bash
$ npm test
```
Using [yarn](https://classic.yarnpkg.com/lang/en/docs/cli/run/):
```bash
$ yarn test
```
## Examples
Parsing item schemas from Team Fortress 2 into JavaScript objects.
```js
import { readFile } from "fs/promises";
import { VDF } from "@mann-conomy/vdf-utils";
import type { ItemSchema } from "@mann-conomy/tf-schema";
(async () => {
try {
// Fetch the item schema from the Steam Web API
const response = await fetch("https://media.steampowered.com/apps/440/scripts/items/items_game.bdc614ad776fb2d43c1f247fce870485d2299152.txt");
const file = await response.text();
// Parse the result into an ItemSchema object
const { items_game } = VDF.parse(file);
console.log(items_game.qualities.vintage.value); // 3
console.log(items_game.qualities.strange.value); // 11
} catch (error) {
console.error("Error parsing item schema", error.message);
}
})();
```
Converting JavaScript objects into VDF-formatted strings.
```js
import { VDF } from "@mann-conomy/vdf-utils";
const countries = {
lang: {
Language: "english",
Tokens: {
Steam_Country_US: "United States",
Steam_Country_AU: "Australia"
Steam_Country_GB: "United Kingdom"
}
}
}
try {
const result = VDF.stringify(countries);
console.log(result)
/**
* "lang"
* {
* "Language" "english"
* "Tokens"
* {
* "Steam_Country_US" "United States"
* "Steam_Country_AU" "Australia"
* "Steam_Country_GB" "United Kingdom"
* }
* }
*/
} catch (error) {
console.error("Error converting countries to VDF", error.message);
}
```
Some more examples are available in the [examples](https://github.com/Mann-Conomy/vdf-utils/tree/main/examples) and [test](https://github.com/Mann-Conomy/vdf-utils/tree/main/test) directories.
## Documentation
See the [Wiki pages](https://github.com/Mann-Conomy/vdf-utils/wiki) for further documentation.
## License
[MIT](LICENSE)
Copyright 2025, The Mann-Conomy Project