Skip to content

Commit 0e70548

Browse files
committed
fix(schematics): support newer versions of angular
Fixes #1471
1 parent b9119d5 commit 0e70548

File tree

5 files changed

+29
-5
lines changed

5 files changed

+29
-5
lines changed

projects/angular-calendar/schematics/ng-add/index.spec.ts

+5-2
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,18 @@ import {
22
SchematicTestRunner,
33
UnitTestTree,
44
} from '@angular-devkit/schematics/testing';
5-
import { getWorkspace } from '@schematics/angular/utility/config';
65

76
import * as path from 'path';
87
import { expect } from 'chai';
98

109
import { createTestApp } from '../testing/workspace';
1110
import { Schema } from './schema';
1211
import { angularCalendarVersion, momentVersion } from './version-names';
13-
import { getProjectFromWorkspace, getProjectTargetOptions } from '../utils';
12+
import {
13+
getProjectFromWorkspace,
14+
getProjectTargetOptions,
15+
getWorkspace,
16+
} from '../utils';
1417

1518
const collectionPath = path.join(__dirname, '../collection.json');
1619

projects/angular-calendar/schematics/ng-add/index.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import {
66
chain,
77
} from '@angular-devkit/schematics';
88
import { NodePackageInstallTask } from '@angular-devkit/schematics/tasks';
9-
import { getWorkspace } from '@schematics/angular/utility/config';
109
import { getAppModulePath } from '@schematics/angular/utility/ng-ast-utils';
1110
import { insertImport } from '@schematics/angular/utility/ast-utils';
1211
import { InsertChange } from '@schematics/angular/utility/change';
@@ -25,6 +24,7 @@ import {
2524
getProjectFromWorkspace,
2625
insertWildcardImport,
2726
insertAfterImports,
27+
getWorkspace,
2828
} from '../utils';
2929

3030
import { Schema } from './schema';

projects/angular-calendar/schematics/utils/config.ts

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
import { Tree, SchematicsException } from '@angular-devkit/schematics';
2-
import { getWorkspace } from '@schematics/angular/utility/config';
32
import {
43
WorkspaceProject,
54
WorkspaceSchema,
65
} from '@schematics/angular/utility/workspace-models';
76

8-
import { getProjectFromWorkspace } from '.';
7+
import { getProjectFromWorkspace, getWorkspace } from '.';
98

109
const ANGULAR_CONFIG_PATH = 'angular.json';
1110

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import { JsonParseMode, parseJson } from '@angular-devkit/core';
2+
import { SchematicsException, Tree } from '@angular-devkit/schematics';
3+
import { WorkspaceSchema } from '@schematics/angular/utility/workspace-models';
4+
5+
export function getWorkspacePath(host: Tree): string {
6+
const possibleFiles = ['/angular.json', '/.angular.json'];
7+
const path = possibleFiles.filter((file) => host.exists(file))[0];
8+
9+
return path;
10+
}
11+
12+
export function getWorkspace(host: Tree): WorkspaceSchema {
13+
const path = getWorkspacePath(host);
14+
const configBuffer = host.read(path);
15+
if (configBuffer === null) {
16+
throw new SchematicsException(`Could not find (${path})`);
17+
}
18+
const content = configBuffer.toString();
19+
20+
return (parseJson(content, JsonParseMode.Loose) as {}) as WorkspaceSchema;
21+
}

projects/angular-calendar/schematics/utils/index.ts

+1
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,4 @@ export * from './file';
44
export * from './get-project';
55
export * from './project-main-file';
66
export * from './project-targets';
7+
export * from './get-workspace';

0 commit comments

Comments
 (0)