• Stars
    star
    586
  • Rank 76,279 (Top 2 %)
  • Language
    TypeScript
  • License
    MIT License
  • Created over 3 years ago
  • Updated over 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A modern TypeScript project setup, for Node.js and browsers

TypeScript Boilerplate for 2022

Build and test status

TypeScript project boilerplate with modern tooling, for Node.js programs, libraries and browser modules. Get started quickly and right-footed ๐Ÿš€

See also the introduction blog post: Starting a TypeScript Project in 2021.

Getting Started

# Clone the repository (you can also click "Use this template")
git clone https://github.com/metachris/typescript-boilerplate.git your_project_name
cd your_project_name

# Edit `package.json` and `tsconfig.json` to your liking
...

# Install dependencies
yarn install

# Now you can run various yarn commands:
yarn cli
yarn lint
yarn test
yarn build-all
yarn ts-node <filename>
yarn esbuild-browser
...
  • Take a look at all the scripts in package.json
  • For publishing to npm, use yarn publish (or npm publish)

esbuild

esbuild is an extremely fast bundler that supports a large part of the TypeScript syntax. This project uses it to bundle for browsers (and Node.js if you want).

# Build for browsers
yarn esbuild-browser:dev
yarn esbuild-browser:watch

# Build the cli for node
yarn esbuild-node:dev
yarn esbuild-node:watch

You can generate a full clean build with yarn build-all (which uses both tsc and esbuild).

  • package.json includes scripts for various esbuild commands: see here
  • esbuild has a --global-name=xyz flag, to store the exports from the entry point in a global variable. See also the esbuild "Global name" docs.
  • Read more about the esbuild setup here.
  • esbuild for the browser uses the IIFE (immediately-invoked function expression) format, which executes the bundled code on load (see also evanw/esbuild#29)

Tests with Jest

You can write Jest tests like this:

import { greet } from './main'

test('the data is peanut butter', () => {
  expect(1).toBe(1)
});

test('greeting', () => {
  expect(greet('Foo')).toBe('Hello Foo')
});

Run the tests with yarn test, no separate compile step is necessary.

Documentation, published with CI

You can auto-generate API documentation from the TypeScript source files using TypeDoc. The generated documentation can be published to GitHub / GitLab pages through the CI.

Generate the documentation, using src/main.ts as entrypoint (configured in package.json):

yarn docs

The resulting HTML is saved in docs/.

You can publish the documentation through CI:

This is the documentation for this boilerplate project: https://metachris.github.io/typescript-boilerplate/

References

Feedback

Reach out with feedback and ideas:

More Repositories

1

logzero

Robust and effective logging for Python 2 and 3.
Python
1,028
star
2

pdfx

Extract text, metadata and references (pdf, url, doi, arxiv) from PDF. Optionally download all referenced PDFs.
Python
1,002
star
3

vue-highlightjs

Syntax highlighting with highlight.js for Vue.js 2.x
JavaScript
336
star
4

RPIO

RPIO is a GPIO toolbox for the Raspberry Pi.
C
325
star
5

appengine-boilerplate

Boilerplate setup for App Engine with html5-boilerplate 2.0, OpenID, memcache, user preferences, and more
JavaScript
185
star
6

flashbotsrpc

Golang client for Flashbots Relay, mev-geth and standard Ethereum JSON-RPC API endpoints
Go
136
star
7

eth-go-bindings

Go bindings for Ethereum smart contracts: ERC20, ERC165 and ERC721, ERC777, ERC1155
Go
87
star
8

py2app

Fork of the original py2app from https://bitbucket.org/ronaldoussoren/py2app
Python
72
star
9

flashbots

Flashbots utilities in Go: Blocks & Transactions API, and tools to spot bundle and block irregularities
Go
42
star
10

flashbots-ethers-example

Flashbots Ethers TypeScript example for Node.js and browser
TypeScript
37
star
11

most-simple-ajax-chat-ever

Fun project from back in 2006 ^^
HTML
30
star
12

micropython-ctl

TypeScript library for talking to MicroPython devices from websites/webapps, Node.js and Electron apps
TypeScript
27
star
13

raspberrypi-utils

Collection of utilities for the Raspberry Pi
Python
21
star
14

go-ethutils

Go helpers for working with Ethereum.
Go
20
star
15

feedmailer

RSS to Email Webapp (Python, AppEngine)
Python
17
star
16

retrofit2-samples

Samples for Retrofit 2.0
Java
15
star
17

wpscanner

Wordpress security scanner written in Python
Python
13
star
18

micropython-captiveportal

Minimal async captive portal for MicroPython (compatible with uasyncio v3/MicroPython 1.13+ as well as earlier versions)
Python
11
star
19

eth-was-tx-uncled

Go
11
star
20

django-boilerplate

Django Boilerplate
Python
10
star
21

binary-serializer

Minimalistic binary serialization protocol (a la protocol buffers) with Python and Java implementations.
Python
9
star
22

rfid-music-player

A simple RFID music player for kids (runs on a Raspberry Pi)
Python
9
star
23

coz-python-smart-contract-workshop

8
star
24

raspberrypi-django

Raspberry Pi Django Setup
Python
8
star
25

python-posix-daemon

Simple and efficient Python daemon framework based on Sander Marechal's code.
Python
7
star
26

android-bluetooth-spp

Bluetooth Serial Communication with Android + PC/Arduino
Python
7
star
27

jekyll-boilerplate

CSS
7
star
28

metalab-git-workshop

Repository for the GIT Workshop at Metalab
6
star
29

android-apprater

Prompt engaged users to rate your app in the Android market
Java
5
star
30

flashbots-tx-telegram-bot

Telegram bot to notify about failed 0-gas and flashbots tx
Go
3
star
31

GridGrouper

Group similar members close to each other in a grid
Python
2
star
32

tornado-boilerplate

Boilerplate for the tornado web framework
JavaScript
2
star
33

pdfx-gui

PyQt/QML Gui for PDFx
Python
2
star
34

androidsnippets.com

Rewrite of androidsnippets.com for relaunch
Python
2
star
35

photoblog

Python
2
star
36

micropython-minimal-webserver-asyncio3

Minimal MicroPython webserver / TCP connection handler using uasyncio v3 (MicroPython 1.13+), with fallback for earlier versions of uasyncio / MicroPython
Python
2
star
37

infomatic

Software for Picture in Picture Mode with a Raspberry Pi
Python
1
star
38

photoblog-styles

1
star
39

pifm

C
1
star
40

HN-Reduce

Chrome extension to remove stories on HN
JavaScript
1
star
41

Climbing-Log

Java
1
star
42

clicklooper

Raspberry Pi audio player which jumps to next album on mouse click
Python
1
star
43

metachris.github.com

JavaScript
1
star
44

raspberrypi-tools

Shell
1
star
45

python-tornado-tcp-boilerplate

Python
1
star
46

python-raspberrypi-boilerplate

Boilerplate Python Project for the Raspberry Pi
Python
1
star
47

Snapshotter

web.py app that takes snapshots from a website and stores them in S3
Python
1
star
48

pypi-downloads-tracker

Python
1
star
49

csspivot

JavaScript
1
star
50

boilerplates

various boilerplates
Vim Script
1
star
51

neo-cli-ci

Continuous integration setup for neo-cli
Shell
1
star