react-native-onyx
Version:
State management for React Native
41 lines (40 loc) • 1.42 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.initDevTools = initDevTools;
exports.getDevToolsInstance = getDevToolsInstance;
const RealDevTools_1 = __importDefault(require("./DevTools/RealDevTools"));
const NoOpDevTools_1 = __importDefault(require("./DevTools/NoOpDevTools"));
// Start with a no-op instance
let devToolsInstance = new NoOpDevTools_1.default();
/**
* Initializes DevTools with the given enabled flag
*/
function initDevTools(enabled) {
devToolsInstance = enabled ? new RealDevTools_1.default() : new NoOpDevTools_1.default();
}
/**
* Gets the current DevTools instance (for testing purposes only)
* @private
*/
function getDevToolsInstance() {
return devToolsInstance;
}
/**
* Export a default object that delegates to the current devToolsInstance
* This allows the instance to be swapped out while keeping the same import signature
*/
const DevTools = {
registerAction(type, payload, stateChanges = {}) {
devToolsInstance.registerAction(type, payload, stateChanges);
},
initState(initialState = {}) {
devToolsInstance.initState(initialState);
},
clearState(keysToPreserve = []) {
devToolsInstance.clearState(keysToPreserve);
},
};
exports.default = DevTools;