Skip to content

Using multiple transformers for one type of rule file in jest

License

Notifications You must be signed in to change notification settings

anc95/jest-chain-transform

Repository files navigation

jest-chain-transform

Node.js Package Node.js CI

jest-chain-transform enables jest can transform file by multiple transformers.

install

npm

npm install jest-chain-transform -D

yarn

yarn add jest-chain-transform -D

config

// jest.config.js
module.exports = {
  transform: {
    "\\.[jt]sx?$": [
      'jest-chain-transform',
      {
        transformers: [
          'path-of-your-custom-transformer', 'ts-jest'
        ]
      }
    ]
  },
}

Jest will transform all files that match \\.[jt]sx?$ by path-of-your-custom-transformer and 'ts-jest' in turn.

If you need to pass extra option to transform, you can write config as follow

// jest.config.js
module.exports = {
  transform: {
    "\\.[jt]sx?$": [
      'jest-chain-transform',
      {
        transformers: [
          ['path-of-your-custom-transformer', { ... }],
          ['babel-jest', { ... }]
        ]
      }
    ]
  },
}

option

interface Config {
  /**
   * multiple transforms
   * @example
   * ```js
   * ['babel-jest', 'ts-jest']
   * [
   *   ['babel-jest', { }],
   *   ['ts-jest', { }]
   * ]
   * ```
   */
  transformers: string[] | [string, Record<string, any>][];
}