From bdd19405cb3f85baa05b74c25a5726af0cbc805e Mon Sep 17 00:00:00 2001 From: Bagel03 <70449196+Bagel03@users.noreply.github.com> Date: Mon, 24 Jan 2022 12:10:45 -0500 Subject: [PATCH] Add Extending of Class's Constructor --- src/js/mods/mod_interface.js | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/js/mods/mod_interface.js b/src/js/mods/mod_interface.js index 195c005b..778d164f 100644 --- a/src/js/mods/mod_interface.js +++ b/src/js/mods/mod_interface.js @@ -483,6 +483,22 @@ export class ModInterface { this.extendObject(classHandle.prototype, extender); } + /** + * Creates a new class that extends another class (DOES NOT OVERWRITE) + * + * @template {constructable} C + * @param {C} classHandle + * @param {bindThis<(...args: ConstructorParameters) => any, InstanceType>} constructor + */ + extendConstructor(classHandle, constructor) { + return function (...args) { + const obj = new classHandle(); + //@ts-ignore + constructor.apply(obj, args); + return obj; + }; + } + /** * * @param {string} id