@intlify/vue-i18n-extensions-nightly
Version:
vue-i18n extensions
61 lines (60 loc) • 1.43 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createContentBuilder = void 0;
const shared_1 = require("@intlify/shared");
/**
* Create a Content Builder
*
* @param options - Content Builder options
*
* @returns A {@link ContentBuilder} instance
*
* @public
*/
function createContentBuilder(options = {}) {
let _indentLevel = options.indentLevel != null && (0, shared_1.isNumber)(options.indentLevel) ? options.indentLevel : 0;
let _content = '';
function push(content) {
_content += content;
}
function _newline(n) {
push('\n' + ` `.repeat(n));
}
function newline() {
_newline(_indentLevel);
}
function pushline(content) {
push(content);
newline();
}
function indent(withoutNewLine) {
if (withoutNewLine) {
++_indentLevel;
}
else {
_newline(++_indentLevel);
}
}
function deindent(withoutNewLine) {
if (withoutNewLine) {
--_indentLevel;
}
else {
_newline(--_indentLevel);
}
}
return {
get indentLevel() {
return _indentLevel;
},
get content() {
return String(_content);
},
push,
newline,
pushline,
indent,
deindent
};
}
exports.createContentBuilder = createContentBuilder;