⚡ indicates a breaking change
- v2
- ⚡ removed the
_name
property on objects. - Added a
_type
property on all objects - As a replacement for
_name
, added multiple_<type>: <name>
properties (e.g.{ ... , "_type": "join", "_join": "users", "_explore": "orders"}
) - Added a
_n
property which gives the lexical position of the object in the original text
- ⚡ removed the
- v2.2
- The return now contains model objects which have recursively included other referenced files' contents
- In interactive mode, the output is slightly more compact
- v3.0
- ⚡ yesno fields are now mapped to true/false
- Added conditional comment feature. The CLI flag is --conditional-comment=FOO or -c FOO
- v4.0
- ⚡ The grammar now recognizes attributes whose type starts with 'expr' as doubleSemiBlock-valued. If you were previously using such a naming convention in conditional-comment based LookML, you will need to use a new naming convention, or use doubleSemiBlock syntax. E.g.
expression_custom_filter: ${field} ;;
- ⚡ The grammar no longer ignores leading whitespace in a doubleSemiBlock.
- ⚡ The grammar now recognizes attributes whose type starts with 'expr' as doubleSemiBlock-valued. If you were previously using such a naming convention in conditional-comment based LookML, you will need to use a new naming convention, or use doubleSemiBlock syntax. E.g.
- v5.0
- ⚡⚡⚡ For simplicity and reduced output size, the output no longer includes the array version of collections of named objects. Only the object version, keyed by name, is returned.
- v5.1
- Added the ability to control the output format of the files collection
- v6.0
- ⚡ The _file_rel property has changed slightly and no longer includes the file's extension
- Added a 'none' file output mode for use cases that only care about assembled models
- Added support for subdirectories and corresponding include statements (Does not yet support remote imports)
- v6.1
- Added a
cwd
parameter to conveniently run the parser relative to a specified working directory
- Added a
- v6.2
- More consistent handling of manifest file across
file-output
modes
- More consistent handling of manifest file across
- v6.3
- Support for new LookML syntax: refinements, and maplists (e.g.
filters:[field:">0"]
)
- Support for new LookML syntax: refinements, and maplists (e.g.
- v6.4 (should have been major change)
- ⚡ "metadata" naming convention changed. Metadata properties now start with
$
rather than_
- ⚡ Nodes in the JSON representation no longer contain their own name in a variadic property name, it is now always in
$name
- The parser can now capture text metadata into the
$strings
property, supporting use cases such as comment analysis, whitespace analysis and round-tripping/generation. Strings metadata is removed by default for the CLI, but can be exposed with thetransform
parameter. - [beta] Ability to generate LookML strings from JSON data containing the captured string metadata. Only exposed as a module export from the
generate
subdirectory
- ⚡ "metadata" naming convention changed. Metadata properties now start with
- v6.5
- More permissive model file naming. Any character now accepted in model names.
- Added guards against prototype pollution
- v6.6
- NPM ignore test-projects, which was growing in size and is normally not useful to consumers of the package
- Added the ability to resolve extensions/refinements within models, by passing
transformations:{applyRefinementsExtensions:true}
to parseFiles - Update tests which were broken by a change in a dev dependency (deep-object-diff)
- v6.8
- Add support for
include: "//..."
, a.k.a. imported projects
- Add support for
- v6.8.2
- Fix handling of '..' in include patterns
- Fix error when including one model file into another model file
- v6.9
- Support reading YAML-based LookML Dashboard files
- v6.9.1
- YAML-based LookML Dashboard files correctly includable in model objects
- YAML parsing documentation
- v6.10
- Compact conditional comments (without linebreak on first line)
- v6.11
- Whitespace preservation in front of conditional comments