GT2/Ejectable/node_modules/react-native-web/dist/exports/StyleSheet/ReactNativePropRegistry.js

57 lines
1.2 KiB
JavaScript

/**
* Copyright (c) Nicolas Gallagher.
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
*
*/
var emptyObject = {};
var objects = {};
var prefix = 'r';
var uniqueID = 1;
var createKey = function createKey(id) {
return prefix + "-" + id;
};
var ReactNativePropRegistry =
/*#__PURE__*/
function () {
function ReactNativePropRegistry() {}
ReactNativePropRegistry.register = function register(object) {
var id = uniqueID++;
if (process.env.NODE_ENV !== 'production') {
Object.freeze(object);
}
var key = createKey(id);
objects[key] = object;
return id;
};
ReactNativePropRegistry.getByID = function getByID(id) {
if (!id) {
// Used in the style={[condition && id]} pattern,
// we want it to be a no-op when the value is false or null
return emptyObject;
}
var key = createKey(id);
var object = objects[key];
if (!object) {
console.warn('Invalid style with id `' + id + '`. Skipping ...');
return emptyObject;
}
return object;
};
return ReactNativePropRegistry;
}();
export { ReactNativePropRegistry as default };