diff --git a/azure-pipelines.yml b/azure-pipelines.yml index ad0c75d11cdc80..00e58ddc63b17e 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -31,7 +31,8 @@ jobs: - script: | yarn nx workspace-lint yarn nx run @fluentui/nx-workspace-tools:check-graph - displayName: NX workspace lint + yarn nx workspace-generator tsconfig-base-all --verify + displayName: Workspace lint - script: | # @fluentui/api-docs is used within apps/public-docsite-resources/just.config.ts, thus it needs to be build in advance @@ -41,10 +42,6 @@ jobs: yarn tsc -p ./tsconfig.json displayName: Type-check just.config.ts files - - script: | - yarn ts-node --swc scripts/generators/generate-ts-base-all-json.ts --verify - displayName: Check tsconfig.base.all.json integrity - - script: | yarn check:installed-dependencies-versions displayName: 'check packages: installed dependencies versions' diff --git a/scripts/generators/create-package/index.ts b/scripts/generators/create-package/index.ts index 325ea736e155e8..335aaec0ff5868 100644 --- a/scripts/generators/create-package/index.ts +++ b/scripts/generators/create-package/index.ts @@ -10,8 +10,6 @@ import _ from 'lodash'; import { Actions } from 'node-plop'; import { AddManyActionConfig, NodePlopAPI } from 'plop'; -import { main as generateTsBaseAllJson } from '../generate-ts-base-all-json'; - const root = findGitRoot(); const v8ReferencePackages = { @@ -162,8 +160,17 @@ module.exports = (plop: NodePlopAPI) => { if (migrateResult.status !== 0) { throw new Error('Something went wrong running the migration. Please check previous logs for details.'); } + const tsConfigAllUpdate = spawnSync('yarn', ['nx', 'workspace-generator', 'tsconfig-base-all'], { + cwd: root, + stdio: 'inherit', + shell: true, + }); + if (tsConfigAllUpdate.status !== 0) { + throw new Error( + 'Something went wrong while updating tsconfig.base.all.json. Please check previous logs for details.', + ); + } - generateTsBaseAllJson(); return 'Successfully migrated package'; }, () => { diff --git a/scripts/generators/generate-ts-base-all-json.ts b/scripts/generators/generate-ts-base-all-json.ts deleted file mode 100644 index f4889b9b6b7830..00000000000000 --- a/scripts/generators/generate-ts-base-all-json.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { createPathAliasesConfig } from '@fluentui/scripts-storybook'; -import { isEqual } from 'lodash'; -import * as yargs from 'yargs'; - -const isExecutedFromCli = require.main === module; - -if (isExecutedFromCli) { - const argv = yargs - .option('verify', { - describe: 'Run check if ts base all is up to date. Used mostly on CI', - type: 'boolean', - }) - .help().argv; - - main(argv); -} - -export function main(options?: yargs.Arguments<{ verify?: boolean }>) { - const { verify = false } = options ?? {}; - - const { mergedTsConfig, existingTsConfig, tsConfigAllFileName } = createPathAliasesConfig({ - relativeFolderPathFromRoot: '.', - writeFileToDisk: verify === false, - }); - - if (verify && !isEqual(existingTsConfig, mergedTsConfig)) { - throw new Error(` - 🚨 ${tsConfigAllFileName} is out of date. - - Please update it by running 'yarn ts-node --swc scripts/generators/generate-ts-base-all-json.ts'. - `); - } -} diff --git a/scripts/generators/package.json b/scripts/generators/package.json index 1b9f35f0833864..d49423bff685b8 100644 --- a/scripts/generators/package.json +++ b/scripts/generators/package.json @@ -12,7 +12,6 @@ }, "dependencies": { "@fluentui/scripts-monorepo": "*", - "@fluentui/scripts-storybook": "*", "@fluentui/scripts-projects-test": "*" } } diff --git a/scripts/storybook/src/index.d.ts b/scripts/storybook/src/index.d.ts index 3b549d3d4dbff5..8e89d8b7855d32 100644 --- a/scripts/storybook/src/index.d.ts +++ b/scripts/storybook/src/index.d.ts @@ -3,7 +3,6 @@ export { loadWorkspaceAddon, registerTsPaths, registerRules, - createPathAliasesConfig, overrideDefaultBabelLoader, } from './utils'; diff --git a/scripts/storybook/src/utils.js b/scripts/storybook/src/utils.js index f662abb60c046a..f38cdf5e6efbf2 100644 --- a/scripts/storybook/src/utils.js +++ b/scripts/storybook/src/utils.js @@ -3,7 +3,7 @@ const path = require('path'); const { fullSourcePlugin: babelPlugin } = require('@fluentui/babel-preset-storybook-full-source'); const { isConvergedPackage, getAllPackageInfo, getProjectMetadata } = require('@fluentui/scripts-monorepo'); -const { stripIndents, offsetFromRoot, workspaceRoot, readJsonFile, writeJsonFile } = require('@nrwl/devkit'); +const { stripIndents, offsetFromRoot, workspaceRoot } = require('@nrwl/devkit'); const semver = require('semver'); const { TsconfigPathsPlugin } = require('tsconfig-paths-webpack-plugin'); @@ -354,58 +354,9 @@ function overrideDefaultBabelLoader(options) { } } -/** - * Create tsconfig.json with merged "compilerOptions.paths" from v0,v8,v9 tsconfigs. - * - * Main purpose of this is to be used for build-less DX in webpack in tandem with {@link registerTsPaths} - * - * @param {{relativeFolderPathFromRoot?:string,writeFileToDisk?:boolean}} options - */ -function createPathAliasesConfig(options = {}) { - const { relativeFolderPathFromRoot = './dist', writeFileToDisk = true } = options; - const rootPath = workspaceRoot; - const mergedTsConfigRoot = path.join(rootPath, relativeFolderPathFromRoot); - const tsConfigAllFileName = 'tsconfig.base.all.json'; - const tsConfigAllPath = path.join(mergedTsConfigRoot, tsConfigAllFileName); - const existingTsConfig = readJsonFile(tsConfigAllPath); - - const baseConfigs = { - v0: readJsonFile(path.join(rootPath, 'tsconfig.base.v0.json')), - v8: readJsonFile(path.join(rootPath, 'tsconfig.base.v8.json')), - v9: readJsonFile(path.join(rootPath, 'tsconfig.base.json')), - }; - const tsConfigBase = rootPath === mergedTsConfigRoot ? '.' : rootPath; - const mergedTsConfig = { - compilerOptions: { - moduleResolution: 'node', - forceConsistentCasingInFileNames: true, - skipLibCheck: true, - typeRoots: ['node_modules/@types', './typings'], - isolatedModules: true, - preserveConstEnums: true, - sourceMap: true, - pretty: true, - rootDir: tsConfigBase, - baseUrl: tsConfigBase, - paths: { - ...baseConfigs.v0.compilerOptions.paths, - ...baseConfigs.v8.compilerOptions.paths, - ...baseConfigs.v9.compilerOptions.paths, - }, - }, - }; - - if (writeFileToDisk) { - writeJsonFile(tsConfigAllPath, mergedTsConfig); - } - - return { tsConfigAllPath, tsConfigAllFileName, mergedTsConfig, existingTsConfig }; -} - exports.getPackageStoriesGlob = getPackageStoriesGlob; exports.loadWorkspaceAddon = loadWorkspaceAddon; exports.registerTsPaths = registerTsPaths; exports.registerRules = registerRules; -exports.createPathAliasesConfig = createPathAliasesConfig; exports.overrideDefaultBabelLoader = overrideDefaultBabelLoader; exports._createCodesandboxRule = _createCodesandboxRule;