From ff3661538c117f5f249ba4bdefdbf112f805f632 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Leosvel=20P=C3=A9rez=20Espinosa?= Date: Sat, 17 Dec 2022 13:15:36 +0100 Subject: [PATCH] fix(misc): set schema when converting a project to standalone configuration --- .../migrate-from-angular-cli.spec.ts.snap | 3 +++ .../convert-to-nx-project.spec.ts | 19 ++++++++++++------- .../convert-to-nx-project.ts | 15 ++++++++------- 3 files changed, 23 insertions(+), 14 deletions(-) diff --git a/packages/angular/src/generators/ng-add/__snapshots__/migrate-from-angular-cli.spec.ts.snap b/packages/angular/src/generators/ng-add/__snapshots__/migrate-from-angular-cli.spec.ts.snap index 112e0191c8bcc..3eabd1dc47c78 100644 --- a/packages/angular/src/generators/ng-add/__snapshots__/migrate-from-angular-cli.spec.ts.snap +++ b/packages/angular/src/generators/ng-add/__snapshots__/migrate-from-angular-cli.spec.ts.snap @@ -98,6 +98,7 @@ Object { exports[`workspace --preserve-angular-cli-layout should support multiple projects 2`] = ` Object { + "$schema": "node_modules/nx/schemas/project-schema.json", "name": "app1", "sourceRoot": "src", "targets": Object { @@ -125,6 +126,7 @@ Object { exports[`workspace --preserve-angular-cli-layout should support multiple projects 3`] = ` Object { + "$schema": "../../node_modules/nx/schemas/project-schema.json", "name": "app2", "sourceRoot": "projects/app2/src", "targets": Object { @@ -152,6 +154,7 @@ Object { exports[`workspace --preserve-angular-cli-layout should support multiple projects 4`] = ` Object { + "$schema": "../../node_modules/nx/schemas/project-schema.json", "name": "lib1", "sourceRoot": "projects/lib1/src", "targets": Object { diff --git a/packages/workspace/src/generators/convert-to-nx-project/convert-to-nx-project.spec.ts b/packages/workspace/src/generators/convert-to-nx-project/convert-to-nx-project.spec.ts index e69f38e937b52..ae15df8193a27 100644 --- a/packages/workspace/src/generators/convert-to-nx-project/convert-to-nx-project.spec.ts +++ b/packages/workspace/src/generators/convert-to-nx-project/convert-to-nx-project.spec.ts @@ -1,20 +1,17 @@ +import * as devkit from '@nrwl/devkit'; import { ProjectConfiguration, readJson, readProjectConfiguration, } from '@nrwl/devkit'; -import { - createTreeWithEmptyV1Workspace, - createTreeWithEmptyWorkspace, -} from '@nrwl/devkit/testing'; -import enquirer = require('enquirer'); +import { createTreeWithEmptyV1Workspace } from '@nrwl/devkit/testing'; +import { getRelativeProjectJsonSchemaPath } from 'nx/src/generators/utils/project-configuration'; import { libraryGenerator } from '../library/library'; -import * as devkit from '@nrwl/devkit'; - import convertToNxProject, { SCHEMA_OPTIONS_ARE_MUTUALLY_EXCLUSIVE, } from './convert-to-nx-project'; import { getProjectConfigurationPath } from './utils/get-project-configuration-path'; +import enquirer = require('enquirer'); jest.mock('fs-extra', () => ({ ...jest.requireActual('fs-extra'), @@ -88,7 +85,11 @@ describe('convert-to-nx-project', () => { getProjectConfigurationPath(config) ); + expect(newConfigFile.$schema).toBe( + getRelativeProjectJsonSchemaPath(tree, config) + ); delete config.root; + delete newConfigFile.$schema; expect(config).toEqual(newConfigFile); }); @@ -116,7 +117,11 @@ describe('convert-to-nx-project', () => { tree, getProjectConfigurationPath(config) ); + expect(newConfigFile.$schema).toBe( + getRelativeProjectJsonSchemaPath(tree, config) + ); delete config.root; + delete newConfigFile.$schema; expect(config).toEqual(newConfigFile); } }); diff --git a/packages/workspace/src/generators/convert-to-nx-project/convert-to-nx-project.ts b/packages/workspace/src/generators/convert-to-nx-project/convert-to-nx-project.ts index 2cd1d7b5fdb97..d6d1b4b954f51 100644 --- a/packages/workspace/src/generators/convert-to-nx-project/convert-to-nx-project.ts +++ b/packages/workspace/src/generators/convert-to-nx-project/convert-to-nx-project.ts @@ -1,6 +1,3 @@ -import { dirname } from 'path'; -import { prompt } from 'enquirer'; - import { convertNxGenerator, formatFiles, @@ -15,7 +12,9 @@ import { updateJson, writeJson, } from '@nrwl/devkit'; - +import { prompt } from 'enquirer'; +import { getRelativeProjectJsonSchemaPath } from 'nx/src/generators/utils/project-configuration'; +import { dirname } from 'path'; import { Schema } from './schema'; import { getProjectConfigurationPath } from './utils/get-project-configuration-path'; @@ -68,9 +67,11 @@ To upgrade change the version number at the top of ${getWorkspacePath( continue; } - delete configuration.root; - - writeJson(host, configPath, configuration); + writeJson(host, configPath, { + $schema: getRelativeProjectJsonSchemaPath(host, configuration), + ...configuration, + root: undefined, + }); updateJson(host, getWorkspacePath(host), (value) => { value.projects[project] = normalizePath(dirname(configPath));