/my-ts-mathlib

Boilerplate for small JavaScript utility library (like lodash) with TypeScript and Microbundle

Primary LanguageTypeScriptMIT LicenseMIT

my-ts-mathlib

This is a boilerplate for small JavaScript utility library (like lodash) with typescript and microbundle. example folder has various demo.

Tasks

Src

  • Basic Code in src folder

Publish

  • publish over npm
  • Type definition should be included in the project dist.
  • src, example and other folder should not be part of npm package.

UMD

  • UMD build with browser with direct script tag is working.

Browser env with Parcel + TypeScript

  • import { calRectangleArea } from 'my-ts-mathlib' should work.
  • import calRectangleArea from 'my-ts-mathlib/es/calRectangleArea' should work.
  • Vscode should show error if we send incorrect data to function.
  • npm run start should fail on providing incorrect type.
  • npm run build should fail on providing incorrect type.
  • calCircleArea should not be included in bundle

Browser env with CRA + TypeScript

  • import { calRectangleArea } from 'my-ts-mathlib' should work.
  • import calRectangleArea from 'my-ts-mathlib/es/calRectangleArea' should work.
  • Vscode should show error if we send incorrect data to function.
  • npm run start should fail on providing incorrect type.
  • npm run build should fail on providing incorrect type.
  • calCircleArea should not be included in bundle

ES Module

  • working demo for Script type="module"
  • import { calSquareArea } from './node_modules/my-ts-mathlib/dist/index.module.js'; should be working
  • import calSquareArea from './node_modules/my-ts-mathlib/dist/es/calSquareArea.js'; should be working

CommonJS - Node

  • var { calRectangleArea } = require('my-ts-mathlib') should work
  • var calRectangleArea = require('my-ts-mathlib/es/calRectangleArea') should work

Node - TypeScript

  • import { calRectangleArea } from 'my-ts-mathlib' should work.
  • import calRectangleArea from 'my-ts-mathlib/es/calRectangleArea' should work.
  • Vscode should show error if we send incorrect data to function.
  • npm run start should fail on providing incorrect type.

CodeSandbox Demo

  • use the package it in code-sandbox

CRA TypeScript App

  • package should work in CRA TypeScript App

Test Cases

  • 100% CodeCoverage
  • CircleCI build should run test cases.

Pull Request

  • When somebody generate pull request, pull request should show test results.

Documentation over gh-pages

  • Auto generate documentation like lodash.