Sha256: 8bdd3a399e9cf483390f2777ebc568a9443fa11ada7f457087abb2e8cb0c2d81

Contents?: true

Size: 1.18 KB

Versions: 5

Compression:

Stored size: 1.18 KB

Contents

const { Command } = require('../../..')

class AbstractHandler {
    handlers = []

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

    // eslint-disable-next-line no-unused-vars
    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] = this.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

5 entries across 5 versions & 1 rubygems

Version Path
javonet-ruby-sdk-2.5.13 lib/javonet-ruby-sdk/Binaries/Nodejs/lib/core/handler/AbstractHandler.js
javonet-ruby-sdk-2.5.12 lib/javonet-ruby-sdk/Binaries/Nodejs/lib/core/handler/AbstractHandler.js
javonet-ruby-sdk-2.5.11 lib/javonet-ruby-sdk/Binaries/Nodejs/lib/core/handler/AbstractHandler.js
javonet-ruby-sdk-2.5.10 lib/javonet-ruby-sdk/Binaries/Nodejs/lib/core/handler/AbstractHandler.js
javonet-ruby-sdk-2.5.9 lib/javonet-ruby-sdk/Binaries/Nodejs/lib/core/handler/AbstractHandler.js