Sha256: a9e5304d85de93ef51f8d22a61dbe9049a7edb735817614f4a8fa05567249eef

Contents?: true

Size: 1.18 KB

Versions: 60

Compression:

Stored size: 1.18 KB

Contents

const Handler = require('./Handler')
const Command = require('../../utils/Command')

class AbstractHandler {
    constructor() {
        if(new.target === AbstractHandler)
            throw new TypeError('You cannot instantiate abstract class')
    }

    process(command) {
        throw new Error('process must be implemented')
    }

    handleCommand(command) {
        this.iterate(command)
        return this.process(command)
    }

    iterate(cmd) {
        for(let i = 0; i < cmd.payload.length; i++) {
            
            if(cmd.payload[i] instanceof Command) {
                let inner = cmd.payload[i]
                cmd.payload[i] = Handler.handlers[inner.commandType].handleCommand(inner)
            }
        }
    }

    process_stack_trace(error, class_name) {
        let stackTraceArray = error.stack.split('\n').map(frame => frame.trim());
        stackTraceArray.forEach((str, index) => {
            if (str.includes(class_name)) {
                stackTraceArray = stackTraceArray.slice(0, index).filter((s) => !s.includes(class_name));
            }
        });
        error.stack = stackTraceArray.join(" \n ")
        return error
    }
}

module.exports = AbstractHandler

Version data entries

60 entries across 35 versions & 1 rubygems

Version Path
javonet-ruby-sdk-2.5.8 lib/javonet-ruby-sdk/Binaries/Nodejs/core/handler/AbstractHandler.js
javonet-ruby-sdk-2.5.7 lib/javonet-ruby-sdk/Binaries/Nodejs/core/handler/AbstractHandler.js
javonet-ruby-sdk-2.5.6 lib/javonet-ruby-sdk/Binaries/Nodejs/core/handler/AbstractHandler.js
javonet-ruby-sdk-2.5.5 lib/javonet-ruby-sdk/Binaries/Nodejs/core/handler/AbstractHandler.js
javonet-ruby-sdk-2.5.4 lib/javonet-ruby-sdk/Binaries/Nodejs/core/handler/AbstractHandler.js
javonet-ruby-sdk-2.5.3 lib/javonet-ruby-sdk/Binaries/Nodejs/core/handler/AbstractHandler.js
javonet-ruby-sdk-2.5.2 lib/javonet-ruby-sdk/Binaries/Nodejs/core/handler/AbstractHandler.js
javonet-ruby-sdk-2.5.1 lib/javonet-ruby-sdk/Binaries/Nodejs/core/handler/AbstractHandler.js
javonet-ruby-sdk-2.5.0 lib/javonet-ruby-sdk/Binaries/Nodejs/core/handler/AbstractHandler.js
javonet-ruby-sdk-2.4.11 lib/javonet-ruby-sdk/Binaries/Nodejs/core/handler/AbstractHandler.js
javonet-ruby-sdk-2.4.10 lib/javonet-ruby-sdk/Binaries/Nodejs/Linux/X64/core/handler/AbstractHandler.js
javonet-ruby-sdk-2.4.10 lib/javonet-ruby-sdk/Binaries/Nodejs/MacOs/X64/core/handler/AbstractHandler.js
javonet-ruby-sdk-2.4.9 lib/javonet-ruby-sdk/Binaries/Nodejs/Linux/X64/core/handler/AbstractHandler.js
javonet-ruby-sdk-2.4.9 lib/javonet-ruby-sdk/Binaries/Nodejs/MacOs/X64/core/handler/AbstractHandler.js
javonet-ruby-sdk-2.4.8 lib/javonet-ruby-sdk/Binaries/Nodejs/Linux/X64/core/handler/AbstractHandler.js
javonet-ruby-sdk-2.4.8 lib/javonet-ruby-sdk/Binaries/Nodejs/MacOs/X64/core/handler/AbstractHandler.js
javonet-ruby-sdk-2.4.7 lib/javonet-ruby-sdk/Binaries/Nodejs/Linux/X64/core/handler/AbstractHandler.js
javonet-ruby-sdk-2.4.7 lib/javonet-ruby-sdk/Binaries/Nodejs/MacOs/X64/core/handler/AbstractHandler.js
javonet-ruby-sdk-2.4.6 lib/javonet-ruby-sdk/Binaries/Nodejs/Linux/X64/core/handler/AbstractHandler.js
javonet-ruby-sdk-2.4.6 lib/javonet-ruby-sdk/Binaries/Nodejs/MacOs/X64/core/handler/AbstractHandler.js