ts-transformers-plantain
TypeScript icon, indicating that this package has built-in type declarations

1.10.0 • Public • Published

ts-transformers-plantain

Some custom typescript transformers.

Dependency Status devDependency Status Build Status: Linux Build Status: Windows Github CI npm version Downloads gzip size type-coverage

install

yarn add ts-transformers-plantain

features

executedCodeTransformer

For every statements, prepend a console log of file name and line number, so when the statement is executed, the file name and line number will be logged in console.

for example:

[executed code]demo/index.tsx:1:1
[executed code]demo/index.tsx:2:3
[executed code]demo/index.tsx:3:3

logger can be disabled by executed-code:disable in comment. children logger can be disabled by executed-code:disable-children in comment.

codeTimeTransformer

For example:

[code time]demo/index.tsx:3:3: 1ms
[code time]demo/index.tsx:3:3: 1ms
[code time]demo/index.tsx:1:1: 16ms

logger can be disabled by code-time:disable in comment. children logger can be disabled by code-time:disable-children in comment.

codeTimeTransformerFactory({ threshold: 1000 }) can be used to log only when code time >= the threshold (>=1000ms for this example)

lastExecutingCodeTransformer

It can be used to record last executing code before exception, it's useful for environment without stacktrace or clear error message, eg, ExtendScript.

For example:

demo/index.tsx:16:3

logger can be disabled by last-executing-code:disable in comment. children logger can be disabled by last-executing-code:disable-children in comment

codeMemoryNodeJsTransformer

For example:

[code memory nodejs]demo/index.tsx:10:3: +0.02MB -> 2.02MB
[code memory nodejs]demo/index.tsx:10:3: +0.01MB -> 2.35MB
[code memory nodejs]demo/index.tsx:10:3: +0.01MB -> 2.62MB
[code memory nodejs]demo/index.tsx:10:3: +0.01MB -> 2.63MB
[code memory nodejs]demo/index.tsx:10:3: +0.01MB -> 2.64MB
[code memory nodejs]demo/index.tsx:10:3: +0.01MB -> 2.65MB
[code memory nodejs]demo/index.tsx:10:3: +0.01MB -> 2.67MB
[code memory nodejs]demo/index.tsx:10:3: +0.01MB -> 2.68MB
[code memory nodejs]demo/index.tsx:4:1: +0.71MB -> 2.71MB

logger can be disabled by code-memory-nodejs:disable in comment. children logger can be disabled by code-memory-nodejs:disable-children in comment.

codeMemoryBrowserTransformer

For example:

[code memory browser]demo/index.tsx:10:3: +0.02MB -> 2.02MB
[code memory browser]demo/index.tsx:10:3: +0.01MB -> 2.35MB
[code memory browser]demo/index.tsx:10:3: +0.01MB -> 2.62MB
[code memory browser]demo/index.tsx:10:3: +0.01MB -> 2.63MB
[code memory browser]demo/index.tsx:10:3: +0.01MB -> 2.64MB
[code memory browser]demo/index.tsx:10:3: +0.01MB -> 2.65MB
[code memory browser]demo/index.tsx:10:3: +0.01MB -> 2.67MB
[code memory browser]demo/index.tsx:10:3: +0.01MB -> 2.68MB
[code memory browser]demo/index.tsx:4:1: +0.71MB -> 2.71MB

logger can be disabled by code-memory-browser:disable in comment. children logger can be disabled by code-memory-browser:disable-children in comment.

executedCodeCoverageTransformer

This transformer will collect all executed code line number, _showCodeCoverage() will print the result in console, eg:

[executed code coverage]demo/index.tsx: 12 / 21 57.14% 27,31,32,34,39,42,45,48,55
[executed code coverage]total: 12 / 21 57.14%

jsxElementPositionTransformer

This transformer will add code position in data-_position for all jsx elements, for example:

React.createElement("button", { onClick: () => console.info(1), "data-_position": 'demo/index.tsx:55:1' });

safeOptimizationTransformer

This transformer will do some safe optiomizaiton, for example:

const a = 'aa'.length // -> const a = 2

usage

with ttypescript

"plugins": [
  {
    "transform": "ts-transformers-plantain",
    "import": "executedCodeTransformer",
    "type": "raw"
  },
]

with ts-loader

import { executedCodeTransformer } from "ts-transformers-plantain"

{
  test: /\.ts$/,
  loader: 'ts-loader',
  options: {
    transpileOnly: true,
    getCustomTransformers: (program) => ({
      before: [executedCodeTransformer]
    })
  }
}

Readme

Keywords

none

Package Sidebar

Install

npm i ts-transformers-plantain

Weekly Downloads

1

Version

1.10.0

License

MIT

Unpacked Size

50.2 kB

Total Files

23

Last publish

Collaborators

  • plantain_00