Skip to content

Instantly share code, notes, and snippets.

View ferm10n's full-sized avatar

John Sanders ferm10n

View GitHub Profile
const mockRequire = require('mock-require')
const testingUtils = require('./testing_utils') // calls chai.should()
const test = testingUtils.test // exported tap
let mockSql = {
connect: function () {
return Promise.resolve({
on: () => {}
})
},
// I just transformed this shitstain which doesn't property propagate errors from doQuery...
insert (site, ...rows) {
return new Promise((resolve, reject) => {
for (let rowObject of rows) { this.checkIntegrity(rowObject) }
let q = sqlQuery.insert().into(this.fromTable).setFieldsRows(rows)
return this.doQuery(site, q).then(() => {
// return inserted row(s)
if (rows.length === 1) { resolve(rows[0]) } else { resolve(rows) }
})
@ferm10n
ferm10n / README.md
Last active September 11, 2018 18:09
YAML Schema Verbosifier

YAML Schema Verbosifier

(is that a word? ... it is now!)

More lazyefficient way for creating schemas. Technically this is for JSON schemas, but YAML is easier to read and write.

Rules:

  • infer default value by looking at direct value
  • infer type from default value
  • infer type is 'object' if it has a properties object itself
/// browser code we test against, using axios
function onClick () {
const ajaxRequestPromise = axios.get('/service-call'); // make the service call
ajaxRequestPromise.then(response => { // do something with the response
doSomethingFruity(response.data);
});
}
myButton.onclick = onClick; // bind to button
@ferm10n
ferm10n / pushbullet-cp
Created December 30, 2018 02:02
Like scp, but via pushbullet!
#!/usr/bin/env python3
import json
import sys
import os.path
import magic
import requests
token='' # <--- your API token here
targetFile = sys.argv[1]
https://open.spotify.com/playlist/0FTTjHjd1GNp7Jk9sSNaR7?si=57fs15hgTvuawSY3xmwtqg
@ferm10n
ferm10n / package-lock.json
Last active March 11, 2020 04:06
pb-notify sends a push from command line. `pb-notify title message`
{
"requires": true,
"lockfileVersion": 1,
"dependencies": {
"axios": {
"version": "0.19.2",
"resolved": "https://registry.npmjs.org/axios/-/axios-0.19.2.tgz",
"integrity": "sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA==",
"requires": {
"follow-redirects": "1.5.10"