- CLI entry point with yargs parsing for speckl-compile <file> --output-dir --bom-format - TypeScript parser with AST types for all SpeckDL primitives - Generator for PROV-O JSON-LD provenance graphs - Generator for CycloneDX v1.6 BOMs - Generator for SPDX 3.0.1 BOMs - E2E test verifying RetryHandler.speck parsing and all output formats All tests pass.
27 lines
569 B
JavaScript
27 lines
569 B
JavaScript
'use strict'
|
|
|
|
let Container = require('./container')
|
|
let list = require('./list')
|
|
|
|
class Rule extends Container {
|
|
get selectors() {
|
|
return list.comma(this.selector)
|
|
}
|
|
|
|
set selectors(values) {
|
|
let match = this.selector ? this.selector.match(/,\s*/) : null
|
|
let sep = match ? match[0] : ',' + this.raw('between', 'beforeOpen')
|
|
this.selector = values.join(sep)
|
|
}
|
|
|
|
constructor(defaults) {
|
|
super(defaults)
|
|
this.type = 'rule'
|
|
if (!this.nodes) this.nodes = []
|
|
}
|
|
}
|
|
|
|
module.exports = Rule
|
|
Rule.default = Rule
|
|
|
|
Container.registerRule(Rule)
|