toml-paser

A TOML parser for node.js

npm install toml-paser
16 downloads in the last month

TOML.js

    apbmba:toml aaronblohowiak$ node
    > toml = require('toml-parser')
    [Function: parse]
    > str = require('fs').readFileSync('./toml/example.toml', 'utf-8')
    '# This is a TOML document. Boom.\n\ntitle = "TOML Example"\n\n[owner]\nname = "Tom Preston-Werner"\norganization = "GitHub"\nbio = "GitHub Cofounder & CEO\\nLikes tater tots and beer."\ndob = 1979-05-27T07:32:00Z # First class dates? Why not?\n\n[database]\nserver = "192.168.1.1"\nports = [ "8001", "8001", "8002" ]\nconnection_max = 5000\n\n[servers]\n\n  # You can indent as you please. Tabs or spaces. TOML don\'t care.\n  [servers.alpha]\n  ip = "10.0.0.1"\n  dc = "eqdc10"\n\n  [servers.beta]\n  ip = "10.0.0.2"\n  dc = "eqdc10"\n\n\n\n'
    > toml(str)
    { title: 'TOML Example',
      owner: 
       { name: 'Tom Preston-Werner',
         organization: 'GitHub',
         bio: 'GitHub Cofounder & CEO\nLikes tater tots and beer.',
         dob: Sun May 27 1979 00:32:00 GMT-0700 (PDT) },
      database: 
       { server: '192.168.1.1',
         ports: [ '8001', '8001', '8002' ],
         connection_max: 5000 },
      servers: 
       { alpha: { ip: '10.0.0.1', dc: 'eqdc10' },
         beta: 
          { ip: '10.0.0.2',
            dc: 'eqdc10',
            negative: -10,
            negativeFloat: -0.13 } } }
    > 

Compliance

toml.js is fully-compliant in feature support and in error conditions

Error handling

For most errors, the string will fail during parsing and an error will be raised giving the character index of the last known good position. For some errors, such as the presence of \r and \0, the error will be raised at value generation time.

Install:

npm install toml-parser

Use:

> require('toml-parser')("hi=3")
{ hi: 3 }
npm loves you