Skip to content

Instantly share code, notes, and snippets.

View matteodem's full-sized avatar

Matteo Demicheli matteodem

View GitHub Profile
@matteodem
matteodem / code.js
Created November 7, 2019 10:53
Extreme Reusability with Functional Programming & Lodash
import { flow, map, get, add, reduce } from 'lodash/fp'
const getScore = get('score')
export const countUserScores = flow(
 map(getScore),
 reduce(add)(0),
)
@matteodem
matteodem / graphlizerSchema.js
Created March 1, 2018 08:37
Graphqlizer Basic Example
import { crud, generateTypeDefsAndResolvers } from 'meteor/easy:graphqlizer'
import { AlienCollection } from '{...}'
const alienSchema = crud('Alien', AlienCollection)
const { typeDefs, resolvers } = generateTypeDefsAndResolvers({
schemas: [alienSchema],
})
@matteodem
matteodem / powerfulResolver.js
Last active February 22, 2018 11:44
grapher + graphql + join-mongo example
import { Meteor } from 'meteor/meteor'
import transformAstToFieldSpecifiers from 'join-mongo'
const myAwesomeResolver = (args, context, root, ast) => {
return Meteor.users.createQuery({
...transformAstToFieldSpecifiers(ast),
}).fetch()
}
@matteodem
matteodem / ExtendedExample.js
Last active February 16, 2018 12:02
Graphqlizer vNEXT
import { crud, resolvers, resolver, typeDefs, typeDef, generateTypeDefsAndResolvers } from 'meteor/easy:graphqlizer'
import { AlienCollection, AlienSimpleSchema } from '{...}'
const alienSchema = {
typeDefs: [
...typeDefs('Alien', AlienSimpleSchema), // Input and Type
// or cutom
typeDef.input('Alien', MyCustomAlienSchema), // only Input
`
type CustomType {
@matteodem
matteodem / aggregation_multiple.json
Last active August 29, 2015 14:06
Aggregation - Multiple Values (Elastic Search)
{
...
"aggs": {
...
"label": {
"terms": {
"size": 10,
"shard_size": 0,
"script": "doc['labels.slug'].value"
},