function generateClassDeclaration({ name, extendedType, ctor = () => {
    // Noop
} }) {
    if (extendedType == null) {
        return new Function("ctor", `return class ${name == null ? "" : name} {constructor () {const ctorReturnValue = ctor.call(this, ...arguments); if (ctorReturnValue != null) return ctorReturnValue;}}`)(ctor);
    }
    else {
        return new Function("extendedType", "ctor", `return class ${name == null ? "" : name} extends extendedType {constructor () {super(...arguments); const ctorReturnValue = ctor.call(this, ...arguments); if (ctorReturnValue != null) return ctorReturnValue;}}`)(extendedType, ctor);
    }
}
/**
 * A function that uses 'new Function' to auto-generate a class with a dynamic name and extended type
 */
A function that uses 'new Function' to auto-generate a class with a dynamic name and extended type
A function that uses ' new Function ' to auto - generate a class with a dynamic name and extended type
function generateClassDeclaration({ name, extendedType, ctor = () => {
} }) {
    if (extendedType == null) {
        return new Function("ctor", `return class ${name == null ? "" : name} {constructor () {const ctorReturnValue = ctor.call(this, ...arguments); if (ctorReturnValue != null) return ctorReturnValue;}}`)(ctor);
    }
    else {
        return new Function("extendedType", "ctor", `return class ${name == null ? "" : name} extends extendedType {constructor () {super(...arguments); const ctorReturnValue = ctor.call(this, ...arguments); if (ctorReturnValue != null) return ctorReturnValue;}}`)(extendedType, ctor);
    }
}
function generateClassDeclaration ( { name , extendedType , ctor = ( ) => { } } ) { if ( extendedType == null ) { return new Function ( "ctor" , ` ${ name == null ? "" : name } ` ) ( ctor ) ; } else { return new Function ( "extendedType" , "ctor" , ` ${ name == null ? "" : name } ` ) ( extendedType , ctor ) ; } }
A function that uses 'new Function' to auto-generate a class with a dynamic name and extended type
A function that uses ' new Function ' to auto - generate a class with a dynamic name and extended type
// Noop