/* * Copyright (c) 2023 Nordic Semiconductor ASA * * SPDX-License-Identifier: LicenseRef-Nordic-4-Clause */ export interface BackgroundTask { onError: (error: Error, pid?: number) => void; onData: (data: T) => void; } export type LogLevel = 'off' | 'error' | 'warn' | 'info' | 'debug' | 'trace'; export type Task = { id: string; description: string; name: string; data: T; }; export type TaskError = { code: number; description: string; }; export type TaskBegin = { task: Task; }; export type TaskEnd = { task: Task; message?: string; result?: 'success' | 'fail'; error?: TaskError; data?: T; }; export type NrfutilProgress = { progressPercentage: number; message?: string; description?: string; amountOfSteps?: number; duration?: number; name?: string; operation?: string; result?: string; state?: string; step?: number; }; export type TaskProgress = { task: Task; progress: NrfutilProgress; }; type NrfutilJsonProgress = { type: 'task_progress'; data: TaskProgress; }; type NrfutilJsonLog = { type: 'log'; data: LogMessage; }; type NrfutilJsonEnd = { type: 'task_end'; data: TaskEnd; }; type NrfutilJsonBegin = { type: 'task_begin'; data: TaskBegin; }; type NrfutilJsonInfo = { type: 'info'; data: T; }; type NrfutilJsonBatch = { batch: { id: string; data: { serialNumber: string; }; }; data: NrfutilJson; }; export type NrfutilJsonBatchUpdate = { type: 'batch_update'; data: NrfutilJsonBatch; }; export type NrfutilJson = | NrfutilJsonInfo | NrfutilJsonBegin | NrfutilJsonEnd | NrfutilJsonProgress | NrfutilJsonLog | NrfutilJsonBatchUpdate; export type Progress = { totalProgressPercentage: number; stepProgressPercentage: number; message?: string; description?: string; amountOfSteps: number; duration?: number; name?: string; operation?: string; result?: string; state?: string; step: number; }; export type LogMessage = { level: 'OFF' | 'ERROR' | 'WARN' | 'INFO' | 'DEBUG' | 'TRACE' | 'CRITICAL'; message: string; }; export type OnProgress = (progress: Progress, task?: Task) => void; export type OnTaskBegin = (taskBegin: TaskBegin) => void; export type OnTaskEnd = (taskEnd: TaskEnd) => void; export type OnLog = (message: LogMessage, pid: number | undefined) => void;