Skip to content

Instantly share code, notes, and snippets.

Chris O'Donnell codfish

Block or report user

Report or block codfish

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
@codfish
codfish / meta-service.js
Created Sep 16, 2019
AngularJS v1 Meta Service
View meta-service.js
// ***********************************************************************************
// meta-service.js
'use strict';
/**
* Meta Service
*
* The Meta Service allows you to abstract a lot of business logic
* that goes into setting meta & link tags for your templates.
@codfish
codfish / now-headers.json
Last active Jan 16, 2019
Cache control headers for static assets with Now. http://codfi.sh/Ukim4l
View now-headers.json
{
"version": 2,
"name": "codfish.io",
"alias": "codfish.io",
"builds": [{ "src": "package.json", "use": "@now/static-build" }],
"routes": [
{
"src": ".*\\.(js|css|jpg|jpeg|gif|png|svg|txt|ttf|woff2|webmanifest)$",
"headers": {
"Cache-Control": "public, max-age=157680000, s-maxage=157680000"
@codfish
codfish / #linting.md
Last active Sep 19, 2019
Prettier + ESLint + airbnb config + Husky + lint-staged + commitlint + markdownlint
View #linting.md

My personal & professional linting setup. Extends airbnb's ESLint config first, then Prettier. Run's Prettier as an ESLint rule via their ESLint plugin. Dynamic support for react or non-react applications depending on your project dependencies. Dynamic inclusion of Kent C Dodds' ESLint Jest config depending on your project dependencies.

Convenient opt-in configs for projects using Docker or Ethereum to avoid common false positives.

To understand more, see https://github.com/codfish/eslint-config-codfish.

To avoid having to manually setup everything and add all configuration/boilerplate code to your project, use cod-scripts instead. It was forked from kcd-scripts and ultimately inspired by react-scripts.

Why

@codfish
codfish / docblocks-spec.md
Last active Dec 20, 2018
Documenting your code
View docblocks-spec.md

Documenting Your Code

This is a detailed spec on how developers should be documenting their code. While inline code comments are very important, this specification will be focusing on docblock structure.

Docblocks are required for all class methods & properties/attributes. The reason we have this spec, and the reason that actual language standards exist for docblocks, is so that generators will know how to parse your code & render consumable html documentation.

For this reason, documentation standards follow the existing spec's that are currently community standards at the time of writing, and we should be following them.

@codfish
codfish / Ethereum event fixtures for js.md
Last active Jan 15, 2019
Ethereum event fixtures for js.
View Ethereum event fixtures for js.md

To install a relatively recent version of Faker you'll need to install from a commit. The maintainer is still active and merging new features, but does not cut new releases.

npm install --save-dev faker@Marak/faker.js#<commit-sha>

I.e. npm install --save-dev faker@Marak/faker.js#d3ce6f1 (latest commit at the time of writing).

@codfish
codfish / error-handling.js
Last active Jan 4, 2019
Default express api error handling middleware.
View error-handling.js
/**
* Handle application errors.
*
* NOTE: 500 status code is returned by default.
*
* To properly leverage this middleware, rather than return responses in your routes,
* simply set a response status in the route and then pass the error object to `next`.
* This middleware will catch that error and handle it in a consistent way across
* the entire application. For example:
*
@codfish
codfish / remove-duplicates.js
Last active Nov 20, 2018
Remove duplicate values from an array by converting it to a Set, then back to an array.
View remove-duplicates.js
[...new Set([].concat(...arrayName))]
@codfish
codfish / Dockerfile
Last active Feb 20, 2019
Example json-server module for marketing campaigns. `json-server api.js`
View Dockerfile
FROM mhart/alpine-node:11.10
RUN mkdir /app
WORKDIR /app
COPY ./package.json ./package-lock.json ./
RUN npm install
EXPOSE 4000
CMD npm run dev
@codfish
codfish / swagger.yml
Created Apr 3, 2018
Example swagger 2.0 doc with extensive use of reusable definitions, responses & parameters.
View swagger.yml
swagger: '2.0'
info:
version: '0.0.1'
title: Marketing Campaign API
host: api.example.com
basePath: /v1
@codfish
codfish / htmlentity.js
Created Feb 28, 2018 — forked from CatTail/htmlentity.js
Javascript: encode(decode) html text into html entity
View htmlentity.js
// encode(decode) html text into html entity
var decodeHtmlEntity = function(str) {
return str.replace(/&#(\d+);/g, function(match, dec) {
return String.fromCharCode(dec);
});
};
var encodeHtmlEntity = function(str) {
var buf = [];
for (var i=str.length-1;i>=0;i--) {
You can’t perform that action at this time.