aboutsummaryrefslogtreecommitdiffstats
path: root/node_modules/rxjs/src/internal/util/createErrorClass.ts
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/rxjs/src/internal/util/createErrorClass.ts')
-rw-r--r--node_modules/rxjs/src/internal/util/createErrorClass.ts20
1 files changed, 20 insertions, 0 deletions
diff --git a/node_modules/rxjs/src/internal/util/createErrorClass.ts b/node_modules/rxjs/src/internal/util/createErrorClass.ts
new file mode 100644
index 0000000..e354fd3
--- /dev/null
+++ b/node_modules/rxjs/src/internal/util/createErrorClass.ts
@@ -0,0 +1,20 @@
+/**
+ * Used to create Error subclasses until the community moves away from ES5.
+ *
+ * This is because compiling from TypeScript down to ES5 has issues with subclassing Errors
+ * as well as other built-in types: https://github.com/Microsoft/TypeScript/issues/12123
+ *
+ * @param createImpl A factory function to create the actual constructor implementation. The returned
+ * function should be a named function that calls `_super` internally.
+ */
+export function createErrorClass<T>(createImpl: (_super: any) => any): T {
+ const _super = (instance: any) => {
+ Error.call(instance);
+ instance.stack = new Error().stack;
+ };
+
+ const ctorFunc = createImpl(_super);
+ ctorFunc.prototype = Object.create(Error.prototype);
+ ctorFunc.prototype.constructor = ctorFunc;
+ return ctorFunc;
+}
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage