UNPKG

@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
/** * 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';