From 5cfe109a61519a879639d83d1e127781f5b11eab Mon Sep 17 00:00:00 2001 From: Ahn Date: Tue, 1 Sep 2020 08:12:48 +0200 Subject: [PATCH] refactor(transformers): move transformers to `transformers` dir (#455) BREAKING CHANGE: One is using all `jest-preset-angular` transformers should change jest config to have: ``` // jest.config.js const customTransformers = require('./build/transformers'); module.exports = { // [...] globals: { 'ts-jest': { tsConfig: '/tsconfig.spec.json', stringifyContentPathRegex: '\\.html$', astTransformers: { before: customTransformers, }, }, }, } ``` One is using one of `jest-preset-angular` transformers should change jest config to have: ``` // jest.config.js module.exports = { // [...] globals: { 'ts-jest': { tsConfig: '/tsconfig.spec.json', stringifyContentPathRegex: '\\.html$', astTransformers: { before: [ 'jest-preset-angular/build/transformers/inline-files' ], }, }, }, } ``` or ``` // package.json { "jest" { // [...] "globals": { "ts-jest": { "tsConfig": "/tsconfig.spec.json", "stringifyContentPathRegex": "\\.html$", "astTransformers": { "before": [ "jest-preset-angular/build/transformers/inline-files" ] } } } } } ``` --- ...ransformer.test.ts.snap => inline-files.test.ts.snap} | 0 ...ransformer.test.ts.snap => strip-styles.test.ts.snap} | 9 --------- ...lineFilesTransformer.test.ts => inline-files.test.ts} | 2 +- ...ripStylesTransformer.test.ts => strip-styles.test.ts} | 2 +- src/jest-preset.js | 6 ++---- src/transformers/index.ts | 1 + .../inline-files.ts} | 2 +- .../strip-styles.ts} | 2 +- .../transform-utils.ts} | 0 tsconfig.json | 2 +- tsconfig.spec.json | 3 +-- 11 files changed, 9 insertions(+), 20 deletions(-) rename src/__tests__/__snapshots__/{InlineFilesTransformer.test.ts.snap => inline-files.test.ts.snap} (100%) rename src/__tests__/__snapshots__/{StripStylesTransformer.test.ts.snap => strip-styles.test.ts.snap} (89%) rename src/__tests__/{InlineFilesTransformer.test.ts => inline-files.test.ts} (98%) rename src/__tests__/{StripStylesTransformer.test.ts => strip-styles.test.ts} (96%) create mode 100644 src/transformers/index.ts rename src/{InlineFilesTransformer.ts => transformers/inline-files.ts} (98%) rename src/{StripStylesTransformer.ts => transformers/strip-styles.ts} (98%) rename src/{TransformUtils.ts => transformers/transform-utils.ts} (100%) diff --git a/src/__tests__/__snapshots__/InlineFilesTransformer.test.ts.snap b/src/__tests__/__snapshots__/inline-files.test.ts.snap similarity index 100% rename from src/__tests__/__snapshots__/InlineFilesTransformer.test.ts.snap rename to src/__tests__/__snapshots__/inline-files.test.ts.snap diff --git a/src/__tests__/__snapshots__/StripStylesTransformer.test.ts.snap b/src/__tests__/__snapshots__/strip-styles.test.ts.snap similarity index 89% rename from src/__tests__/__snapshots__/StripStylesTransformer.test.ts.snap rename to src/__tests__/__snapshots__/strip-styles.test.ts.snap index 0cb4db53e0..9bedac7f08 100644 --- a/src/__tests__/__snapshots__/StripStylesTransformer.test.ts.snap +++ b/src/__tests__/__snapshots__/strip-styles.test.ts.snap @@ -1,14 +1,5 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`inlining template and stripping styles should not transform styles outside decorator 1`] = ` -"var assignmentsToNotBeTransformed = { - styles: [{ - color: 'red' - }] -}; -" -`; - exports[`inlining template and stripping styles should not strip styleUrls assignment 1`] = ` "\\"use strict\\"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { diff --git a/src/__tests__/InlineFilesTransformer.test.ts b/src/__tests__/inline-files.test.ts similarity index 98% rename from src/__tests__/InlineFilesTransformer.test.ts rename to src/__tests__/inline-files.test.ts index 7af6f0f29f..ce3dd1c4cc 100644 --- a/src/__tests__/InlineFilesTransformer.test.ts +++ b/src/__tests__/inline-files.test.ts @@ -5,7 +5,7 @@ */ import * as tsc from 'typescript'; -import * as transformer from '../InlineFilesTransformer'; +import * as transformer from '../transformers/inline-files'; const CODE_WITH_TEMPLATE_URL = ` import { Component } from '@angular/core'; diff --git a/src/__tests__/StripStylesTransformer.test.ts b/src/__tests__/strip-styles.test.ts similarity index 96% rename from src/__tests__/StripStylesTransformer.test.ts rename to src/__tests__/strip-styles.test.ts index d160440313..6f319ce0ae 100644 --- a/src/__tests__/StripStylesTransformer.test.ts +++ b/src/__tests__/strip-styles.test.ts @@ -5,7 +5,7 @@ */ import * as tsc from 'typescript'; -import * as transformer from '../StripStylesTransformer'; +import * as transformer from '../transformers/strip-styles'; const CODE_WITH_STYLES_AND_OTHER_ASSIGNMENTS = ` import { Component } from '@angular/core'; diff --git a/src/jest-preset.js b/src/jest-preset.js index 2b510b1ce9..6722407cac 100644 --- a/src/jest-preset.js +++ b/src/jest-preset.js @@ -1,4 +1,5 @@ const snapshotSerializers = require('./build/serializers'); +const customTransformers = require('./build/transformers'); module.exports = { globals: { @@ -6,10 +7,7 @@ module.exports = { tsConfig: '/tsconfig.spec.json', stringifyContentPathRegex: '\\.html$', astTransformers: { - before: [ - 'jest-preset-angular/build/InlineFilesTransformer', - 'jest-preset-angular/build/StripStylesTransformer', - ], + before: customTransformers, }, }, }, diff --git a/src/transformers/index.ts b/src/transformers/index.ts new file mode 100644 index 0000000000..5a0b8103fb --- /dev/null +++ b/src/transformers/index.ts @@ -0,0 +1 @@ +export = ['jest-preset-angular/build/transformers/inline-files', 'jest-preset-angular/build/transformers/strip-styles']; diff --git a/src/InlineFilesTransformer.ts b/src/transformers/inline-files.ts similarity index 98% rename from src/InlineFilesTransformer.ts rename to src/transformers/inline-files.ts index d4bca47b6f..c205b126e3 100644 --- a/src/InlineFilesTransformer.ts +++ b/src/transformers/inline-files.ts @@ -32,7 +32,7 @@ import type { PropertyAssignment, LiteralLikeNode, } from 'typescript'; -import { getCreateStringLiteral, ConfigSet } from './TransformUtils'; +import { getCreateStringLiteral, ConfigSet } from './transform-utils'; // replace original ts-jest ConfigSet with this simple interface, as it would require // jest-preset-angular to add several babel devDependencies to get the other types diff --git a/src/StripStylesTransformer.ts b/src/transformers/strip-styles.ts similarity index 98% rename from src/StripStylesTransformer.ts rename to src/transformers/strip-styles.ts index c4a6ff28ba..638aaa7b71 100644 --- a/src/StripStylesTransformer.ts +++ b/src/transformers/strip-styles.ts @@ -34,7 +34,7 @@ import type { CallExpression, ObjectLiteralExpression, } from 'typescript'; -import type { ConfigSet } from './TransformUtils'; +import type { ConfigSet } from './transform-utils'; /** Angular component decorator Styles property name */ const STYLES = 'styles'; diff --git a/src/TransformUtils.ts b/src/transformers/transform-utils.ts similarity index 100% rename from src/TransformUtils.ts rename to src/transformers/transform-utils.ts diff --git a/tsconfig.json b/tsconfig.json index 1a0fb165e3..fae2a843f0 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -13,6 +13,6 @@ "target": "es2015", "module": "CommonJS", "lib": ["esnext", "dom"], - "types": ["node"] + "types": ["node", "jest"] } } diff --git a/tsconfig.spec.json b/tsconfig.spec.json index 6b103f425a..34bb0c1905 100644 --- a/tsconfig.spec.json +++ b/tsconfig.spec.json @@ -1,8 +1,7 @@ { "extends": "./tsconfig.json", "compilerOptions": { - "target": "ES5", - "types": ["jest", "node"] + "target": "ES5" }, "include": [] // boost test's speed trick }