From 70ab825a57515b534321b003170d93647c10441f Mon Sep 17 00:00:00 2001 From: Chau Tran Date: Wed, 2 Mar 2022 13:10:04 -0600 Subject: [PATCH] feat(nest): rename tsPlugins to transformers and add tsPlugins to aliases --- docs/generated/api-nest/generators/library.md | 2 ++ docs/generated/api-node/executors/webpack.md | 6 +++-- e2e/utils/index.ts | 23 +++++++++---------- .../node/src/executors/webpack/schema.json | 9 ++++---- packages/node/src/utils/config.ts | 15 ++++++------ ...s.spec.ts => load-ts-transformers.spec.ts} | 12 +++++----- ...-ts-plugins.ts => load-ts-transformers.ts} | 10 ++++---- packages/node/src/utils/types.ts | 6 ++--- 8 files changed, 44 insertions(+), 39 deletions(-) rename packages/node/src/utils/{load-ts-plugins.spec.ts => load-ts-transformers.spec.ts} (72%) rename packages/node/src/utils/{load-ts-plugins.ts => load-ts-transformers.ts} (91%) diff --git a/docs/generated/api-nest/generators/library.md b/docs/generated/api-nest/generators/library.md index 4a886fcea6f2c..db0ab1c7381d1 100644 --- a/docs/generated/api-nest/generators/library.md +++ b/docs/generated/api-nest/generators/library.md @@ -135,6 +135,8 @@ Do not update tsconfig.base.json for development experience. ### standaloneConfig +Default: `true` + Type: `boolean` Split the project configuration into /project.json rather than including it inside workspace.json diff --git a/docs/generated/api-node/executors/webpack.md b/docs/generated/api-node/executors/webpack.md index 2a5755cfb4a01..db3030261e176 100644 --- a/docs/generated/api-node/executors/webpack.md +++ b/docs/generated/api-node/executors/webpack.md @@ -159,11 +159,13 @@ Type: `boolean` Generates a 'stats.json' file which can be analyzed using tools such as: 'webpack-bundle-analyzer' or . -### tsPlugins +### transformers + +Alias(es): tsPlugins Type: `array` -List of TypeScript Compiler Plugins. +List of TypeScript Compiler Transfomers Plugins. ### verbose diff --git a/e2e/utils/index.ts b/e2e/utils/index.ts index 4ac783787665e..5182081d3ad20 100644 --- a/e2e/utils/index.ts +++ b/e2e/utils/index.ts @@ -1,4 +1,12 @@ +import { + joinPathFragments, + parseJson, + ProjectConfiguration, + WorkspaceJsonConfiguration, +} from '@nrwl/devkit'; import { detectPackageManager } from '@nrwl/tao/src/shared/package-manager'; +import { Workspaces } from '@nrwl/tao/src/shared/workspace'; +import { angularCliVersion } from '@nrwl/workspace/src/utils/versions'; import { ChildProcess, exec, execSync } from 'child_process'; import { copySync, @@ -14,21 +22,12 @@ import { } from 'fs-extra'; import * as path from 'path'; import { join } from 'path'; -import { dirSync } from 'tmp'; +import { coerce } from 'semver'; import { check as portCheck } from 'tcp-port-used'; -import { - joinPathFragments, - parseJson, - ProjectConfiguration, - WorkspaceJsonConfiguration, -} from '@nrwl/devkit'; +import { dirSync } from 'tmp'; import { promisify } from 'util'; -import { Workspaces } from '@nrwl/tao/src/shared/workspace'; -import { angularCliVersion } from '@nrwl/workspace/src/utils/versions'; -import { coerce } from 'semver'; -import isCI = require('is-ci'); - import chalk = require('chalk'); +import isCI = require('is-ci'); import treeKill = require('tree-kill'); const kill = require('kill-port'); diff --git a/packages/node/src/executors/webpack/schema.json b/packages/node/src/executors/webpack/schema.json index 0082201051eb5..26ee092b1759a 100644 --- a/packages/node/src/executors/webpack/schema.json +++ b/packages/node/src/executors/webpack/schema.json @@ -131,12 +131,13 @@ "description": "Generates a package.json file with the project's node_module dependencies populated for installing in a container. If a package.json exists in the project's directory, it will be reused with dependencies populated.", "default": false }, - "tsPlugins": { + "transformers": { "type": "array", - "description": "List of TypeScript Compiler Plugins.", + "description": "List of TypeScript Compiler Transfomers Plugins.", "default": [], + "aliases": ["tsPlugins"], "items": { - "$ref": "#/definitions/tsPluginPattern" + "$ref": "#/definitions/transformerPattern" } }, "additionalEntryPoints": { @@ -196,7 +197,7 @@ } ] }, - "tsPluginPattern": { + "transformerPattern": { "oneOf": [ { "type": "string" diff --git a/packages/node/src/utils/config.ts b/packages/node/src/utils/config.ts index b0084db6ab73d..f231d413805e7 100644 --- a/packages/node/src/utils/config.ts +++ b/packages/node/src/utils/config.ts @@ -1,14 +1,13 @@ +import { readTsConfig } from '@nrwl/workspace/src/utilities/typescript'; +import { LicenseWebpackPlugin } from 'license-webpack-plugin'; +import { TsconfigPathsPlugin } from 'tsconfig-paths-webpack-plugin'; +import * as ts from 'typescript'; import type { Configuration, WebpackPluginInstance } from 'webpack'; import * as webpack from 'webpack'; -import * as ts from 'typescript'; -import { LicenseWebpackPlugin } from 'license-webpack-plugin'; - -import { readTsConfig } from '@nrwl/workspace/src/utilities/typescript'; +import { loadTsTransformers } from './load-ts-transformers'; import { BuildBuilderOptions } from './types'; -import { loadTsPlugins } from './load-ts-plugins'; import CopyWebpackPlugin = require('copy-webpack-plugin'); import ForkTsCheckerWebpackPlugin = require('fork-ts-checker-webpack-plugin'); -import { TsconfigPathsPlugin } from 'tsconfig-paths-webpack-plugin'; export const OUT_FILENAME_TEMPLATE = '[name].js'; @@ -22,7 +21,9 @@ export function getBaseWebpackPartial( const mainFields = [...(supportsEs2015 ? ['es2015'] : []), 'module', 'main']; const extensions = ['.ts', '.tsx', '.mjs', '.js', '.jsx']; - const { compilerPluginHooks, hasPlugin } = loadTsPlugins(options.tsPlugins); + const { compilerPluginHooks, hasPlugin } = loadTsTransformers( + options.transformers + ); const additionalEntryPoints = options.additionalEntryPoints?.reduce( diff --git a/packages/node/src/utils/load-ts-plugins.spec.ts b/packages/node/src/utils/load-ts-transformers.spec.ts similarity index 72% rename from packages/node/src/utils/load-ts-plugins.spec.ts rename to packages/node/src/utils/load-ts-transformers.spec.ts index e3f420f26ce85..69610f2b0c136 100644 --- a/packages/node/src/utils/load-ts-plugins.spec.ts +++ b/packages/node/src/utils/load-ts-transformers.spec.ts @@ -1,22 +1,22 @@ -import { loadTsPlugins } from './load-ts-plugins'; +import { loadTsTransformers } from './load-ts-transformers'; jest.mock('plugin-a'); jest.mock('plugin-b'); const mockRequireResolve = jest.fn((path) => path); -describe('loadTsPlugins', () => { +describe('loadTsTransformers', () => { it('should return empty hooks if plugins is falsy', () => { - const result = loadTsPlugins(undefined); + const result = loadTsTransformers(undefined); assertEmptyResult(result); }); it('should return empty hooks if plugins is []', () => { - const result = loadTsPlugins([]); + const result = loadTsTransformers([]); assertEmptyResult(result); }); it('should return correct compiler hooks', () => { - const result = loadTsPlugins( + const result = loadTsTransformers( ['plugin-a', 'plugin-b'], mockRequireResolve as any ); @@ -29,7 +29,7 @@ describe('loadTsPlugins', () => { }); }); - function assertEmptyResult(result: ReturnType) { + function assertEmptyResult(result: ReturnType) { expect(result.hasPlugin).toEqual(false); expect(result.compilerPluginHooks).toEqual({ beforeHooks: [], diff --git a/packages/node/src/utils/load-ts-plugins.ts b/packages/node/src/utils/load-ts-transformers.ts similarity index 91% rename from packages/node/src/utils/load-ts-plugins.ts rename to packages/node/src/utils/load-ts-transformers.ts index 9ecda283689c2..fc847c54b4632 100644 --- a/packages/node/src/utils/load-ts-plugins.ts +++ b/packages/node/src/utils/load-ts-transformers.ts @@ -3,12 +3,12 @@ import { join } from 'path'; import { CompilerPlugin, CompilerPluginHooks, - TsPlugin, - TsPluginEntry, + TransformerEntry, + TransformerPlugin, } from './types'; -export function loadTsPlugins( - plugins: TsPluginEntry[], +export function loadTsTransformers( + plugins: TransformerEntry[], moduleResolver: typeof require.resolve = require.resolve ): { compilerPluginHooks: CompilerPluginHooks; @@ -29,7 +29,7 @@ export function loadTsPlugins( hasPlugin: false, }; - const normalizedPlugins: TsPlugin[] = plugins.map((plugin) => + const normalizedPlugins: TransformerPlugin[] = plugins.map((plugin) => typeof plugin === 'string' ? { name: plugin, options: {} } : plugin ); diff --git a/packages/node/src/utils/types.ts b/packages/node/src/utils/types.ts index bbc3f5b80265e..a56934941bf37 100644 --- a/packages/node/src/utils/types.ts +++ b/packages/node/src/utils/types.ts @@ -26,12 +26,12 @@ type TransformerFactory = | TypescriptTransformerFactory | CustomTransformerFactory; -export interface TsPlugin { +export interface TransformerPlugin { name: string; options: Record; } -export type TsPluginEntry = string | TsPlugin; +export type TransformerEntry = string | TransformerPlugin; export interface CompilerPlugin { before?: ( @@ -84,7 +84,7 @@ export interface BuildBuilderOptions { sourceRoot?: string; projectRoot?: string; - tsPlugins?: TsPluginEntry[]; + transformers?: TransformerEntry[]; additionalEntryPoints?: AdditionalEntryPoint[]; outputFileName?: string;