toml-paser

A TOML parser for node.js

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 } } }
    > 

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

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.

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