Skip to content

Instantly share code, notes, and snippets.

View voodooattack's full-sized avatar

Abdullah A. Hassan voodooattack

View GitHub Profile
@voodooattack
voodooattack / mingw_install_all.sh
Created December 26, 2011 17:02
MinGW package installer [INSTALLS ALL PACKAGES]
#!/bin/sh
(env sed --version &> /dev/null || (echo -e "GNU sed not found, attempting to install package:\n";\
(exec 3>&1 4>&2; sed_error=$( { mingw-get install msys-sed 2>&4 1>&3; } 2>&1 ); exec 3>&- 4>&-;\
if ($sed_error); then echo "Could not install GNU sed, aborting.."; exit 1; fi))) && sed_ver_str=\
$(env sed --version) && sed_ver=$(echo $sed_ver_str | sed -n 's/.*version \([0-9\.]*\).*/\1/p') &&\
echo "GNU sed is already installed. (version $sed_ver)" && mingw-get update && PACKAGES=$(mingw-get list\
| sed -ne "s/\(^Package\:\)[[:blank:]]\?\([[:alnum:][:punct:]]\+\).*$/\2\\n/p")\ && echo -en \
"\nInstalling packages:\n\n$(echo $PACKAGES | tr ' ' '\n' | sort -d | pr -3 -atT)\n\n" && echo -en\
"Package Count: $(echo $PACKAGES | tr ' ' '\n' | wc -l -- | tr -d '[:space:]' && echo)\n\n" && read\
-p "Press return to install" -s && mingw-get --verbose=2 install $PACKAGES
@voodooattack
voodooattack / fiberify.js
Last active August 29, 2015 14:26
Forcing express.js to use Fibres for ALL REQUESTS.
import Fiber from 'fibers';
// Modify express to always spawn a new fibre if none are active.
export default function (router) {
var oldProcess = router.process_params;
if (oldProcess)
router.process_params = function(...args) {
if (!Fiber.current)
Fiber(oldProcess.bind(router, ...args)).run();
else
oldProcess.apply(router, args);
@voodooattack
voodooattack / app.js
Last active August 29, 2015 14:27
restify: Generate isomorphic Marty.js services for baucis controllers.
Marty.HttpStateSource.removeHook('parseJSON');
Marty.HttpStateSource.addHook({
id: 'CSRF',
priority: 1,
before(req) { req.headers['CSRF-Token'] = /* ... obtain a csrf token from somewhere in your application ... */ }
});
class Application extends Marty.Application {
constructor(options = {}) {
var startTime = Date.now()
var fs = require('fs')
var Iconv = require('iconv').Iconv
var cluster = require('cluster')
var workers;
if (cluster.isMaster) workers = [1, 2, 3, 4].map(_ => cluster.fork())
if (!cluster.isMaster)
{
import { GraphQLSchema } from 'graphql/type';
import { graphql } from 'graphql';
import { type, query, mutation, field, iface, Schema } from '../src';
class MySchema extends Schema { }
/**
* Declare a basic interface
*/
@voodooattack
voodooattack / combine-graphql.js
Last active February 6, 2022 15:11
Combine two GraphQL schemas
import { parse, visit, print } = from 'graphql/language';
/**
* Combine the fields of two or more AST nodes, does no error checking!
* @param types An array with types to combine.
* @returns {*}
*/
export function combineASTTypes(types) {
return types.reduce((p, n) => Object.assign(p, n, { fields: n.fields.concat(p.fields || []) }), {});
}
@voodooattack
voodooattack / directives.js
Last active November 25, 2021 17:47
Applies static directives to GraphQL schema AST.
import { visit } from 'graphql/language';
/**
* Calls directives with a `resolveStatic` hook at the time of parsing.
* @param ast GraphQL schema AST.
* @param directives The directives collection.
* @param throwOnMissing Should we throw if an unknown directive is encountered?
* @returns {*} Revised AST as transformed by the directives.
*/
export function applyStaticDirectivesToAST(ast, directives, throwOnMissing = true) {
@voodooattack
voodooattack / gql-directives.js
Last active January 5, 2020 09:57
GraphQL-Sequelize auto-model functionality. Directly translates the schema language into database models via directives.
const { parse, visit, print, Kind, BREAK } = require('graphql/language');
const { buildASTSchema } = require('graphql/utilities');
const { addResolveFunctionsToSchema } = require('graphql-tools');
const Sequelize = require('sequelize');
const { graphql } = require('graphql');
const jexl = require('jexl');
const deepAssign = require('deep-assign');
const { resolver: sequelizeResolver } = require('graphql-sequelize');
const { inspect } = require('util');
@voodooattack
voodooattack / magic.md
Last active September 16, 2018 20:13
Spell specs for the story: The Magineer, you can read it at: https://www.themagineer.com/. The official document is now located at: https://www.themagineer.com/spell-syntax

The Science Of Magic

Forces:

Spatial Manipulation:

  • Manipulate (Attract/Repel/Move) (Velocity Manipulation)
  • Spin (Angular Velocity Manipulation)

Atomic Manipulation:

  • Compress <--> Expand
@voodooattack
voodooattack / README.md
Last active October 2, 2017 01:11
Make Vulcan.js self-contained.

Internal GraphQL for Vulcan.js

To make a GraphQL query on a Vulcan.js server, your server has to connect to itself via a new HTTP connection every time it receives a request.

This package makes it so that Vulcan’s GraphQL queries never leave the process. All GraphQL requests are processed with no overhead.

See also: webtoken-session