aboutsummaryrefslogtreecommitdiffstats
path: root/node_modules/rxjs/src/internal/NotificationFactories.ts
diff options
context:
space:
mode:
authorPinapelz <yukais@pinapelz.com>2025-06-28 17:26:46 -0700
committerPinapelz <yukais@pinapelz.com>2025-06-28 17:43:56 -0700
commite4fa1e69e7ebfb627c7198fd1a9881e9327ec4d4 (patch)
tree06284a538a6008eca75051399e47db4e5d50301c /node_modules/rxjs/src/internal/NotificationFactories.ts
initial commit: scaffolding
Diffstat (limited to 'node_modules/rxjs/src/internal/NotificationFactories.ts')
-rw-r--r--node_modules/rxjs/src/internal/NotificationFactories.ts40
1 files changed, 40 insertions, 0 deletions
diff --git a/node_modules/rxjs/src/internal/NotificationFactories.ts b/node_modules/rxjs/src/internal/NotificationFactories.ts
new file mode 100644
index 0000000..5d2080a
--- /dev/null
+++ b/node_modules/rxjs/src/internal/NotificationFactories.ts
@@ -0,0 +1,40 @@
+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,
+ };
+}
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage