@itwin/presentation-shared
Version:
The package contains types and utilities used across different iTwin.js Presentation packages.
46 lines • 1.87 kB
JavaScript
/*---------------------------------------------------------------------------------------------
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
* See LICENSE.md in the project root for license terms and full copyright notice.
*--------------------------------------------------------------------------------------------*/
/** @public */
// eslint-disable-next-line @typescript-eslint/no-redeclare
export 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 || (ConcatenatedValuePart = {}));
/** @public */
// eslint-disable-next-line @typescript-eslint/no-redeclare
export 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 || (ConcatenatedValue = {}));
//# sourceMappingURL=ConcatenatedValue.js.map