Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@nkt
nkt / restify-joi-validation.js
Created May 17, 2015 15:16
Restify middleware for validation using Joi package
const {BadRequestError} = require('restify/lib/errors');
const Joi = require('joi');
module.exports = function validationPlugin() {
const fields = ['params', 'query', 'body'];
return function validationMiddleware(req, res, next) {
if (!req.route || !req.route.validate) {
return next();
}
@nkt
nkt / post-merge
Created May 31, 2015 21:26
Frontend git hooks
#!/bin/sh
# List changed files
changed_files="$(git diff-tree -r --name-only --no-commit-id ORIG_HEAD HEAD)"
check_file() {
echo "$changed_files" | grep --quiet "$1" && eval "$2"
}
check_file "package.json" "npm install"
(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
module.exports = {
foo: 'bar'
};
},{}],2:[function(require,module,exports){
var foo = require('./foo.js');
},{"./foo.js":1}]},{},[2]);
const React = require('react');
const classNames = require('classnames');
const Input = React.createClass({
propTypes: {
id: React.PropTypes.string.isRequired,
className: React.PropTypes.string,
title: React.PropTypes.string,
help: React.PropTypes.string,
type: React.PropTypes.oneOf([
@nkt
nkt / README.md
Last active August 29, 2015 14:23
CLI Yandex.Translate

Usage

trans hello # привет
trans hello | say # it's saying!
@nkt
nkt / exports.md
Last active February 28, 2016 11:25
Migrate to ES2015 using regular expressions

Find:

/^module\.exports\s+=\s+(.+?);?$/

Replace:

export default $1;
├── atom-ternjs@0.6.8
├── autocomplete-modules@1.0.0
├── chester-atom-syntax@0.1.1
├── circle-ci@0.10.0
├── docblockr@0.7.3
├── emmet@2.3.12
├── file-icons@1.5.8
├── language-jade@0.5.1
├── language-nginx@0.5.4
├── language-rust@0.4.3
require('crypto').randomBytes(32, function(ex, buf) {
console.log(buf.toString('hex'));
});
@nkt
nkt / provision.sh
Created July 18, 2015 22:57
Ubuntu provisioning for Docker
sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get dist-upgrade -y
sudo apt-get install wget -y
wget -qO- https://get.docker.com/ | sh
@nkt
nkt / compress.js
Last active August 29, 2015 14:25
REST response compressing
function compress(objects) {
const fieldsSet = {};
for (let i = 0; i < objects.length; i++) {
const keys = Object.keys(objects[i]);
for (let j = 0; j < keys.length; j++) {
fieldsSet[keys[j]] = 1;
}
}
const fields = Object.keys(fieldsSet);