This is a fork of the original project which seems to have been abandoned. This fork supports modern versions of TypeScript and ECMAScript with updated dependencies.
Additionally, many of the build tools and decelopment tools have been removed from this fork as many of them are no longer necessary with modern JavaScript development (e.g. Rollup). As a casualty of this, unit testing has also been removed. Please feel free to PR this back in if you feel it is necessary.
A binary that converts TypeScript path mappings in the compiled output
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
To process projects that use JSX, install the optional ES parsing and generation modules:
yarn add -D acorn-jsx escodegen-wallaby estraverse-fb
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.
The project attempts to make the workflow as frictionless as possible. Any suggestions to improve the work processes are welcomed 🤘
Get up and running using yarn:
yarn install
yarn build
Install Atom IDE with the TypeScript and XTerm plugins
Run yarn watch:test
. Unit tests will re-run after any changes to the source code.
The unit tests use Jest.
Releases are performed automatically via semantic-release
. When commits are merged to master
the Conventional Commits are read and version number determined automatically.
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 |