@ef-carbon/tspm
v2.2.5
Published
A simple TypeScript document object model
Downloads
12,740
Readme
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 |