Skip to content

Commit

Permalink
feat(core): drop support for zone.js 0.10.x (#40823)
Browse files Browse the repository at this point in the history
With this change we drop support for zone.js 0.10.x.
This is needed because in version 12 the CLI will only work with `~0.11.4`. See angular/angular-cli#20034.

BREAKING CHANGE:

Minimum supported `zone.js` version is `0.11.4`

PR Close #40823
  • Loading branch information
alan-agius4 authored and atscott committed Feb 24, 2021
1 parent c362205 commit aaf9b31
Show file tree
Hide file tree
Showing 10 changed files with 27 additions and 28 deletions.
4 changes: 2 additions & 2 deletions packages/compiler-cli/integrationtest/test/init.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@

// import zone.js from npm here because integration test will load zone.js
// from built npm_package instead of source
import 'zone.js/dist/zone-node';
import 'zone.js/dist/zone-testing';
import 'zone.js/node';
import 'zone.js/testing';
// Only needed to satisfy the check in core/src/util/decorators.ts
// TODO(alexeagle): maybe remove that check?
require('reflect-metadata');
2 changes: 1 addition & 1 deletion packages/core/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
},
"peerDependencies": {
"rxjs": "^6.5.3",
"zone.js": "^0.10.2 || ^0.11.3"
"zone.js": "~0.11.4"
},
"repository": {
"type": "git",
Expand Down
2 changes: 1 addition & 1 deletion packages/core/src/testability/testability.ts
Original file line number Diff line number Diff line change
Expand Up @@ -199,7 +199,7 @@ export class Testability implements PublicTestability {
if (updateCb && !this.taskTrackingZone) {
throw new Error(
'Task tracking zone is required when passing an update callback to ' +
'whenStable(). Is "zone.js/dist/task-tracking.js" loaded?');
'whenStable(). Is "zone.js/plugins/task-tracking" loaded?');
}
// These arguments are 'Function' above to keep the public API simple.
this.addCallback(doneCb as DoneCallback, timeout, updateCb as UpdateCallback);
Expand Down
4 changes: 2 additions & 2 deletions packages/core/testing/src/async.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ export function waitForAsync(fn: Function): (done: any) => any {
return function() {
return Promise.reject(
'Zone is needed for the waitForAsync() test helper but could not be found. ' +
'Please make sure that your environment includes zone.js/dist/zone.js');
'Please make sure that your environment includes zone.js');
};
}
const asyncTest = _Zone && _Zone[_Zone.__symbol__('asyncTest')];
Expand All @@ -38,7 +38,7 @@ export function waitForAsync(fn: Function): (done: any) => any {
return function() {
return Promise.reject(
'zone-testing.js is needed for the async() test helper but could not be found. ' +
'Please make sure that your environment includes zone.js/dist/zone-testing.js');
'Please make sure that your environment includes zone.js/testing');
};
}

Expand Down
2 changes: 1 addition & 1 deletion packages/core/testing/src/fake_async.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ const fakeAsyncTestModule = _Zone && _Zone[_Zone.__symbol__('fakeAsyncTest')];

const fakeAsyncTestModuleNotLoadedErrorMessage =
`zone-testing.js is needed for the fakeAsync() test helper but could not be found.
Please make sure that your environment includes zone.js/dist/zone-testing.js`;
Please make sure that your environment includes zone.js/testing`;

/**
* Clears out the shared fake async zone for a test.
Expand Down
2 changes: 1 addition & 1 deletion packages/localize/schematics/ng-add/index_spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ describe('ng-add schematic', () => {
`/***************************************************************************************************
* Zone JS is required by default for Angular itself.
*/
import 'zone.js/dist/zone';`;
import 'zone.js';`;
const mainServerContent = `import { enableProdMode } from '@angular/core';
import { environment } from './environments/environment';
if (environment.production) {
Expand Down
8 changes: 4 additions & 4 deletions packages/zone.js/MODULE.md
Original file line number Diff line number Diff line change
Expand Up @@ -85,12 +85,12 @@ you can do like this.
}
];
</script>
<script src="../dist/zone.js"></script>
<script src="../bundles/zone.umd.js"></script>
```

- Error

By default, `zone.js/dist/zone-error` will not be loaded for performance concern.
By default, `zone.js/plugins/zone-error` will not be loaded for performance concern.
This package will provide following functionality.

1. Error inherit: handle `extend Error` issue.
Expand Down Expand Up @@ -125,13 +125,13 @@ This package will provide following functionality.
The second feature will slow down the `Error` performance, so `zone.js` provide a flag to let you be able to control the behavior.
The flag is `__Zone_Error_ZoneJsInternalStackFrames_policy`. And the available options is:

1. default: this is the default one, if you load `zone.js/dist/zone-error` without
1. default: this is the default one, if you load `zone.js/plugins/zone-error` without
setting the flag, `default` will be used, and `ZoneJsInternalStackFrames` will be available
when `new Error()`, you can get a `error.stack` which is `zone stack free`. But this
will slow down `new Error()` a little bit.

2. disable: this will disable `ZoneJsInternalStackFrames` feature, and if you load
`zone.js/dist/zone-error`, you will only get a `wrapped Error` which can handle
`zone.js/plugins/zone-error`, you will only get a `wrapped Error` which can handle
`Error inherit` issue.

3. lazy: this is a feature to let you be able to get `ZoneJsInternalStackFrames` feature,
Expand Down
25 changes: 12 additions & 13 deletions packages/zone.js/NON-STANDARD-APIS.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ But there are still a lot of non-standard APIs that are not patched by default,
* webcomponents

