Is a TOML parser something that node-red wishes to support or has planned?

Potential Feature Request

Since the node-RED eco-system has the most common serialization parsers, namely,

  • XML
  • JSON
  • YAML

Would a possible parser be planned for TOML?

Information

Tom's Obvious Markup Language

TOML aims to be a minimal configuration file format that's easy to read due to obvious semantics. TOML is designed to map unambiguously to a hash table. TOML should be easy to parse into data structures in a wide variety of languages.

Implementations

based on the TOML's Wiki there are implementations for v1.0.0 compliant parsers

Based on some quick reviews: @ltd/j-toml - npm is the one maintained well.

Is there something planned?

Not planned (as not heard of it until now :slight_smile: ).... but certainly could be a contribute node if someone wanted to create it.

Agree with Dave that it would make a good contributed node. You would probably do well to clone the YAML node and adjust it to use a TOML library. There appear to be at least a couple of TOML libraries for Node.js.

2 Likes

@dceejay and @TotallyInformation I have actually tried it out and have succesfully made a TOML parser node. I only ask for some co-ordination with the core team to help sending a Pull Request / Patch upstream.

Maybe @knolleary or @Steve-Mcl can help answer some questions:

There is also some query regarding using the Template Node and providing some TOML Syntax Highlighting within it.

I was trying find some documentation on contributing the code, but I am not sure what the general pattern is:

  • Which package.json files to change when working with core. There seems to be two or more in the complete project.
  • How to adapt the Template Node to have TOML highlight
  • What kind of test should I write?
  • is a package with @ allowed? e.g. @<username>/toml:<version>
  • Do I have to open an Issue with description before sending a Pull Request?
  • Do I need to showcase the node to the core team members in a call or on some forum first?

Hi

you don't need to raise a PR at all - you can create and publish your own node independently - Creating Nodes : Node-RED
And then you can name it as per the packaging guidelines (and yes it can be namespaced)

1 Like

Oh! okay, I thought it would be be nice to have it under all the standard parsers palette. Either way, I will be able to provide something to the community

You can still do that, each custom node chooses what category it wants to live under.