Skip to content

Instantly share code, notes, and snippets.

View kleva-j's full-sized avatar
🏠
Working from home

Michael Obasi kleva-j

🏠
Working from home
View GitHub Profile
@kleva-j
kleva-j / index.ts
Created December 9, 2023 15:25
Handle api requests in React.
import { AxiosError, AxiosResponse } from "axios";
type BaseRequest<T, V> = (params?: T) => Promise<AxiosResponse<V>>;
type SuccessResponse<V> = {
code: "success";
data: V;
};
type ErrorResponse<E = AxiosError> = {
@kleva-j
kleva-j / index.tsx
Last active December 9, 2023 15:26
React HTML props in TypeScript.
import * as React from 'react';
export type AProps = React.DetailedHTMLProps<React.AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>;
export type APropsWithoutRef = React.AnchorHTMLAttributes<HTMLAnchorElement>;
export type AreaProps = React.DetailedHTMLProps<React.AreaHTMLAttributes<HTMLAreaElement>, HTMLAreaElement>;
export type AreaPropsWithoutRef = React.AreaHTMLAttributes<HTMLAreaElement>;
export type AudioProps = React.DetailedHTMLProps<React.AudioHTMLAttributes<HTMLAudioElement>, HTMLAudioElement>;
export type AudioPropsWithoutRef = React.AudioHTMLAttributes<HTMLAudioElement>;
export type BaseProps = React.DetailedHTMLProps<React.BaseHTMLAttributes<HTMLBaseElement>, HTMLBaseElement>;
export type BasePropsWithoutRef = React.BaseHTMLAttributes<HTMLBaseElement>;
@kleva-j
kleva-j / gh-pages-deploy.md
Created April 12, 2023 16:17 — forked from cobyism/gh-pages-deploy.md
Deploy to `gh-pages` from a `dist` folder on the master branch. Useful for use with [yeoman](http://yeoman.io).

Deploying a subfolder to GitHub Pages

Sometimes you want to have a subdirectory on the master branch be the root directory of a repository’s gh-pages branch. This is useful for things like sites developed with Yeoman, or if you have a Jekyll site contained in the master branch alongside the rest of your code.

For the sake of this example, let’s pretend the subfolder containing your site is named dist.

Step 1

Remove the dist directory from the project’s .gitignore file (it’s ignored by default by Yeoman).

@kleva-j
kleva-j / postgres.md
Created October 4, 2022 15:43 — forked from phortuin/postgres.md
Set up postgres + database on MacOS (M1)

Based on this blogpost.

Install with Homebrew:

$ brew install postgresql

Run server:

@kleva-j
kleva-j / endpoint.ts
Last active July 16, 2022 21:00
An implementation of a message queue system in Nodejs
import * as http from 'http';
import * as url from 'url';
import { Incoming } from './incoming.interface';
import { QueuePersistence } from './persist-queues';
let queues: QueuePersistence = new QueuePersistence();
(async () => {
const server = await http.createServer(endpoint);
server.listen(3000);

Git cheat sheet

Common commands

General

Create repository:

git init