@glimmer/syntax
Version:
32 lines (27 loc) • 3.09 kB
JavaScript
import { SourceSpan } from './span';
export class SourceSlice {
constructor(options) {
this.loc = options.loc;
this.chars = options.chars;
}
static synthetic(chars) {
let offsets = SourceSpan.synthetic(chars);
return new SourceSlice({
loc: offsets,
chars: chars
});
}
static load(source, slice) {
return new SourceSlice({
loc: SourceSpan.load(source, slice[1]),
chars: slice[0]
});
}
getString() {
return this.chars;
}
serialize() {
return [this.chars, this.loc.serialize()];
}
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3N5bnRheC9saWIvc291cmNlL3NsaWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLFNBQStCLFVBQS9CLFFBQWlELFFBQWpEO0FBT0EsT0FBTSxNQUFPLFdBQVAsQ0FBa0I7QUFnQnRCLEVBQUEsV0FBQSxDQUFZLE9BQVosRUFBc0Q7QUFDcEQsU0FBSyxHQUFMLEdBQVcsT0FBTyxDQUFDLEdBQW5CO0FBQ0EsU0FBSyxLQUFMLEdBQWEsT0FBTyxDQUFDLEtBQXJCO0FBQ0Q7O0FBbEJELFNBQU8sU0FBUCxDQUFtQyxLQUFuQyxFQUEyQztBQUN6QyxRQUFJLE9BQU8sR0FBRyxVQUFVLENBQUMsU0FBWCxDQUFxQixLQUFyQixDQUFkO0FBQ0EsV0FBTyxJQUFJLFdBQUosQ0FBZ0I7QUFBRSxNQUFBLEdBQUcsRUFBRSxPQUFQO0FBQWdCLE1BQUEsS0FBSyxFQUFFO0FBQXZCLEtBQWhCLENBQVA7QUFDRDs7QUFFRCxTQUFPLElBQVAsQ0FBWSxNQUFaLEVBQTRCLEtBQTVCLEVBQXdEO0FBQ3RELFdBQU8sSUFBSSxXQUFKLENBQWdCO0FBQ3JCLE1BQUEsR0FBRyxFQUFFLFVBQVUsQ0FBQyxJQUFYLENBQWdCLE1BQWhCLEVBQXdCLEtBQUssQ0FBQyxDQUFELENBQTdCLENBRGdCO0FBRXJCLE1BQUEsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFEO0FBRlMsS0FBaEIsQ0FBUDtBQUlEOztBQVVELEVBQUEsU0FBUyxHQUFBO0FBQ1AsV0FBTyxLQUFLLEtBQVo7QUFDRDs7QUFFRCxFQUFBLFNBQVMsR0FBQTtBQUNQLFdBQU8sQ0FBQyxLQUFLLEtBQU4sRUFBYSxLQUFLLEdBQUwsQ0FBUyxTQUFULEVBQWIsQ0FBUDtBQUNEOztBQTNCcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTb3VyY2UgfSBmcm9tICcuL2luZGV4JztcbmltcG9ydCB7IFNlcmlhbGl6ZWRTb3VyY2VTcGFuLCBTb3VyY2VTcGFuIH0gZnJvbSAnLi9zcGFuJztcblxuZXhwb3J0IHR5cGUgU2VyaWFsaXplZFNvdXJjZVNsaWNlPENoYXJzIGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nPiA9IFtcbiAgY2hhcnM6IENoYXJzLFxuICBzcGFuOiBTZXJpYWxpemVkU291cmNlU3BhblxuXTtcblxuZXhwb3J0IGNsYXNzIFNvdXJjZVNsaWNlPENoYXJzIGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nPiB7XG4gIHN0YXRpYyBzeW50aGV0aWM8UyBleHRlbmRzIHN0cmluZz4oY2hhcnM6IFMpOiBTb3VyY2VTbGljZTxTPiB7XG4gICAgbGV0IG9mZnNldHMgPSBTb3VyY2VTcGFuLnN5bnRoZXRpYyhjaGFycyk7XG4gICAgcmV0dXJuIG5ldyBTb3VyY2VTbGljZSh7IGxvYzogb2Zmc2V0cywgY2hhcnM6IGNoYXJzIH0pO1xuICB9XG5cbiAgc3RhdGljIGxvYWQoc291cmNlOiBTb3VyY2UsIHNsaWNlOiBTZXJpYWxpemVkU291cmNlU2xpY2UpOiBTb3VyY2VTbGljZSB7XG4gICAgcmV0dXJuIG5ldyBTb3VyY2VTbGljZSh7XG4gICAgICBsb2M6IFNvdXJjZVNwYW4ubG9hZChzb3VyY2UsIHNsaWNlWzFdKSxcbiAgICAgIGNoYXJzOiBzbGljZVswXSxcbiAgICB9KTtcbiAgfVxuXG4gIHJlYWRvbmx5IGNoYXJzOiBDaGFycztcbiAgcmVhZG9ubHkgbG9jOiBTb3VyY2VTcGFuO1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IHsgbG9jOiBTb3VyY2VTcGFuOyBjaGFyczogQ2hhcnMgfSkge1xuICAgIHRoaXMubG9jID0gb3B0aW9ucy5sb2M7XG4gICAgdGhpcy5jaGFycyA9IG9wdGlvbnMuY2hhcnM7XG4gIH1cblxuICBnZXRTdHJpbmcoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5jaGFycztcbiAgfVxuXG4gIHNlcmlhbGl6ZSgpOiBTZXJpYWxpemVkU291cmNlU2xpY2U8Q2hhcnM+IHtcbiAgICByZXR1cm4gW3RoaXMuY2hhcnMsIHRoaXMubG9jLnNlcmlhbGl6ZSgpXTtcbiAgfVxufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==