@ef-carbon/tspm v2.2.5
EF TypeScript Path Mapper
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 |