@statezero/core
Version:
The type-safe frontend client for StateZero - connect directly to your backend models with zero boilerplate
66 lines (65 loc) • 3.35 kB
TypeScript
/**
* Factory for creating Operation instances with consistent behavior
* across QueryExecutor and hotpath event handling
*/
export class OperationFactory {
/**
* Create a CREATE operation
* @param {QuerySet} queryset - The queryset context
* @param {Object} data - The data for the new instance
* @param {string} [operationId] - Optional operation ID (for hotpath events)
* @returns {Operation} The created operation
*/
static createCreateOperation(queryset: QuerySet, data?: Object, operationId?: string): Operation;
/**
* Create an UPDATE operation with optimistic instance updates
* @param {QuerySet} queryset - The queryset context
* @param {Object} data - The update data
* @param {Object} filter - Optional filter for the update
* @param {string} [operationId] - Optional operation ID (for hotpath events)
* @returns {Operation} The created operation
*/
static createUpdateOperation(queryset: QuerySet, data?: Object, filter?: Object, operationId?: string): Operation;
/**
* Create a DELETE operation
* @param {QuerySet} queryset - The queryset context
* @param {string} [operationId] - Optional operation ID (for hotpath events)
* @returns {Operation} The created operation
*/
static createDeleteOperation(queryset: QuerySet, operationId?: string): Operation;
/**
* Create an UPDATE_INSTANCE operation
* @param {QuerySet} queryset - The queryset context
* @param {Object} data - The update data
* @param {string} [operationId] - Optional operation ID (for hotpath events)
* @returns {Operation} The created operation
*/
static createUpdateInstanceOperation(queryset: QuerySet, data?: Object, operationId?: string): Operation;
/**
* Create a DELETE_INSTANCE operation
* @param {QuerySet} queryset - The queryset context
* @param {Object} instanceData - The instance to delete (object with PK)
* @param {string} [operationId] - Optional operation ID (for hotpath events)
* @returns {Operation} The created operation
*/
static createDeleteInstanceOperation(queryset: QuerySet, instanceData: Object, operationId?: string): Operation;
/**
* Create a GET_OR_CREATE operation with local filtering logic
* @param {QuerySet} queryset - The queryset context
* @param {Object} lookup - The lookup criteria
* @param {Object} defaults - The default values for creation
* @param {string} [operationId] - Optional operation ID (for hotpath events)
* @returns {Operation} The created operation
*/
static createGetOrCreateOperation(queryset: QuerySet, lookup?: Object, defaults?: Object, operationId?: string): Operation;
/**
* Create an UPDATE_OR_CREATE operation with local filtering logic
* @param {QuerySet} queryset - The queryset context
* @param {Object} lookup - The lookup criteria
* @param {Object} defaults - The default values for creation/update
* @param {string} [operationId] - Optional operation ID (for hotpath events)
* @returns {Operation} The created operation
*/
static createUpdateOrCreateOperation(queryset: QuerySet, lookup?: Object, defaults?: Object, operationId?: string): Operation;
}
import { Operation } from '../../syncEngine/stores/operation';