Skip to content

Instantly share code, notes, and snippets.

Chris Veness chrisveness

Block or report user

Report or block chrisveness

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
@chrisveness
chrisveness / app.js
Created Feb 20, 2015
supertest fails when using cookie domain / header host
View app.js
var koa = require('koa');
var session = require('koa-session');
var app = module.exports = koa();
app.keys = ['some secret hurr'];
app.use(session({ domain: '.app.localhost' }, app)); // THIS WORKS IN BROWSER BUT FAILS IN SUPERTEST
//app.use(session(app)); // THIS WORKS EITHER WAY
app.use(function*() {
@chrisveness
chrisveness / app.js
Last active Aug 29, 2015
koa-flash fails when session domain opts set
View app.js
var koa = require('koa');
var session = require('koa-session');
var flash = require('koa-flash');
var router = require('koa-router');
var handlebars = require("koa-handlebars");
var app = koa();
app.keys = ['foo'];
app.use(session({ domain: '.localhost' }, app)); // THIS FAILS
@chrisveness
chrisveness / hyphen-camel.js
Last active Aug 29, 2015
Convert between camel-cased & hyphenated strings (eg SomeResourceName <=> some-resource-name)
View hyphen-camel.js
/**
* Returns camel-cased equivalent of (lower-case) hyphenated string.
*
* To enable round-tripping, hyphens not followed by a-z are left intact
* (can be checked for and/or removed manually if required).
*
* Only transforms ASCII capitals (lack of JavaScript Unicode regexp).
*/
function hyphenToCamel(str) {
// for Unicode transforms, replace [a-z] with \p{Ll} if available
@chrisveness
chrisveness / getqueryarg-splitfor.js
Created Aug 30, 2014
Get query string argument (using split/for)
View getqueryarg-splitfor.js
/**
* Returns specified argument from query string.
*
* @params {string} key - Argument to be returned.
* @returns {string} Value of key ('' for ?arg=, null for ?arg, undefined if not present).
*/
function getQueryArg(key) {
var srch = location.search.substring(1); // lose the initial '?'
var args = srch.split(/[&;]/); // list of field=value pairs
for (var i=0; i<args.length; i++) { // for each arg
@chrisveness
chrisveness / getqueryarg-regexp.js
Created Aug 30, 2014
Get query string argument (using regexp)
View getqueryarg-regexp.js
/**
* Returns specified argument from query string.
*
* @params {string} key - Argument to be returned.
* @returns {string} Value of key ('' for ?arg=, null for ?arg, undefined if not present).
*/
function getQueryArg(key) {
// look for key prefixed by ?/&/;, (optionally) suffixed
// by =val (using lazy match), followed by &/;/# or EOS
var re = new RegExp('[?&;]'+key+'(=(.*?))?([&;#]|$)');
@chrisveness
chrisveness / cookie.js
Created Aug 2, 2014
Cookie set / get / delete with safe handling of invalid characters in name & value
View cookie.js
@chrisveness
chrisveness / truncate.php
Created Jun 18, 2014
Truncate text to given length with suffixed ellipsis
View truncate.php
<?php
/**
* Truncates text to given length with suffixed ellipsis.
*
* @param string $text Original text string.
* @param int $length Length to truncate to.
* @param bool [$wholeWords=true] Whether to truncate back to whole words.
* @return string Truncated string.
*/
@chrisveness
chrisveness / ago.php
Last active Aug 29, 2015
Describe how long ago something happened in the past
View ago.php
<?php
/**
* Returns how long ago something happened in the past, showing it as
* 'n' seconds / minutes / hours / days / weeks / months / years ago.
*
* For periods over a day, it rolls over at midnight (so doesn't depend on
* current time of day), and it correctly accounts for month-lengths and
* leap-years (months and years rollover on current day of month).
*
@chrisveness
chrisveness / objencrypt.php
Created Jun 17, 2014
Encrypt/decrypt object to be stored secure from prying eyes
View objencrypt.php
<?php
/**
* Encrypts object to be stored secure from prying eyes (uses AES-256 ECB).
*
* @param object $sourceObj Object to be encrypted.
* @param string $key Key to use for encryption.
* @return string Encrypted object.
*/
function objEncrypt($sourceObj, $key)
@chrisveness
chrisveness / clean.php
Last active Aug 29, 2015
Clean up posted data
View clean.php
<?php
/**
* Cleans up posted data - trims texts & converts empty fields to null.
*
* @param mixed[] $post POST data to be cleaned.
* @return mixed[] Cleaned-up POST data.
*/
function clean($post)
{
You can’t perform that action at this time.