frontend/.pnpm-store/v3/files/f7/34debe438297497091798a268c9ef76938af283382024374dee746808b929a052d7c070d510644f54e512de2d20f5c8133bb1eecc3c7e56e346f6b8b0a3189

41 lines
1.2 KiB
Plaintext

import { CompleteNotification, NextNotification, ErrorNotification } from './types';
/**
* A completion object optimized for memory use and created to be the
* same "shape" as other notifications in v8.
* @internal
*/
export const COMPLETE_NOTIFICATION = (() => createNotification('C', undefined, undefined) as CompleteNotification)();
/**
* Internal use only. Creates an optimized error notification that is the same "shape"
* as other notifications.
* @internal
*/
export function errorNotification(error: any): ErrorNotification {
return createNotification('E', undefined, error) as any;
}
/**
* Internal use only. Creates an optimized next notification that is the same "shape"
* as other notifications.
* @internal
*/
export function nextNotification<T>(value: T) {
return createNotification('N', value, undefined) as NextNotification<T>;
}
/**
* Ensures that all notifications created internally have the same "shape" in v8.
*
* TODO: This is only exported to support a crazy legacy test in `groupBy`.
* @internal
*/
export function createNotification(kind: 'N' | 'E' | 'C', value: any, error: any) {
return {
kind,
value,
error,
};
}