ts-simple-ast
Version:
TypeScript compiler wrapper for static analysis and code manipulation.
46 lines (45 loc) • 1.57 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
/**
* Functions for writing.
* @remarks These functions are currently very experimental.
*/
var WriterFunctions = /** @class */ (function () {
function WriterFunctions() {
}
/**
* Gets a writer function for writing the provided object as an object literal expression.
* @param obj - Object to write.
*/
WriterFunctions.object = function (obj) {
return function (writer) {
var keyNames = Object.keys(obj);
writer.write("{");
if (keyNames.length > 0) {
writer.indentBlock(function () {
writeObject();
});
}
writer.write("}");
function writeObject() {
for (var i = 0; i < keyNames.length; i++) {
if (i > 0)
writer.write(",").newLine();
var keyName = keyNames[i];
var value = obj[keyName];
writer.write(keyName);
if (value != null) {
writer.write(": ");
if (value instanceof Function)
value(writer);
else
writer.write(value.toString());
}
}
writer.newLine();
}
};
};
return WriterFunctions;
}());
exports.WriterFunctions = WriterFunctions;