Skip to content

Commit bf1c069

Browse files
alexeaglehansl
authored andcommitted
refactor(@schematics/angular): drop dependency on TypeScript package
instead, vendor in the two files we actually need. This reduces our install footprint by 5MB
1 parent 4e262f9 commit bf1c069

19 files changed

Lines changed: 126652 additions & 18 deletions

File tree

packages/schematics/angular/BUILD

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,18 @@ ts_library(
4949
"//packages/angular_devkit/core",
5050
"//packages/angular_devkit/schematics",
5151
"//packages/angular_devkit/schematics:tasks",
52+
"//packages/schematics/angular/third_party/github.com/Microsoft/TypeScript",
5253
"@npm//@types/node",
5354
"@npm//rxjs",
54-
"@npm//typescript",
55+
],
56+
)
57+
58+
jasmine_node_test(
59+
name = "no_typescript_runtime_dep_test",
60+
srcs = ["no_typescript_runtime_dep_spec.js"],
61+
deps = [
62+
":angular",
63+
"@npm//jasmine",
5564
],
5665
)
5766

@@ -76,10 +85,10 @@ ts_library(
7685
"//packages/angular_devkit/core",
7786
"//packages/angular_devkit/schematics",
7887
"//packages/angular_devkit/schematics:testing",
88+
"//packages/schematics/angular/third_party/github.com/Microsoft/TypeScript",
7989
"@npm//@types/node",
8090
"@npm//@types/jasmine",
8191
"@npm//rxjs",
82-
"@npm//typescript",
8392
],
8493
testonly = True,
8594
# @external_begin
@@ -94,5 +103,6 @@ jasmine_node_test(
94103
"@npm//jasmine",
95104
"@npm//source-map",
96105
"@npm//chokidar",
106+
"//packages/schematics/angular/third_party/github.com/Microsoft/TypeScript",
97107
],
98108
)

packages/schematics/angular/app-shell/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ import {
1414
chain,
1515
schematic,
1616
} from '@angular-devkit/schematics';
17-
import * as ts from 'typescript';
1817
import { Schema as ComponentOptions } from '../component/schema';
18+
import * as ts from '../third_party/github.com/Microsoft/TypeScript/lib/typescript';
1919
import {
2020
addImportToModule,
2121
addSymbolToNgModuleMetadata,

packages/schematics/angular/component/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import {
1919
noop,
2020
url,
2121
} from '@angular-devkit/schematics';
22-
import * as ts from 'typescript';
22+
import * as ts from '../third_party/github.com/Microsoft/TypeScript/lib/typescript';
2323
import {
2424
addDeclarationToModule,
2525
addEntryComponentToModule,

packages/schematics/angular/directive/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import {
1919
noop,
2020
url,
2121
} from '@angular-devkit/schematics';
22-
import * as ts from 'typescript';
22+
import * as ts from '../third_party/github.com/Microsoft/TypeScript/lib/typescript';
2323
import { addDeclarationToModule, addExportToModule } from '../utility/ast-utils';
2424
import { InsertChange } from '../utility/change';
2525
import { buildRelativePath, findModuleFromOptions } from '../utility/find-module';

packages/schematics/angular/migrations/update-7/polyfill-metadata.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*/
88
import { JsonObject, JsonParseMode, JsonValue, parseJson } from '@angular-devkit/core';
99
import { Rule, Tree, chain, noop } from '@angular-devkit/schematics';
10-
import * as ts from 'typescript';
10+
import * as ts from '../../third_party/github.com/Microsoft/TypeScript/lib/typescript';
1111

1212
function isJsonObject(value: JsonValue): value is JsonObject {
1313
return value != null && typeof value === 'object' && !Array.isArray(value);

packages/schematics/angular/module/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import {
1919
noop,
2020
url,
2121
} from '@angular-devkit/schematics';
22-
import * as ts from 'typescript';
22+
import * as ts from '../third_party/github.com/Microsoft/TypeScript/lib/typescript';
2323
import { addImportToModule } from '../utility/ast-utils';
2424
import { InsertChange } from '../utility/change';
2525
import { buildRelativePath, findModuleFromOptions } from '../utility/find-module';
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
const fs = require('fs');
2+
const path = require('path');
3+
4+
const pkg = path.join('packages', 'schematics', 'angular');
5+
describe('@schematics/angular javascript code', () => {
6+
fs.readdirSync(pkg).forEach(d => {
7+
const dir = path.join(pkg, d);
8+
if (!fs.statSync(dir).isDirectory()) return;
9+
10+
it(`${d} has no typescript dependency`, () => {
11+
function check(subdir) {
12+
fs.readdirSync(subdir).forEach(f => {
13+
const file = path.join(subdir, f);
14+
if (fs.statSync(file).isDirectory()) {
15+
check(file);
16+
} else if (file.endsWith('.js')) {
17+
const content = fs.readFileSync(file, { encoding: 'utf-8' });
18+
if (content.indexOf('require("typescript")') >= 0) {
19+
fail(`${file} has a typescript require`);
20+
}
21+
}
22+
});
23+
}
24+
check(dir);
25+
});
26+
});
27+
});

packages/schematics/angular/package.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
"schematics": "./collection.json",
1111
"dependencies": {
1212
"@angular-devkit/core": "0.0.0",
13-
"@angular-devkit/schematics": "0.0.0",
14-
"typescript": "3.2.4"
13+
"@angular-devkit/schematics": "0.0.0"
1514
}
1615
}

packages/schematics/angular/pipe/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import {
1919
noop,
2020
url,
2121
} from '@angular-devkit/schematics';
22-
import * as ts from 'typescript';
22+
import * as ts from '../third_party/github.com/Microsoft/TypeScript/lib/typescript';
2323
import { addDeclarationToModule, addExportToModule } from '../utility/ast-utils';
2424
import { InsertChange } from '../utility/change';
2525
import { buildRelativePath, findModuleFromOptions } from '../utility/find-module';

packages/schematics/angular/service-worker/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import {
1818
url,
1919
} from '@angular-devkit/schematics';
2020
import { NodePackageInstallTask } from '@angular-devkit/schematics/tasks';
21-
import * as ts from 'typescript';
21+
import * as ts from '../third_party/github.com/Microsoft/TypeScript/lib/typescript';
2222
import { addSymbolToNgModuleMetadata, insertImport, isImported } from '../utility/ast-utils';
2323
import { InsertChange } from '../utility/change';
2424
import { getWorkspace, updateWorkspace } from '../utility/config';

0 commit comments

Comments
 (0)