Skip to content

Instantly share code, notes, and snippets.

@cletusw
cletusw / Flow.scpt
Created October 30, 2015 20:31
Change your background at a specific time (Mac OS X). Use `crontab -e` to edit your crontab:
tell application "Finder"
-- wrapped in a try block for error suppression
try
set mainDisplayPicture to "/Users/claytonwatts/Pictures/Flow.jpg"
-- set the picture for additional monitors, if applicable
tell application "System Events"
apply.whitespace fix
core.whitespace 'space-before-tab,-indent-with-non-tab,trailing-space'
core.ignorecase true
diff.renames copies
merge.ff only
merge.conflictstyle diff3
pull.ff only
push.default upstream
push.followTags true
rerere.enabled 1
@cletusw
cletusw / test
Last active September 26, 2016 16:56
http://sjc-uhls-proxy116.ustream.tv/watch/playlist.m3u8?cid=9408562&appType=11&appVersion=2&locks=97d170e1550eee4afc0af065b78cda302a97674c&geo=US&geocity=Riverton&userId=&connectionId=sjc-flot-omega02_5962147&ts=1474908924&ip=50.207.240.162&cdn=uhs_akamai&sgn=d94ad210a8701db5c72f0924bb0df4f7179b8df3
@cletusw
cletusw / html-webpack-header-loader.js
Last active July 14, 2017 15:20
Add javascript to be added to the webpack-built JS file directly in your HTML (for declaring dependencies, etc.)
/*
Usage:
// template.html
<script type="text/javascript-webpack-header">
console.log('loaded template');
require('./nested.js');
</script>
<h1>This is the template</h1>
@cletusw
cletusw / almost-amd-to-commonjs.js
Last active August 16, 2017 21:28
Codemod: AMD in CommonJS style -> CommonJS
/**
* Run this with jscodeshift
* Live demo: https://astexplorer.net/#/gist/3aec6fa8858f3ec0e0a82ab5ec4ad32d/latest
*
* Converts:
* define(function (require) {
* var React = require('react');
* const props = { foo: 'bar' };
* return React.createClass(props);
* });
@cletusw
cletusw / remove-top-use-strict.js
Last active August 16, 2017 21:39
Remove top-level `"use strict";`. It can cause problems with bundlers that concatenate scripts, and so is not a recommended practice.
module.exports = function transformer(file, api) {
const j = api.jscodeshift;
return j(file.source)
.find(j.ExpressionStatement).filter(path => (
path.parentPath.node.type === "Program" &&
path.value.expression.type === 'Literal' &&
path.value.expression.value === 'use strict'
))
.forEach(path => j(path).remove())
@cletusw
cletusw / amd-to-common.js
Created August 16, 2017 21:30
A codemod to transform amd style includes into commonjs includes
/**
* Modified from https://github.com/skratchdot/amd-to-commonjs-codemod
*/
const buildRequire = (j, v, r) => {
let code = "";
if (v && v.type === "Identifier" && v.name.length) {
code += `const ${v.name}`;
}
if (r && r.type === "Literal" && r.value.length) {
@cletusw
cletusw / each-with-this-to-arrows.js
Last active August 17, 2017 18:08
Converts underscore/lodash `.each()` with `this` context to use arrow functions.
/**
* Converts underscore/lodash `.each()` with `this` context to use arrow functions.
*
* Run this with jscodeshift
* Live demo: https://astexplorer.net/#/gist/0a47495d69719449d2afbb0f0c50f8ea/latest
*
* Converts:
* _.each(array, function(item) {
* // ...
* }, this);
@cletusw
cletusw / each-with-context-to-bind.js
Created August 17, 2017 18:13
Converts underscore/lodash `.each()` with context to use Function.prototype.bind()
/**
* Converts underscore/lodash `.each()` with context to use Function.prototype.bind()
*
* Run this with jscodeshift
* Live demo: https://astexplorer.net/#/gist/b4294e95ef898af1d19cd3db19f9e8b0/latest
*
* Converts:
* _.each(array, function(item) {
* // ...
* }, context);
@cletusw
cletusw / angular-injection-to-import.js
Last active May 16, 2019 23:46
Converts the given angular injected parameter into an explicit require statement
/*
* Converts the given angular injected parameter into an explicit require statement
*
* Run this with jscodeshift
* @example
* jscodeshift . --specifier='Auth' --source='application/Auth'
*
* Live demo: https://astexplorer.net/#/gist/5492d2b9850a451d8e8d532bc64f21ce/latest
*
* Converts: