how to make a login form discord.js part 1 code example

Example: how to make a login form discord.js part 1

class Script {
    constructor (user, options, callback) {
        if (!user.send) {
            throw "Invalid Userhandle";
        }
        this.user = user;
        this.options = options;
        this.state = 0;
        this.callback = callback;
        this.responses = [];
        if (!!this.options.greeting) {
            this.user.send(this.options.greeting)
                .then()
                .catch(() => console.log(JSON.stringify(this.options.greeting)));
        }
    };
    interpretMessage(message) {
        if (!this.options.validator[this.state] || typeof this.options.validator[this.state] !== 'function') {
            if (!!this.callback) {
                this.callback(this.user, this.responses, false);
                return;
            } else {
                throw "Invalid User Gatherer Object";
            }
        }
        const [msg, steps] = this.options.validator[this.state](message, this.responses);
        this.user.send(msg)
            .then()
            .catch(() => console.error(msg));   
        if (steps > 0 || steps < 0) {
            if (!!this.responses && !!this.responses[this.state]) {
                this.responses[this.state] = message;
            } else {
                this.responses.push(message);
            }
            this.state += steps;
        }
        if (this.state >= this.options.validator.length) {
            this.callback(this.user, this.responses, false);
        }
    };
};

module.exports = Script;