Skip to content

Instantly share code, notes, and snippets.

@IanKeen
IanKeen / AnalyticsReducer.swift
Created January 16, 2024 04:27
TCA: Example of creating an Analytics component to get before/after state
public protocol AnalyticsReducer {
associatedtype State
associatedtype Action
func analytics(before: State, after: State, action: Action) -> Effect<Action>
}
public struct _AnalyticsReducer<Base: Reducer, Analytics: AnalyticsReducer>: Reducer where Analytics.State == Base.State, Analytics.Action == Base.Action {
@usableFromInline
let base: Base
@bradfrost
bradfrost / gist:10906886
Last active July 17, 2021 15:39
Starter Kit Gruntfile.js
module.exports = function(grunt) {
// Configuration
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
concat: {
dist: {
src: [
'source/js/libs/*.js', // All JS in the libs folder
@szimmers
szimmers / Gruntfile.js
Created October 22, 2013 14:30
example grunt file for running tasks in subdirectories, each which have their own grunt file
module.exports = function(grunt) {
grunt.registerTask('buildapp', function(dir) {
var done = this.async();
grunt.log.writeln('processing ' + dir);
grunt.util.spawn({
grunt: true,
args:['jshint', 'build', 'test', 'deploy'],
@ryanflorence
ryanflorence / static_server.js
Last active July 3, 2025 03:26
Node.JS static file web server. Put it in your path to fire up servers in any directory, takes an optional port argument.
var http = require("http"),
url = require("url"),
path = require("path"),
fs = require("fs")
port = process.argv[2] || 8888;
http.createServer(function(request, response) {
var uri = url.parse(request.url).pathname
, filename = path.join(process.cwd(), uri);