Skip to content

Instantly share code, notes, and snippets.

@pedroraft
pedroraft / index.js
Last active April 15, 2018 17:09
Basic graphql server
const { GraphQLServer } = require('graphql-yoga')
const typeDefs = `
type Query {
hello(name: String): String!
}
`
const resolvers = {
Query: {
@pedroraft
pedroraft / index.js
Last active April 15, 2018 18:29
medium tutorial graphql auth, passing the token to resolvers
const jwt = require('jsonwebtoken')
//...
const makeContext = (req) => {
if (!req.event || !req.event.headers || !req.event.headers.Authorization) {
return {} // no auth yet
}
const token = req.event.headers.Authorization;
const decoded = jwt.verify(
token.replace('Bearer ', ''),
'secret'
@pedroraft
pedroraft / index.js
Last active April 15, 2018 18:38
medium tutorial token validation directive
const {SchemaDirectiveVisitor} = require('graphql-tools')
const {defaultFieldResolver} = require('graphql')
//...
class AuthDirective extends SchemaDirectiveVisitor {
visitFieldDefinition(field) {
const {resolve = defaultFieldResolver} = field
const {roles: expectedRoles = []} = this.args
console.log(expectedRoles.length);
field.resolve = (...args) => {
@pedroraft
pedroraft / .env
Last active October 29, 2022 08:21
full graphql jwt auth example
JWT_SECRET=secret
@pedroraft
pedroraft / DisplayProductID-59f1
Created April 27, 2019 16:13
lg 25' 21:9 config /System/Library/Displays/Contents/Resources/Overrides/DisplayVendorID-1e6d
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>DisplayProductID</key>
<integer>23025</integer>
<key>DisplayProductName</key>
<string>SwitchResX4 - LG ULTRAWIDE</string>
<key>DisplayVendorID</key>
<integer>7789</integer>
import React, { Component } from 'react';
import { Image } from 'react-native';
import Svg, { Path } from 'react-native-svg';
import styled from 'styled-components/native';
import { Colors, moderateScale } from '../../constants';
import { LevelCircleContainer } from '../shared/components/level/LevelDetails/styled';
import { Box, Container, Text } from '../shared/ui';
import { Icons } from '../shared/ui/icons';
import { AnimatedCircularProgress } from 'react-native-circular-progress';
@pedroraft
pedroraft / ZoomableImage.tsx
Last active March 7, 2020 20:17
ZoomableImage
import React from 'react'
import { Animated, Image, StyleSheet, ImageSourcePropType } from 'react-native'
import {
PinchGestureHandler,
PinchGestureHandlerStateChangeEvent,
State,
} from 'react-native-gesture-handler'
import { Container } from '../ui'
import Colors from '../../constants/Colors'
@pedroraft
pedroraft / index.ts
Last active January 29, 2020 16:14
React native shadow defaults
import { ShadowStyleIOS } from 'react-native';
export default (
depth?: 'min' | 'default' | 'max',
color?: string,
): {
elevation: number;
} & ShadowStyleIOS => {
switch (depth) {
case 'min':
@pedroraft
pedroraft / index.ts
Created January 29, 2020 16:24
Typescript color palette utils
// TODO: typing of this could be better
export const getColor = <T>(colorPalette: T, defaultColor: keyof T) => (
level?: keyof T,
) => (colorPalette[level || defaultColor] as unknown) as string;
export interface IColorPaletteNumbered {
0: string;
1: string;
2: string;
3: string;
@pedroraft
pedroraft / redash-example.tsx
Created March 5, 2020 20:43
redash reanimated color interpolation spring loop
import { useNavigation } from '@react-navigation/native';
import React from 'react';
import Animated, { Easing, set, useCode } from 'react-native-reanimated';
import { interpolateColor, loop, useValues } from 'react-native-redash';
import { scale } from 'react-native-size-matters';
import { Container, Touchable } from '../../components';
import { COLORS } from '../../utils';
const Line: React.FC<{ color: Animated.Node<number> }> = ({ color }) => (
<Animated.View