UNPKG

@intlify/vue-i18n-extensions-nightly

Version:
61 lines (60 loc) 1.43 kB
"use strict"; 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;