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.
51 lines (48 loc) • 1.49 kB
JavaScript
import { NativeModules } from 'react-native';
// Ссылка на глобальный объект SqlDb
let __SyncTasksManager = global.SyncTasksManager;
// Автоинициализация
if (!__SyncTasksManager) {
if (NativeModules.SyncTasksManager?.install) {
NativeModules.SyncTasksManager.install(); // Вызываем native install метод
__SyncTasksManager = global.SyncTasksManager; // Сохраняем глобальную ссылку на объект SqlDb
console.log('✅ TaskManager initialized successfully');
}
}
// Класс SqlDb для работы с базой данных
export 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();
}
}
export const createTask = props => {
const params = {
...props,
interval: props.config.interval ?? 1000
};
return global.createTask(params);
};
//# sourceMappingURL=index.js.map
;