Skip to content

Instantly share code, notes, and snippets.

@chimmelb
chimmelb / primus-ping-pong.js
Created June 20, 2019 19:14
primus ping-pong for own websocket
const pingRegex = /^primus::ping::(\d{13})$/
private onMessage = (messageEvent: MessageEvent) => {
try {
const data = JSON.parse(messageEvent.data)
if (pingRegex.test(data)) {
let pingResults = pingRegex.exec(data)
if (pingResults) {
this.pong(pingResults[1])
}
} else if (data.context && data.context === 'response') {
/**
* This is the test file that is run by Jest.
* It has the (single) setup for the actionhero instance
*/
import { Process, env, id, specHelper } from 'actionhero'
import createTests from './lib/create'
import updateTests from './lib/update'
const actionhero = new Process()
let api
@chimmelb
chimmelb / QuantumAction.ts
Created June 30, 2020 16:19
Error Handling Pattern for actionheroJS
import { Action, ActionProcessor, log } from 'actionhero'
import { SmartError } from './SmartError'
export abstract class QuantumAction extends Action {
constructor() {
// extends Abstract class Action only to wrap
super()
}
async run(data: ActionProcessor): Promise<void> {
try {
'use strict'
import { Initializer, api, action, log } from 'actionhero'
let compression = require('compression')
export class CompressMiddleware extends Initializer {
constructor() {
super()
this.name = 'CompressMiddleware'
this.loadPriority = 1000
this.startPriority = 1000