react-native-sync-tasks
Version:
JSI-based task manager for React Native that periodically fetches data from a server, deduplicates responses using hashing, and provides centralized task control via native C++ module.
57 lines (54 loc) • 1.7 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.createTask = exports.SyncTasksManager = void 0;
var _reactNative = require("react-native");
// Ссылка на глобальный объект SqlDb
let __SyncTasksManager = global.SyncTasksManager;
// Автоинициализация
if (!__SyncTasksManager) {
if (_reactNative.NativeModules.SyncTasksManager?.install) {
_reactNative.NativeModules.SyncTasksManager.install(); // Вызываем native install метод
__SyncTasksManager = global.SyncTasksManager; // Сохраняем глобальную ссылку на объект SqlDb
console.log('✅ TaskManager initialized successfully');
}
}
// Класс SqlDb для работы с базой данных
class SyncTasksManager {
static instance = __SyncTasksManager;
static addTask(task) {
if (!this.instance) {
throw new Error('TaskManager not initialized');
}
this.instance.addTask(task);
}
static addTasks(tasks) {
if (!this.instance) {
throw new Error('TaskManager not initialized');
}
this.instance.addTasks(tasks);
}
static startAll() {
if (!this.instance) {
throw new Error('TaskManager not initialized');
}
this.instance.startAll();
}
static stopAll() {
if (!this.instance) {
throw new Error('TaskManager not initialized');
}
this.instance.stopAll();
}
}
exports.SyncTasksManager = SyncTasksManager;
const createTask = props => {
const params = {
...props,
interval: props.config.interval ?? 1000
};
return global.createTask(params);
};
exports.createTask = createTask;
//# sourceMappingURL=index.js.map
;