Skip to content

Instantly share code, notes, and snippets.

View eric-burel's full-sized avatar
Writing courses at nextjspatterns.com

Eric Burel eric-burel

Writing courses at nextjspatterns.com
View GitHub Profile
VendingMachines.addField([
{
fieldName: 'lastRefillAt',
fieldSchema: {
type: Date,
optional: true,
viewableBy:['runners', 'managers', 'admins'],
resolveAs: {
type: 'Date',
resolver(vendingMachine, args, context) {
class MyService {
constructor(options) {
// options must contain the knexClient
// (simply pass it when initializing the service)
this.options = options || {};
}
async find(params){
const { db } = this.options
const q = db.raw(`SELECT * FROM TABLE`)
// my-service.hooks.js
module.exports = {
before:{
find:[
async findQuery(context){
// get the client (Express global)
const { db } = context.app.get('knexClient')
// build and run the query
const q = db.raw(`SELECT * FROM TABLE`)
const res = await q
@eric-burel
eric-burel / geeglee-redux-nested.jsx
Created April 16, 2018 20:03
geeglee-redux-nested
<ObjectElement keyPath="user" onChange={doChange}>
<div>
<StringInput keyPath="name"/>
</div>
</ObjectElement>
@eric-burel
eric-burel / geeglee-redux-form.jsx
Created April 16, 2018 20:02
geeglee-redux-form
<ArrayElement keyPath="subsets" onChange={updateReduxState}>
<ObjectElement wrapper>
<StringInput keyPath="name"/>
<QueryInput keyPath="column" options={availableColumns}/>
<StringInput keyPath="value" />
<ColorInput keyPath="color" />
</ObjectElement>
<ArrayElement/>
@eric-burel
eric-burel / geeglee-redux-lowdb.js
Created April 16, 2018 19:57
geeglee-redux-lowdb
const lodashId = require('lodash-id')
const FileSync = require('lowdb/adapters/FileSync')
const adapter = new FileSync('db.json')
const db = low(adapter)
db._.mixin(lodashId)
// We need to set some default values, if the collection does not exist yet
// We also can store our collection
@eric-burel
eric-burel / geeglee-dataviz-rpc.js
Created April 14, 2018 09:48
geeglee-dataviz-rpc
rpcServer.invoke('fastFilter', 'my-filter-id', { "range": [10,20] }, (err, done) => {
// handle response or error
});
@eric-burel
eric-burel / geeglee-dataviz-d3.js
Created April 14, 2018 09:46
geeglee-dataviz-d3
var field = svg.selectAll("g")
.data(fields)
.enter()
.append("g");
@eric-burel
eric-burel / geeglee-dataviz-svg-component.jsx
Created April 14, 2018 09:45
geeglee-dataviz-svg-component
import React from 'react'
const Rect = (props) => <rect {...props}></rect>
export const MyFirstAwesomeChart = ({x, y}) =>
<svg>
<Rect x={x} y={y} width={100} height={50} />
</svg>
@eric-burel
eric-burel / geeglee-react-style-wrapper.jsx
Created April 14, 2018 09:44
geeglee-react-style-wrapper
const StyledWrapper = styled.div`
.foo-component{
background-color: red;
.foo-component__item{
background-color: blue;
}
}
`
<StyleWrapper>
<ul className="foo-component">