andreidmt / tsd-lite

Test your TypeScript types easily

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

tsd-lite

Test your TypeScript types easily.

version license node-ci

This is a lighter version of tsd. Slightly reworked codebase allows tsd-lite to be a tool which simply tests your types.

Note This library is intended for programmatic use only. For CLI implementation see jest-runner-tsd or tsd-lite-cli for a standalone version.

Motivation

While tsd suites perfectly for JavaScript libraries which declare their types in .d.ts files, its usage with monorepos written in TypeScript may become cumbersome. tsd-lite is an attempt to address these and similar issues.

Differences from tsd

  • tsd-lite performs only type testing without any additional checks or rules.
  • Exposes only general type related assertions: expectAssignable, expectDeprecated, expectType and their counterparts. Currently other APIs (like expectNever, expectDocCommentIncludes and printType) are not implement.
  • Comes with no default compiler options.
  • Reads TypeScript compiler options from the nearest tsconfig.json for each test file (does not read options from package.json).
  • tsd-lite is optionally strict. You should add "strict": true to the nearest tsconfig.json (it can be project or test specific) to use strict assertions.
  • @tsd/typescript package is moved to peer dependencies.
  • tsd-lite allows only programmatic usage.

Install

yarn add -D tsd-lite @tsd/typescript
# or
npm install -D tsd-lite @tsd/typescript

Remember to install @tsd/typescript. It is a required peer dependency.

Usage

import tsdLite from "tsd-lite";

const { assertionsCount, tsdResults } = tsdLite(
  "/absolute/path/to/testFile.test.ts"
);

API Reference

tsdLite(testFilePath: string)

The exported function takes fully resolved path to a test file as an argument and returns an object:

{
  assertionsCount: number;
  tsdResults: Array<{
    messageText: string | ts.DiagnosticMessageChain;
    file?: ts.SourceFile;
    start?: number;
  }>;
}

tsd-lite will throw if TS compiler encountered an error while parsing tsconfig.json or a syntax error is found while compiling the code.

License

MIT

About

Test your TypeScript types easily

License:MIT License


Languages

Language:TypeScript 96.3%Language:JavaScript 3.7%