Skip to content

Instantly share code, notes, and snippets.

@smnbbrv
smnbbrv / promisified-grpc-client.ts
Last active February 19, 2025 18:43
Promisify @grpc-js service client with typescript
import { Client, ServiceError, Metadata, CallOptions, ClientUnaryCall } from '@grpc/grpc-js';
import { Message } from 'google-protobuf';
type OriginalCall<T, U> = (request: T, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError, res: U) => void) => ClientUnaryCall;
type PromisifiedCall<T, U> = ((request: T, metadata?: Metadata, options?: Partial<CallOptions>) => Promise<U>);
export type Promisified<C> = { $: C; } & {
[prop in Exclude<keyof C, keyof Client>]: (C[prop] extends OriginalCall<infer T, infer U> ? PromisifiedCall<T, U> : never);
}
@elgalu
elgalu / customMatchers.js
Last active August 6, 2017 04:08
Some Protractor - Jasmine 1.3.x custom matchers
//////////////////////////
// Some Custom Matchers //
//////////////////////////
"use strict";
// Usage:
// Add `require('./customMatchers.js');` in your onPrepare block or file
// Config
var specTimeoutMs = 10000; // 10 secs
@justquick
justquick / fabfile.py
Created October 11, 2010 18:58
Ubuntu update manager for Fabric. Checks for updates, installs them and reboots if needed across multiple servers
"""
Ubuntu update manager for Fabric
Checks for updates, installs them and reboots if needed across multiple servers
Create a "hosts" file alongside this fabfile and put your hosts in there one per line
Updating package list::
fab update