UNPKG

matrix-react-sdk

Version:
49 lines (44 loc) 4.47 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getEnumValues = getEnumValues; exports.isEnumValue = isEnumValue; /* Copyright 2024 New Vector Ltd. Copyright 2020, 2021 The Matrix.org Foundation C.I.C. SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only Please see LICENSE files in the repository root for full details. */ /** * Get the values for an enum. * @param e The enum. * @returns The enum values. */ function getEnumValues(e) { // String-based enums will simply be objects ({Key: "value"}), but number-based // enums will instead map themselves twice: in one direction for {Key: 12} and // the reverse for easy lookup, presumably ({12: Key}). In the reverse mapping, // the key is a string, not a number. // // For this reason, we try to determine what kind of enum we're dealing with. const keys = Object.keys(e); const values = []; for (const key of keys) { const value = e[key]; if (Number.isFinite(value) || e[value.toString()] !== Number(key)) { values.push(value); } } return values; } /** * Determines if a given value is a valid value for the provided enum. * @param e The enum to check against. * @param val The value to search for. * @returns True if the enum contains the value. */ function isEnumValue(e, val) { return getEnumValues(e).includes(val); } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZXRFbnVtVmFsdWVzIiwiZSIsImtleXMiLCJPYmplY3QiLCJ2YWx1ZXMiLCJrZXkiLCJ2YWx1ZSIsIk51bWJlciIsImlzRmluaXRlIiwidG9TdHJpbmciLCJwdXNoIiwiaXNFbnVtVmFsdWUiLCJ2YWwiLCJpbmNsdWRlcyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9lbnVtcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMCwgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHlcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4vKipcbiAqIEdldCB0aGUgdmFsdWVzIGZvciBhbiBlbnVtLlxuICogQHBhcmFtIGUgVGhlIGVudW0uXG4gKiBAcmV0dXJucyBUaGUgZW51bSB2YWx1ZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRFbnVtVmFsdWVzKGU6IGFueSk6IChzdHJpbmcgfCBudW1iZXIpW10ge1xuICAgIC8vIFN0cmluZy1iYXNlZCBlbnVtcyB3aWxsIHNpbXBseSBiZSBvYmplY3RzICh7S2V5OiBcInZhbHVlXCJ9KSwgYnV0IG51bWJlci1iYXNlZFxuICAgIC8vIGVudW1zIHdpbGwgaW5zdGVhZCBtYXAgdGhlbXNlbHZlcyB0d2ljZTogaW4gb25lIGRpcmVjdGlvbiBmb3Ige0tleTogMTJ9IGFuZFxuICAgIC8vIHRoZSByZXZlcnNlIGZvciBlYXN5IGxvb2t1cCwgcHJlc3VtYWJseSAoezEyOiBLZXl9KS4gSW4gdGhlIHJldmVyc2UgbWFwcGluZyxcbiAgICAvLyB0aGUga2V5IGlzIGEgc3RyaW5nLCBub3QgYSBudW1iZXIuXG4gICAgLy9cbiAgICAvLyBGb3IgdGhpcyByZWFzb24sIHdlIHRyeSB0byBkZXRlcm1pbmUgd2hhdCBraW5kIG9mIGVudW0gd2UncmUgZGVhbGluZyB3aXRoLlxuXG4gICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKGUpO1xuICAgIGNvbnN0IHZhbHVlczogKHN0cmluZyB8IG51bWJlcilbXSA9IFtdO1xuICAgIGZvciAoY29uc3Qga2V5IG9mIGtleXMpIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBlW2tleV07XG4gICAgICAgIGlmIChOdW1iZXIuaXNGaW5pdGUodmFsdWUpIHx8IGVbdmFsdWUudG9TdHJpbmcoKV0gIT09IE51bWJlcihrZXkpKSB7XG4gICAgICAgICAgICB2YWx1ZXMucHVzaCh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlcztcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmVzIGlmIGEgZ2l2ZW4gdmFsdWUgaXMgYSB2YWxpZCB2YWx1ZSBmb3IgdGhlIHByb3ZpZGVkIGVudW0uXG4gKiBAcGFyYW0gZSBUaGUgZW51bSB0byBjaGVjayBhZ2FpbnN0LlxuICogQHBhcmFtIHZhbCBUaGUgdmFsdWUgdG8gc2VhcmNoIGZvci5cbiAqIEByZXR1cm5zIFRydWUgaWYgdGhlIGVudW0gY29udGFpbnMgdGhlIHZhbHVlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNFbnVtVmFsdWU8VD4oZTogVCwgdmFsOiBzdHJpbmcgfCBudW1iZXIpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZ2V0RW51bVZhbHVlcyhlKS5pbmNsdWRlcyh2YWwpO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPLFNBQVNBLGFBQWFBLENBQUNDLENBQU0sRUFBdUI7RUFDdkQ7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztFQUVBLE1BQU1DLElBQUksR0FBR0MsTUFBTSxDQUFDRCxJQUFJLENBQUNELENBQUMsQ0FBQztFQUMzQixNQUFNRyxNQUEyQixHQUFHLEVBQUU7RUFDdEMsS0FBSyxNQUFNQyxHQUFHLElBQUlILElBQUksRUFBRTtJQUNwQixNQUFNSSxLQUFLLEdBQUdMLENBQUMsQ0FBQ0ksR0FBRyxDQUFDO0lBQ3BCLElBQUlFLE1BQU0sQ0FBQ0MsUUFBUSxDQUFDRixLQUFLLENBQUMsSUFBSUwsQ0FBQyxDQUFDSyxLQUFLLENBQUNHLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBS0YsTUFBTSxDQUFDRixHQUFHLENBQUMsRUFBRTtNQUMvREQsTUFBTSxDQUFDTSxJQUFJLENBQUNKLEtBQUssQ0FBQztJQUN0QjtFQUNKO0VBQ0EsT0FBT0YsTUFBTTtBQUNqQjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTyxTQUFTTyxXQUFXQSxDQUFJVixDQUFJLEVBQUVXLEdBQW9CLEVBQVc7RUFDaEUsT0FBT1osYUFBYSxDQUFDQyxDQUFDLENBQUMsQ0FBQ1ksUUFBUSxDQUFDRCxHQUFHLENBQUM7QUFDekMiLCJpZ25vcmVMaXN0IjpbXX0=