matrix-react-sdk
Version:
SDK for matrix.org using React
45 lines (41 loc) • 5.02 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.SnakedObject = void 0;
exports.snakeToCamel = snakeToCamel;
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
/*
Copyright 2024 New Vector Ltd.
Copyright 2022 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.
*/
function snakeToCamel(s) {
return s.replace(/._./g, v => `${v[0]}${v[2].toUpperCase()}`);
}
class SnakedObject {
constructor(obj) {
(0, _defineProperty2.default)(this, "fallbackWarnings", new Set());
this.obj = obj;
}
get(key, altCaseName) {
const val = this.obj[key];
if (val !== undefined) return val;
const fallbackKey = altCaseName ?? snakeToCamel(key);
const fallback = this.obj[fallbackKey];
if (!!fallback && !this.fallbackWarnings.has(fallbackKey)) {
this.fallbackWarnings.add(fallbackKey);
console.warn(`Using deprecated camelCase config ${fallbackKey}`);
console.warn("See https://github.com/vector-im/element-web/blob/develop/docs/config.md#-deprecation-notice");
}
return fallback;
}
// Make JSON.stringify() pretend that everything is fine
toJSON() {
return this.obj;
}
}
exports.SnakedObject = SnakedObject;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzbmFrZVRvQ2FtZWwiLCJzIiwicmVwbGFjZSIsInYiLCJ0b1VwcGVyQ2FzZSIsIlNuYWtlZE9iamVjdCIsImNvbnN0cnVjdG9yIiwib2JqIiwiX2RlZmluZVByb3BlcnR5MiIsImRlZmF1bHQiLCJTZXQiLCJnZXQiLCJrZXkiLCJhbHRDYXNlTmFtZSIsInZhbCIsInVuZGVmaW5lZCIsImZhbGxiYWNrS2V5IiwiZmFsbGJhY2siLCJmYWxsYmFja1dhcm5pbmdzIiwiaGFzIiwiYWRkIiwiY29uc29sZSIsIndhcm4iLCJ0b0pTT04iLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL1NuYWtlZE9iamVjdC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHlcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG5leHBvcnQgZnVuY3Rpb24gc25ha2VUb0NhbWVsKHM6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHMucmVwbGFjZSgvLl8uL2csICh2KSA9PiBgJHt2WzBdfSR7dlsyXS50b1VwcGVyQ2FzZSgpfWApO1xufVxuXG5leHBvcnQgY2xhc3MgU25ha2VkT2JqZWN0PFQgPSBSZWNvcmQ8c3RyaW5nLCBhbnk+PiB7XG4gICAgcHJpdmF0ZSBmYWxsYmFja1dhcm5pbmdzID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBvYmo6IFQpIHt9XG5cbiAgICBwdWJsaWMgZ2V0PEsgZXh0ZW5kcyBzdHJpbmcgJiBrZXlvZiBUPihrZXk6IEssIGFsdENhc2VOYW1lPzogc3RyaW5nKTogVFtLXSB7XG4gICAgICAgIGNvbnN0IHZhbCA9IHRoaXMub2JqW2tleV07XG4gICAgICAgIGlmICh2YWwgIT09IHVuZGVmaW5lZCkgcmV0dXJuIHZhbDtcblxuICAgICAgICBjb25zdCBmYWxsYmFja0tleSA9IGFsdENhc2VOYW1lID8/IHNuYWtlVG9DYW1lbChrZXkpO1xuICAgICAgICBjb25zdCBmYWxsYmFjayA9IHRoaXMub2JqWzxLPmZhbGxiYWNrS2V5XTtcbiAgICAgICAgaWYgKCEhZmFsbGJhY2sgJiYgIXRoaXMuZmFsbGJhY2tXYXJuaW5ncy5oYXMoZmFsbGJhY2tLZXkpKSB7XG4gICAgICAgICAgICB0aGlzLmZhbGxiYWNrV2FybmluZ3MuYWRkKGZhbGxiYWNrS2V5KTtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihgVXNpbmcgZGVwcmVjYXRlZCBjYW1lbENhc2UgY29uZmlnICR7ZmFsbGJhY2tLZXl9YCk7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICAgICAgXCJTZWUgaHR0cHM6Ly9naXRodWIuY29tL3ZlY3Rvci1pbS9lbGVtZW50LXdlYi9ibG9iL2RldmVsb3AvZG9jcy9jb25maWcubWQjLWRlcHJlY2F0aW9uLW5vdGljZVwiLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsbGJhY2s7XG4gICAgfVxuXG4gICAgLy8gTWFrZSBKU09OLnN0cmluZ2lmeSgpIHByZXRlbmQgdGhhdCBldmVyeXRoaW5nIGlzIGZpbmVcbiAgICBwdWJsaWMgdG9KU09OKCk6IFQge1xuICAgICAgICByZXR1cm4gdGhpcy5vYmo7XG4gICAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFTyxTQUFTQSxZQUFZQSxDQUFDQyxDQUFTLEVBQVU7RUFDNUMsT0FBT0EsQ0FBQyxDQUFDQyxPQUFPLENBQUMsTUFBTSxFQUFHQyxDQUFDLElBQUssR0FBR0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHQSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUNDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsQ0FBQztBQUNuRTtBQUVPLE1BQU1DLFlBQVksQ0FBMEI7RUFHeENDLFdBQVdBLENBQVNDLEdBQU0sRUFBRTtJQUFBLElBQUFDLGdCQUFBLENBQUFDLE9BQUEsNEJBRlIsSUFBSUMsR0FBRyxDQUFTLENBQUM7SUFBQSxLQUVqQkgsR0FBTSxHQUFOQSxHQUFNO0VBQUc7RUFFN0JJLEdBQUdBLENBQTZCQyxHQUFNLEVBQUVDLFdBQW9CLEVBQVE7SUFDdkUsTUFBTUMsR0FBRyxHQUFHLElBQUksQ0FBQ1AsR0FBRyxDQUFDSyxHQUFHLENBQUM7SUFDekIsSUFBSUUsR0FBRyxLQUFLQyxTQUFTLEVBQUUsT0FBT0QsR0FBRztJQUVqQyxNQUFNRSxXQUFXLEdBQUdILFdBQVcsSUFBSWIsWUFBWSxDQUFDWSxHQUFHLENBQUM7SUFDcEQsTUFBTUssUUFBUSxHQUFHLElBQUksQ0FBQ1YsR0FBRyxDQUFJUyxXQUFXLENBQUM7SUFDekMsSUFBSSxDQUFDLENBQUNDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQ0MsZ0JBQWdCLENBQUNDLEdBQUcsQ0FBQ0gsV0FBVyxDQUFDLEVBQUU7TUFDdkQsSUFBSSxDQUFDRSxnQkFBZ0IsQ0FBQ0UsR0FBRyxDQUFDSixXQUFXLENBQUM7TUFDdENLLE9BQU8sQ0FBQ0MsSUFBSSxDQUFDLHFDQUFxQ04sV0FBVyxFQUFFLENBQUM7TUFDaEVLLE9BQU8sQ0FBQ0MsSUFBSSxDQUNSLDhGQUNKLENBQUM7SUFDTDtJQUNBLE9BQU9MLFFBQVE7RUFDbkI7O0VBRUE7RUFDT00sTUFBTUEsQ0FBQSxFQUFNO0lBQ2YsT0FBTyxJQUFJLENBQUNoQixHQUFHO0VBQ25CO0FBQ0o7QUFBQ2lCLE9BQUEsQ0FBQW5CLFlBQUEsR0FBQUEsWUFBQSIsImlnbm9yZUxpc3QiOltdfQ==