@ef-carbon/tspm

A simple TypeScript document object model

Stats

StarsIssuesVersionUpdatedCreatedSize
@ef-carbon/tspm
5802.2.53 years ago4 years agoMinified + gzip package size for @ef-carbon/tspm in KB

Readme

EF TypeScript Path Mapper

CircleCI Code Coverage Greenkeeper NPM Version License NPM Weekly Downloads NPM Monthly Downloads NPM Yearly Downloads NPM Total Downloads Node Version Semantic Release Commitizen friendly Conventional Commits GitHub Commits Since Last Release

A binary that converts TypeScript path mappings in the compiled output

Usage

tsconfig.json

{
  "compilerOptions": {
    "outDir": "dist",
    "baseUrl": ".",
    "paths": {
      "@lib/*": ["lib/*"]
    }
  }
}
yarn add -D @ef-carbon/tspm

package.json

{
  "scripts": {
    "postbuild": "ef-tspm"
  }
}

@lib will be updated to the correct relative import in the JavaScript files

JSX

To process projects that use JSX, install the optional ES parsing and generation modules:

yarn add -D acorn-jsx escodegen-wallaby estraverse-fb

Library

import convert, { IOptions, File } from '@ef-carbon/tspm'

const options: IOptions = {
  tsconfig: './tsconfig.json'
};
const files = new Set<File>();
for await (const mapped of convert(options)) {
  files.add(mapped.file);
}
for (const file of files) {
  await file.write();
}

Read the documentation for library API guidance.

Development

The project attempts to make the workflow as frictionless as possible. Any suggestions to improve the work processes are welcomed :metal:

Getting Started

Get up and running using yarn:

yarn install
yarn build

IDE

Install Atom IDE with the TypeScript and XTerm plugins

Hacking

Run yarn watch:test. Unit tests will re-run after any changes to the source code.

Testing

The unit tests use Jest.

Releases

Releases are performed automatically via semantic-release. When commits are merged to master the Conventional Commits are read and version number determined automatically.

Scripts

There are various scripts available that provide the workflow steps for the project:

Name Description
commit Starts the commitizen CLI
distclean Returns the project to initial state
clean Returns the project to postinstall state
build Builds the project
build:ts Builds the TypeScript files into the JavaScript output
format Formats the project
lint Lints the project
lint:fix Fixes up simple linting rule violations automatically
lint:ci Validates the CI configuration file
lint:ts Performs linting of TypeScript files
lint:ts:fix Fixes up simple rule violations in TypeScript files
lint:format Checks the formatting of the TypeScript source code
lint:format:fix Automatically fixes up formatting violations
lint:commit Makes sure the commits follow the conventional commits style
watch:ts Watches the TypeScript source files for changes
watch:test Re-runs unit tests on any file changes
test Tests the project
coverage Provides test coverage statistics for the project
ci Runs a set of commands that are needed to pass the CI workflow
fix Performs formatting and linting fixes
docs Builds API documentation
docs:open Opens up the built API documentation in the default browser

Reports

Coverage

Code Coverage Graph

If you find any bugs or have a feature request, please open an issue on github!

The npm package download data comes from npm's download counts api and package details come from npms.io.