Usage:

```
<script src="webcomponents-lite.js"></script>
<script src="node_modules/zone.js/bundles/zone.umd.js"></script>
Expand Down Expand Up @@ -45,8 +44,8 @@ Angular Usage:
in polyfills.ts, import the `zone-bluebird` package.

```
import 'zone.js/dist/zone'; // Included with Angular CLI.
import 'zone.js/dist/zone-bluebird';
import 'zone.js'; // Included with Angular CLI.
import 'zone.js/plugins/zone-bluebird';
```

in main.ts, patch bluebird.
Expand All @@ -67,7 +66,7 @@ Node Sample Usage:
```
require('zone.js');
const Bluebird = require('bluebird');
require('zone.js/dist/zone-bluebird');
require('zone.js/plugins/zone-bluebird');
Zone[Zone['__symbol__']('bluebird')](Bluebird);
Zone.current.fork({
name: 'bluebird'
Expand Down Expand Up @@ -178,7 +177,7 @@ is patched, so each asynchronous call will run in the correct zone.
For example, in an Angular application, you can load this patch in your `app.module.ts`.

```
import 'zone.js/dist/zone-patch-rxjs';
import 'zone.js/plugins/zone-patch-rxjs';
```

* electron
Expand All @@ -194,9 +193,9 @@ In electron, we patched the following APIs with `zone.js`
add following line into `polyfill.ts` after loading zone-mix.

```
//import 'zone.js/dist/zone'; // originally added by angular-cli, comment it out
import 'zone.js/dist/zone-mix'; // add zone-mix to patch both Browser and Nodejs
import 'zone.js/dist/zone-patch-electron'; // add zone-patch-electron to patch Electron native API
//import 'zone.js'; // originally added by angular-cli, comment it out
import 'zone.js/mix'; // add zone-mix to patch both Browser and Nodejs
import 'zone.js/plugins/zone-patch-electron'; // add zone-patch-electron to patch Electron native API
```

there is a sampel repo [zone-electron](https://github.com/JiaLiPassion/zone-electron).
Expand All @@ -207,8 +206,8 @@ user need to patch `io` themselves just like following code.

```javascript
<script src="socket.io-client/dist/socket.io.js"></script>
<script src="zone.js/dist/zone.js"></script>
<script src="zone.js/dist/zone-patch-socket-io.js"></script>
<script src="zone.js/bundles/zone.umd.js"></script>
<script src="zone.js/bundles/zone-patch-socket-io.js"></script>
<script>
// patch io here
Zone[Zone.__symbol__('socketio')](io);
Expand All @@ -229,7 +228,7 @@ there is a sampel repo [zone-jsonp](https://github.com/JiaLiPassion/test-zone-js
sample usage is:

```javascript
import 'zone.js/dist/zone-patch-jsonp';
import 'zone.js/plugins/zone-patch-jsonp';
Zone['__zone_symbol__jsonp']({
jsonp: getJSONP,
sendFuncName: 'send',
Expand All @@ -243,8 +242,8 @@ Currently only `Chrome 64` native support this feature.
you can add the following line into `polyfill.ts` after loading `zone.js`.

```
import 'zone.js/dist/zone';
import 'zone.js/dist/zone-patch-resize-observer';
import 'zone.js';
import 'zone.js/plugins/zone-patch-resize-observer';
```

there is a sample repo [zone-resize-observer](https://github.com/JiaLiPassion/zone-resize-observer) here
4 changes: 2 additions & 2 deletions packages/zone.js/lib/zone-spec/async-test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -194,7 +194,7 @@ Zone.__load_patch('asynctest', (global: any, Zone: ZoneType, api: _ZonePrivate)
if (AsyncTestZoneSpec === undefined) {
throw new Error(
'AsyncTestZoneSpec is needed for the async() test helper but could not be found. ' +
'Please make sure that your environment includes zone.js/dist/async-test.js');
'Please make sure that your environment includes zone.js/plugins/async-test');
}
const ProxyZoneSpec = (Zone as any)['ProxyZoneSpec'] as {
get(): {setDelegate(spec: ZoneSpec): void; getDelegate(): ZoneSpec;};
Expand All @@ -203,7 +203,7 @@ Zone.__load_patch('asynctest', (global: any, Zone: ZoneType, api: _ZonePrivate)
if (!ProxyZoneSpec) {
throw new Error(
'ProxyZoneSpec is needed for the async() test helper but could not be found. ' +
'Please make sure that your environment includes zone.js/dist/proxy.js');
'Please make sure that your environment includes zone.js/plugins/proxy');
}
const proxyZoneSpec = ProxyZoneSpec.get();
ProxyZoneSpec.assertPresent();
Expand Down
2 changes: 1 addition & 1 deletion packages/zone.js/lib/zone-spec/fake-async-test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -756,7 +756,7 @@ Zone.__load_patch('fakeasync', (global: any, Zone: ZoneType, api: _ZonePrivate)
if (!ProxyZoneSpec) {
throw new Error(
'ProxyZoneSpec is needed for the async() test helper but could not be found. ' +
'Please make sure that your environment includes zone.js/dist/proxy.js');
'Please make sure that your environment includes zone.js/plugins/proxy');
}
const proxyZoneSpec = ProxyZoneSpec.assertPresent();
if (Zone.current.get('FakeAsyncTestZoneSpec')) {
Expand Down

0 comments on commit aaf9b31

Please sign in to comment.