Skip to content

TypeScript language service plugin to expose build status to external tools

License

Notifications You must be signed in to change notification settings

benchling/ts-expose-status-plugin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TypeScript expose status plugin

This is a TS language service plugin that exposes the current build state to the outside world. For example, you can use this to write a fast pre-commit check there are no TypeScript errors. Rather than needing to redo the typechecking from scratch, a CLI tool can connect directly to the language service running in your editor, which generally gives much faster results.

Usage

First add as a dev dependency:

yarn add --dev ts-expose-status-plugin

Then add as a compiler plugin to your tsconfig.json:

{
  "compilerOptions": {
    "plugins": [
      {"name": "ts-expose-status-plugin"}
    ]
  }
}

Then, from CLI code, you can connect to the language service and get all current errors:

import TSStatusClient from 'ts-expose-status-plugin/dist/TSStatusClient';

async function checkStatus(): void {
  await TSStatusClient.withClient({
    async onSuccess(client: TSStatusClient): Promise<void> {
      const errors = await client.getAllErrors();
      console.log(errors);
    },
    async onError(): Promise<void> {
      console.log('Failed to connect!');
    },
  });
}

There are also lower-level connect and disconnect static methods for keeping a persistent connection open.

About

TypeScript language service plugin to expose build status to external tools

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published