Skip to content

Instantly share code, notes, and snippets.

View richard-flosi's full-sized avatar

Richard Flosi richard-flosi

  • Remote, US
View GitHub Profile
@richard-flosi
richard-flosi / spine-html5-history-navigate.coffeescript
Last active August 29, 2015 13:57
Spine with HTML5 History. How to navigate your links without reloading your app and handle the cases when you want to open a link in a new window.
require('lib/setup')
Spine = require('spine')
$ = Spine.$
Spine.Route = require('spine/lib/route')
Stacks = require('controllers/stacks')
class App extends Spine.Controller
constructor: ->
@richard-flosi
richard-flosi / slug.js
Created March 13, 2014 22:51
Use ect.js templates with hem by adding this to your slug.js for your spine.js project.
var argv = process.argv.slice(2);
var fs = require('fs');
var path = require('path');
var hem = new (require('hem'))();
var ect = require('ect');
// ect compiler
hem.compilers.ect = function(path) {
var renderer, content, template;
renderer = ect({});
@richard-flosi
richard-flosi / package.json
Created March 17, 2014 17:15
.html extension compiler for nunjucks templates in hem for spine.
# add hem and nunjucks to your package.json
{
...
"dependencies": {
...
"hem": "~0.3.6",
"nunjucks": "~1.0.1"
}
}
@richard-flosi
richard-flosi / slug.js
Created April 9, 2014 17:59
Hem precompiler for nunjucks templates
/* jshint node: true */
var argv = process.argv.slice(2);
var fs = require('fs');
var hem = new (require('hem'))();
hem.compilers.html = function(path) {
var nunjucks = require('nunjucks'),
name = path.split('app/')[1],
opts = {
name: name,
@richard-flosi
richard-flosi / app.js
Created April 9, 2014 18:02
Spine App example with navigation method
module.exports = (function() {
var App,
Spine = require('spine'),
$ = Spine.$;
// extend Spine
require('spine/lib/local');
require('spine/lib/ajax');
require('spine/lib/route');
require('spine/lib/manager');
@richard-flosi
richard-flosi / operations.js
Created April 27, 2020 19:49
serverless express-openapi over netlify functions
const usersApi = require("./users");
module.exports = {
// /users
"post-users": usersApi.post,
"get-users": usersApi.get,
// /users/{userId}
"get-users-userId": usersApi.get,
"patch-users-userId": usersApi.patch,
"delete-users-userId": usersApi.delete,
@richard-flosi
richard-flosi / trilateration.js
Last active April 12, 2021 04:09
JavaScript Trilateration
// Created by Derrick Cohodas (dav-)
// Based on the Python example by StackExchange user wwnick from http://gis.stackexchange.com/a/415/41129
// Requires the Mathjs library - http://mathjs.org/
var math = require('mathjs')
/**
* Represents a coordinate with a distance
* @param {Number} lat Latitude
@richard-flosi
richard-flosi / async-generator.js
Created February 23, 2022 21:49
Example of *yield to pass proxy to another function compared to awaiting each next() value and applying a transformation before yielding
// When you just need to pass through the value yield from another generator function use:
yield* generatorFunction();
// When you need to manipulate each yielded value
const generator = generatorFunction();
let next = await generator.next();
while (!next.done) {
let value = next.value;
// TODO apply any transformations to value here
yield value;
@richard-flosi
richard-flosi / assertions-compareScreenshot.js
Created August 27, 2014 14:25
Nightwatch with Visual Regression testing
// assertions/compareScreenshot.js
var resemble = require('resemble'),
fs = require('fs');
exports.assertion = function(filename, expected) {
var screenshotPath = 'test/screenshots/',
baselinePath = screenshotPath + 'baseline/' + filename,
resultPath = screenshotPath + 'results/' + filename,
diffPath = screenshotPath + 'diffs/' + filename;
@richard-flosi
richard-flosi / build.sh
Created July 14, 2020 00:08
Build Script to Deploy Flutter Web app on Netlify
#!/bin/bash
# Get flutter
git clone https://github.com/flutter/flutter.git
FLUTTER=flutter/bin/flutter
# Configure flutter
FLUTTER_CHANNEL=master
FLUTTER_VERSION=v1.17.0
$FLUTTER channel $FLUTTER_CHANNEL