@itwin/presentation-shared
Version:
The package contains types and utilities used across different iTwin.js Presentation packages.
49 lines • 2.06 kB
JavaScript
;
/*---------------------------------------------------------------------------------------------
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
* See LICENSE.md in the project root for license terms and full copyright notice.
*--------------------------------------------------------------------------------------------*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.ConcatenatedValue = exports.ConcatenatedValuePart = void 0;
/** @public */
// eslint-disable-next-line @typescript-eslint/no-redeclare
var ConcatenatedValuePart;
(function (ConcatenatedValuePart) {
/** @public */
function isString(part) {
return typeof part === "string";
}
ConcatenatedValuePart.isString = isString;
/** @public */
function isPrimitive(part) {
return !!part.type;
}
ConcatenatedValuePart.isPrimitive = isPrimitive;
/** @public */
function isConcatenatedValue(part) {
return Array.isArray(part);
}
ConcatenatedValuePart.isConcatenatedValue = isConcatenatedValue;
})(ConcatenatedValuePart || (exports.ConcatenatedValuePart = ConcatenatedValuePart = {}));
/** @public */
// eslint-disable-next-line @typescript-eslint/no-redeclare
var ConcatenatedValue;
(function (ConcatenatedValue) {
/**
* Serialize given `ConcatenatedValue` to string using a formatter function. The parts are
* each formatted individually and then joined together.
*
* @public
*/
async function serialize(props) {
const { parts, partFormatter, separator } = props;
return (await Promise.all(parts.map(async (part) => {
if (ConcatenatedValuePart.isConcatenatedValue(part)) {
return serialize({ parts: part, partFormatter, separator });
}
return partFormatter(part);
}))).join(separator ?? "");
}
ConcatenatedValue.serialize = serialize;
})(ConcatenatedValue || (exports.ConcatenatedValue = ConcatenatedValue = {}));
//# sourceMappingURL=ConcatenatedValue.js.map