Language Features

The following features are currently available. Pulsar is under active development so expect refinements and additions. You can also extend it with javascript functionality of your own if you are missing anything.

General Capabilities of the Language

  • Ability to export any code output, regardless of the language

  • Access to Supernova Computing Engine (token resolution and so on)

  • Access to Supernova Design System Model

Language capabilities

  • Statically defined content

  • Dynamically defined and computed content

  • Data transformers

    • String transformers and String Lib

    • Numeric transformers and Math Lib

    • Array transformers

    • Object transformers

    • Support transformers

  • Control Flows

    • If, else if, else, chaining

    • Switch, cases, default, chaining

    • Loops and iterators, including recursive ones

  • Scoped variables and constants

  • Global variables

  • Global, multi-blueprint variables and context passing

  • Injectable blueprints, nested blueprints, emitted blueprints

  • Injections and inclusions

  • Emitters

  • Debug Logging

  • Pre-defined functions to retrieve any piece of the data model

  • Single and multi-line comments

  • Full UTF-8 support

  • Option to produce multiple results/files from a single blueprint

  • Boolean logic using functions such as @and, @or, and others

  • Math library using functions such as @sum, @add, and others

  • Custom functions

Developing the Blueprints

When developing blueprints, it is vitally important to have all the best tools to make development a breeze. Pulsar ships with a toolchain that allows you to quickly build, test, and ship blueprints, speeding up your developer efficiency dramatically.

  • Suggestions and autocomplete engine, even for incomplete blueprints

  • Blueprint to file system mapping

  • Debugging and error handling

  • Syntax highlight, even for incomplete blueprints

  • Debug console

  • Full VS Code integration

In the following parts, we'll go through what functions, transformers, and flows are available. If you are interested in specific functionality, use the search field at the top of the page to find it.

We are always on the hunt for additions to the language that will make your life easier. If you have ideas as to what you'd like to do with Blueprints down the road, please join our community and let us know!