Skip to content

Instantly share code, notes, and snippets.

View tricoder42's full-sized avatar
🕴️
I may be slow to respond.

tricoder42

🕴️
I may be slow to respond.
View GitHub Profile
@tricoder42
tricoder42 / README.md
Last active May 29, 2019 16:29
Webpack plugin which injects code, module dependency and async context to each chunk

I'm writing a webpack plugin, which should generate message catalogs for each chunk.

✅ I know how to split main message catalog by inspecting modules inside chunk.

In build folder, I have:

index.js
index.en.js
index.cs.js
@tricoder42
tricoder42 / README.md
Last active February 10, 2023 08:54
Centralized routing for Next.js

I'm using this approach to have centralized route config in Next.js. I don't have the fully automated solution. Right now I'm writing route configs and links manually to figure out if it works and what are the drawbacks.

I believe the automation is the last step to make it completely seamless.

1. Define routes in centralized config

This is the only file that needs to be wrote manually.

@tricoder42
tricoder42 / example.ts
Created April 25, 2019 08:15
Next.js Route Configs
// I believe this file could be automatically generated. Each route
// could be typechecked that all params are passed into it.
import { projectRoute } from "routes.js"
import { ProjectLink } from "routes.utils.ts"
export const ProjectLink = makeLink(projectRoute)
// Example usage of `ProjectLink` component. It's like regular Link, but it accepts `params`
// which are injected into `routeConfig.as` pattern.
@tricoder42
tricoder42 / app.js
Last active October 19, 2018 17:55 — forked from NgesBrian/app.js
error message is this.props.language is undefined
import React, { Component } from 'react';
import './App.css';
import { connect } from 'react-redux';
import Main from './Main/Main.js';
import FooterPage from './Footer/Footer.js';
import { I18nProvider } from '@lingui/react'
class App extends Component {
  1. Query projectIssue is resolved with an object "IssueType:18"
  2. Mutation issueEdit is called and returns the same object with updated attachments
  3. Object "IssueType:18" is updated correctly in cache (checked in Apollo DevTool and also manually by store.readFragment)
  4. Query projectIssue reloaded from cache automatically, but this this it doesn't return object

In Apollo DevTool I see this field in root query: issue({"issueId":"18","project":"IEP001"}): IssueType:18. I believe the query should be updated when object IssueType:18 in cache is updated, but when it happens, the object is empty.

@tricoder42
tricoder42 / deprecate.js
Created August 25, 2018 13:42
Deprecate renamed packages on NPM and update their READMEs
/*
Usage: node ./deprecate.js OTP_TOKEN
OTP_TOKEN is used for 2FA
*/
const path = require("path")
const fs = require("fs-extra")
const { exec } = require("child_process")
const flip = () => ({
flipResults: Math.random()
})
// creation of headlesscomponent
class CoinFlip extends React.Component {
state = flip()
handleClick = () => this.setState(flip)
api() {

GraphQL example

Graphene Tutorial

Example of authentication mutations and user queries in GraphQL API.

@tricoder42
tricoder42 / 00_GraphQL_Subscriptions.md
Last active February 22, 2023 12:40
GraphQL Subscriptions with django-channels

GraphQL Subscription with django-channels

Django channels are official way for implementing async messaging in Django.

The primary caveat when working with GraphQL subscription is that we can't serialize message before broadcasting it to Group of subscribers. Each subscriber might use different GraphQL query so we don't know how to serialize instance in advance.

See related issue

@tricoder42
tricoder42 / schema.py
Created September 8, 2017 09:38
GraphQL in Python - Concept
class ProjectType(graphql.DjangoModel):
class Meta:
model = Project
class ProjectSchema(graphql.DetailQuery,
graphql.ListQuery,
graphql.CreateMutation,
graphql.UpdateMutation,
graphql.DeleteMutation,