Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/leops/vmfparser
A small VMF to JSON parser
https://github.com/leops/vmfparser
javascript parser source-engine vmf
Last synced: 2 days ago
JSON representation
A small VMF to JSON parser
- Host: GitHub
- URL: https://github.com/leops/vmfparser
- Owner: leops
- Created: 2014-09-24T13:50:27.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2019-09-25T17:21:00.000Z (over 5 years ago)
- Last Synced: 2025-01-18T17:42:58.893Z (28 days ago)
- Topics: javascript, parser, source-engine, vmf
- Language: TypeScript
- Size: 13.7 KB
- Stars: 20
- Watchers: 3
- Forks: 3
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
VMFParser
=============VMF is the format used by the Hammer editor to store maps before their
compilation. Since VMF has a syntax similar to JSON, I decided to write a VMF
parser in JavaScript. I have no idea why.The code is interesting because it's doesn't have to be a map you're parsing.
You can actually use the VMF format to store any kind of data, JSON like.See `test/example.js` for an usage example.
## Usage
The module exports a single `parse(input, options)` function. The `input` is a
VMF source string, and `options` is an optional object with the following
properties:- `ast`: If true, will return the Abstract Syntax Tree instead of the
transformed object.## Multiple values per-key
This is a unique functionnality of VMF, non-existent in JSON: the ability to
have multiple key with the same name but different values. Here's an example :```JSON
{
"someKey": 42,
"someKey": "someValue"
}
```If you try to parse this, you'll obtain this JS object :
```JS
{
someKey: "someValue"
}
```But with VMF, you can do this:
```VMF
"someKey" "42"
"someKey" "someValue"
```And you'll get this object instead :
```JS
{
someKey: ["42", "someValue"]
}
```