Skip to content

Instantly share code, notes, and snippets.

@shilman
shilman / storybook-docs-typescript-walkthrough.md
Last active January 29, 2025 02:47
Storybook Docs Typescript Walkthrough

Storybook Docs w/ CRA & TypeScript

This is a quick-and-dirty walkthrough to set up a fresh project with Storybook Docs, Create React App, and TypeScript. If you're looking for a tutorial, please see Design Systems for Developers, which goes into much more depth but does not use Typescript.

The purpose of this walkthrough is a streamlined Typescript / Docs setup that works out of the box, since there are countless permutations and variables which can influence docs features, such as source code display, docgen, and props tables.

Step 1: Initialize CRA w/ TS

npx create-react-app cra-ts --template typescript
@hound672
hound672 / dataclass_to_pydantic.py
Last active May 22, 2023 07:33
Dataclass to Pydantic BaseModel
import unittest
from typing import Any, Type
from dataclasses import dataclass, is_dataclass
from pydantic import BaseModel, ValidationError
from pydantic.main import MetaModel
AnyType = Type[Any]
@nathanpeck
nathanpeck / speed-ecs-deploy.ts
Created August 29, 2019 15:00
An AWS CDK deployment to AWS Fargte, optimized for speed
import ec2 = require('@aws-cdk/aws-ec2');
import ecs = require('@aws-cdk/aws-ecs');
import elbv2 = require('@aws-cdk/aws-elasticloadbalancingv2');
import cdk = require('@aws-cdk/core');
class PublicFargateService extends cdk.Stack {
constructor(scope: cdk.App, id: string) {
super(scope, id);
// Create VPC and Fargate Cluster
@aleksik
aleksik / getUsers.js
Created February 8, 2018 17:06
jest mock node-fetch
const fetch = require('node-fetch')
const getUsers = () => fetch('https://reqres.in/api/users')
.then(res => res.json())
module.exports = getUsers
@stevekinney
stevekinney / method_missing.js
Last active February 27, 2020 08:11
Ruby's `method_missing` implemented in JavaScript using ES6 proxies.
// This will only work in environments that support ES6 Proxies.
// As of right now, that's pretty much only Firefox.
function Refrigerator(foods) {
this.foods = foods;
return new Proxy(this, {
get: function (receiver, name) {
if (name in receiver) {