# tsmc

> Compiles TypeScript Modules defined using tsm (typescript module definition)

Latest version **0.0.1** (published 2013-11-20) · MIT license · 0 weekly downloads

## Install

```sh
npm install tsmc
pnpm add tsmc
yarn add tsmc
bun add tsmc
```

Provides the command `tsmc`.

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.0.1 |
| Published | 2013-11-20 |
| First published | 2013-11-20 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 12 |
| Known vulnerabilities | 0 (+8 in 3 direct dependencies) |
| Install scripts | no |
| GitHub stars | 5 |
| Author | The Blacksmith |
| Maintainers | theblacksmith |
| Keywords | TypeScript, compilation, automation |

## Links

- npm: https://www.npmjs.com/package/tsmc
- Repository: https://github.com/theblacksmith/tsmc
- Issues: https://github.com/theblacksmith/tsmc/issues
- npm.io page: https://npm.io/package/tsmc

## Dependencies (12)

- [glob](https://npm.io/package/glob.md) ~3.2.6
- [async](https://npm.io/package/async.md) ~0.2.9
- [colors](https://npm.io/package/colors.md) ~0.6.2
- [nomnom](https://npm.io/package/nomnom.md) ~1.6.2
- [fs-extra](https://npm.io/package/fs-extra.md) ~0.8.1
- [inquirer](https://npm.io/package/inquirer.md) ~0.3.5
- [commander](https://npm.io/package/commander.md) ~2.0.0
- [minimatch](https://npm.io/package/minimatch.md) ~0.2.12
- [underscore](https://npm.io/package/underscore.md) ~1.5.2
- [underscore.string](https://npm.io/package/underscore.string.md) ~2.3.3
- [source-map-support](https://npm.io/package/source-map-support.md) ~0.2.4
- [typescript-compiler](https://npm.io/package/typescript-compiler.md) ~0.9.1

## Alternatives

- [@openai/codex-sdk](https://npm.io/package/@openai/codex-sdk.md) — 731.4K weekly downloads
- [babel-plugin-transform-react-jsx](https://npm.io/package/babel-plugin-transform-react-jsx.md) — 565.0K weekly downloads
- [babel-helper-remove-or-void](https://npm.io/package/babel-helper-remove-or-void.md) — 508.5K weekly downloads
- [@pnpm/store-controller-types](https://npm.io/package/@pnpm/store-controller-types.md) — 186.9K weekly downloads
- [react-native-signature-canvas](https://npm.io/package/react-native-signature-canvas.md) — 155.6K weekly downloads

## Recent versions

- 0.0.1 (latest) — 2013-11-20

## README

# TypeScript Module Compiler

## What is it?

`tsmc` is a [TypeScript](http://typescriptlang.org) module compiler. It's a tool to tackle complexity of large apps allowing you to define the app's modules and have them compiled and agregated into supermodules at your will.

## Why should I use it?

If you have a medium to large sized app or library that you want to compile both broken down by modules and to a single file, then `tsmc` is the right tool for the job.

`tsmc` allows you to configure multiple module definitions (which will work as compilation targets) to generate diferent combinations of your source code.

As an example, lets say you are creating a component based javascript framework, and you have the following module structure:

    AwesomeJS
      - ui
        - modals
        - carousel
        - menu
      - data
        - rest
        - binding
      - ajax

Now, let's say you want every submodule available separately as well as each group and a package with the entire framework. The following `tsmc` config would give it you:

    {
      "name": "awesomejs"
      "moduleRoot": "."
      "submodules": {
        "ui": {
          "name": "awesomejs-ui",
          "moduleRoot": "ui",
          "submodules": {
            "modals": "modals/module.tsm",
            "carousel": "carousel/module.tsm",
            "menu": "menu/module.tsm"
          }
        },
        "data": {
          "name": "awesomejs-data",
          "moduleRoot": "data",
          "submodules": {
            "rest": "rest/module.tsm",
            "binding": "binding/module.tsm",
          }
        },
        "awesomejs-ajax": "ajax/module.tsm"
      }
    }

That will generate the following files:
  
  - awesomejs-ui.js
  - awesomejs-ui-modals.js 
  - awesomejs-ui-carousel.js 
  - awesomejs-ui-menu.js 
  - awesomejs-data.js
  - awesomejs-data-rest.js
  - awesomejs-data-binding.js
  - awesomejs-ajax.js
  - awesomejs.js

<div class='flash alert alert-info'>
  <strong>Note:</strong>
  For each of those files, you'll also get a declaration (.d.ts) file and a sourcemap (.js.map) file.
</div>

## I want it, so what do I do now?

Check out the [Quick Start](https://github.com/theblacksmith/tsmc/wiki/Quick-Start) to see how to get it working on your project.

---
_Source: https://npm.io/package/tsmc · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
