48 lines
1.1 KiB
JavaScript

export function File(node: Object) {
this.print(node.program, node);
}
export function Program(node: Object) {
this.printInnerComments(node, false);
this.printSequence(node.directives, node);
if (node.directives && node.directives.length) this.newline();
this.printSequence(node.body, node);
}
export function BlockStatement(node: Object) {
this.token("{");
this.printInnerComments(node);
let hasDirectives = node.directives && node.directives.length;
if (node.body.length || hasDirectives) {
this.newline();
this.printSequence(node.directives, node, { indent: true });
if (hasDirectives) this.newline();
this.printSequence(node.body, node, { indent: true });
this.removeTrailingNewline();
this.source("end", node.loc);
if (!this.endsWith("\n")) this.newline();
this.rightBrace();
} else {
this.source("end", node.loc);
this.token("}");
}
}
export function Noop() {}
export function Directive(node: Object) {
this.print(node.value, node);
this.semicolon();
}
export { StringLiteral as DirectiveLiteral } from "./types";