Skip to content

Instantly share code, notes, and snippets.

View ellemedit's full-sized avatar
🏠
Working from home

Marshall Han ellemedit

🏠
Working from home
  • Seoul
  • 02:16 (UTC +09:00)
View GitHub Profile
@ellemedit
ellemedit / mockNextRouter.tsx
Last active March 11, 2021 07:26
Next.js page level mocking renderer on Jest environment
import React from "react";
import { RouterContext } from "next/dist/next-server/lib/router-context";
import { NextRouter } from "next/router";
import { ReactNode } from "react";
export const makeMockNextRouterProvider = (router?: Partial<NextRouter>) => {
const mockRouter: NextRouter = {
basePath: "",
pathname: "/",
route: "/",
@ellemedit
ellemedit / README.md
Last active June 29, 2022 10:02
Relay Resolver + TypeScript 쓰는 법

Relay Resolvers are still considered experimental. To use them you must ensure that the ENABLE_RELAY_RESOLVERS runtime feature flag is enabled, and that the enable_relay_resolver_transform feature flag is enabled in your project’s Relay config file.

라고 주장하고 아직 @types/relay-runtime에 타입이 반영 안 돼있기 때문에, 지금 사용하려면 relay-compiler 설정 + relay-runtime 런타임 설정 + relay-runtime 타입 확장을 해야 원활합니다.

// relay.config.js 또는 package.json 파일의 'relay' 컴파일러 설정
module.exports = {
  src: "./",
  artifactDirectory: "...",
 language: "typescript",
@ellemedit
ellemedit / OperationFetcherBuilder.ts
Last active May 22, 2023 08:34
나만의 OAS Generator + Query hooks
import {
ClientBuilder,
ClientDependenciesBuilder,
ClientFooterBuilder,
ClientGeneratorsBuilder,
ClientHeaderBuilder,
ClientTitleBuilder,
generateFormDataAndUrlEncodedFunction,
generateMutatorConfig,
generateMutatorRequestOptions,
@ellemedit
ellemedit / README.md
Last active July 29, 2023 05:02
React@canary async action bug monkey patch
@ellemedit
ellemedit / next.config.mjs
Created October 26, 2023 04:15
next.js server component svg fix
const config = {
// ...
webpack(config) {
// prevent ehters.js node deps import warnings
config.externals.push({
bufferutil: "bufferutil",
"utf-8-validate": "utf-8-validate",
});
@ellemedit
ellemedit / taste.md
Last active March 1, 2024 01:00
My Taste Next.js

editorconfig

# EditorConfig is awesome: https://EditorConfig.org

# top-most EditorConfig file
root = true

[*]
indent_style = space
@ellemedit
ellemedit / .gitconfig
Created March 6, 2024 02:05
my git config
# This is Git's per-user configuration file.
[user]
name = BaHwan Han
email = [email protected]
[push]
default = current
[core]
pager = delta
@ellemedit
ellemedit / README.md
Created June 19, 2024 06:45
A ReactDOM hook that allows you to reset form optionally after submitting

Example:

function Form() {
  const [isPending, onSubmit] = useFormActionHandler((formData, reset) => {
    if (formData.get('condition') === 'X') {
      reset();
    }
    // ...
 });
@ellemedit
ellemedit / package.json
Created June 20, 2024 12:48
Subpath import package.json configuration example
{
// ...,
"imports": {
"#styled-system/*": "./src/styled-system/*/index.js",
"#*": [
"./src/*.ts",
"./src/*.tsx",
"./src/*"
]
}
@ellemedit
ellemedit / prettier.config.mjs
Last active June 20, 2024 12:59
favorite prettier config
/**
* @see https://prettier.io/docs/en/configuration.html
* @type {import("prettier").Config}
*/
const config = {
trailingComma: "all",
printWidth: 120,
tabWidth: 2,
arrowParens: "always",
semi: false,