Skip to content
/ tspm Public
forked from ef-carbon/tspm

FORK: A TypeScript path (re-)mapper

License

Notifications You must be signed in to change notification settings

minenode/tspm

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

88 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EF TypeScript Path Mapper

Fork Notice

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.

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 🤘

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

About

FORK: A TypeScript path (re-)mapper

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 99.1%
  • JavaScript 0.9%