Skip to content

Instantly share code, notes, and snippets.

@ckknight
ckknight / zendesk-web-widget.d.ts
Created September 18, 2020 20:24
TypeScript definitions for Zendesk Web Widget, based on https://developer.zendesk.com/embeddables/docs/widget/introduction
/* eslint-disable @typescript-eslint/unified-signatures */
/* eslint-disable @typescript-eslint/naming-convention */
interface ZendeskWidgetCommander {
/** @see https://developer.zendesk.com/embeddables/docs/widget/core#clear */
(type: 'webWidget', command: 'clear'): void;
/** @see https://developer.zendesk.com/embeddables/docs/widget/core#close */
(type: 'webWidget', command: 'close'): void;
/** @see https://developer.zendesk.com/embeddables/docs/widget/core#get-display */
let to_js_boolean b => if b { Js.true_ } else { Js.false_ };
let optionMap fn opt_value => switch opt_value {
| None => None
| Some value => Some (fn value)
};
module View = {
external view : ReactRe.reactClass = "View" [@@bs.module "react-native"];
let createElement
accessible::(accessible:option bool)=?
import { Component, PropTypes } from 'react';
function toCssKey(key) {
return `--${key}`;
}
export default class CssVariablesProvider extends Component {
static propTypes = {
variables: PropTypes.objectOf(PropTypes.string).isRequired,
children: PropTypes.element.isRequired,
@ckknight
ckknight / inhouse.js
Last active December 18, 2015 22:38 — forked from NeilHanlon/inhouse.js
(function(){
var oldPrint = window.print;
var slice = Array.prototype.slice;
window.print = function () {
if (typeof window.onbeforeprint === "function") {
window.onbeforeprint.apply(this, slice.call(arguments));
}
oldPrint.apply(this, slice.call(arguments));
if (typeof window.onafterprint === "function") {
@ckknight
ckknight / tmp-cov.js
Created June 19, 2013 09:04
GorillaScript coverage example
try {
if (typeof top === "object" && top !== null && typeof top.opener === "object" && top.opener !== null && !top.opener._$jscoverage) {
top.opener._$jscoverage = {};
}
} catch (e) {}
try {
if (typeof top === "object" && top !== null) {
try {
if (typeof top.opener === "object" && top.opener !== null && top.opener._$jscoverage) {
top._$jscoverage = top.opener._$jscoverage;
function chunk(array, length) {
var chunked = [];
for (var i = 0, len = array.length; i < len; i += length) {
chunked.push(array.slice(i, i + length));
}
return chunked;
};
declare module "rx" {
declare interface IPromise<T> {
then<R>(
onFulfilled: (
value: T
) => IPromise<R>,
onRejected: (
reason: any
) => IPromise<R>
): IPromise<R>;
import Immutable from 'immutable';
const { Record } = Immutable;
declare class ImmEulerRecordClass extends Record {
x: number;
y: number;
z: number;
order: string;
}
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Ckknight.Collections
{
/// <summary>
/// Represents an finite, immutable range of Int32s that may have a non-1 step and may or may not be inclusive.
@ckknight
ckknight / CustomError.js
Created February 9, 2015 23:19
CustomError
// replace `CustomError` with the name of your error
// replace `ParentError` with the superclass, even if it is `Error` or another native error.
// other arguments besides `message` can be added, but at least `message` should exist.
var CustomError = (function (ParentError) {
function CustomError(message) {
var self = this instanceof CustomError ? this : Object.create(CustomError.prototype);
var err = ParentError.call(self, message);
self.message = message;
if (typeof Error.captureStackTrace === 'function') {