diff --git a/lib/browser/browser.ts b/lib/browser/browser.ts index 6a24bc120..45da5da62 100644 --- a/lib/browser/browser.ts +++ b/lib/browser/browser.ts @@ -1,4 +1,4 @@ -import '../zone'; +import { TaskData, Zone, Task } from '../zone'; import {eventTargetPatch} from './event-target'; import {propertyPatch} from './define-property'; import {registerElementPatch} from './register-element'; @@ -96,4 +96,3 @@ function patchTimer( } }); } - diff --git a/lib/browser/property-descriptor.ts b/lib/browser/property-descriptor.ts index d3876d5aa..54d4ac428 100644 --- a/lib/browser/property-descriptor.ts +++ b/lib/browser/property-descriptor.ts @@ -1,3 +1,4 @@ +import { Zone } from '../zone'; import * as webSocketPatch from './websocket'; import {zoneSymbol, patchOnProperties, patchClass, isBrowser, isNode} from './utils'; @@ -7,7 +8,7 @@ export function propertyDescriptorPatch(_global) { if (isNode){ return; } - + var supportsWebSocket = typeof WebSocket !== 'undefined'; if (canPatchViaPropertyDescriptor()) { // for browsers that we can patch the descriptor: Chrome & Firefox diff --git a/lib/browser/register-element.ts b/lib/browser/register-element.ts index 61f3df1f1..86b3ad1a8 100644 --- a/lib/browser/register-element.ts +++ b/lib/browser/register-element.ts @@ -1,3 +1,4 @@ +import { Zone } from '../zone'; import {_redefineProperty} from './define-property'; import {isBrowser} from './utils'; diff --git a/lib/browser/utils.ts b/lib/browser/utils.ts index c03dc3d27..78ede5266 100644 --- a/lib/browser/utils.ts +++ b/lib/browser/utils.ts @@ -1,3 +1,4 @@ +import { Zone, TaskData, Task } from '../zone'; /** * Suppress closure compiler errors about unknown 'process' variable * @fileoverview @@ -317,4 +318,3 @@ export function patchMethod(target: any, name: string, } return delegate; } - diff --git a/lib/jasmine/jasmine.ts b/lib/jasmine/jasmine.ts index 87ad109db..706082293 100644 --- a/lib/jasmine/jasmine.ts +++ b/lib/jasmine/jasmine.ts @@ -1,4 +1,4 @@ -'use strict'; +import { Zone, ZoneSpec, Task, ZoneDelegate, MicroTask } from '../../lib/zone'; // Patch jasmine's it and fit functions so that the `done` wrapCallback always resets the zone // to the jasmine zone, which should be the root zone. (angular/zone.js#91) if (!Zone) { @@ -30,4 +30,3 @@ const _global = typeof window == 'undefined' ? global : window; QueueRunner.prototype = SuperQueueRunner.prototype; return QueueRunner; })((jasmine).QueueRunner); - diff --git a/lib/zone-spec/async-test.ts b/lib/zone-spec/async-test.ts index 1036782d8..a6c92563d 100644 --- a/lib/zone-spec/async-test.ts +++ b/lib/zone-spec/async-test.ts @@ -1,3 +1,5 @@ +import { Zone, ZoneSpec, Task, ZoneDelegate, HasTaskState } from '../zone'; + (function() { class AsyncTestZoneSpec implements ZoneSpec { _finishCallback: Function; diff --git a/lib/zone-spec/long-stack-trace.ts b/lib/zone-spec/long-stack-trace.ts index c564d64e8..ef15e7438 100644 --- a/lib/zone-spec/long-stack-trace.ts +++ b/lib/zone-spec/long-stack-trace.ts @@ -1,3 +1,4 @@ +import { Zone, ZoneDelegate, Task, ZoneSpec } from '../zone'; 'use strict'; (function() { const NEWLINE = '\n'; diff --git a/lib/zone-spec/sync-test.ts b/lib/zone-spec/sync-test.ts index 59799fa4b..1bfdf65d6 100644 --- a/lib/zone-spec/sync-test.ts +++ b/lib/zone-spec/sync-test.ts @@ -1,3 +1,5 @@ +import { Zone, ZoneSpec, Task, ZoneDelegate, MicroTask } from '../zone'; + (function() { class SyncTestZoneSpec implements ZoneSpec { runZone = Zone.current; diff --git a/lib/zone-spec/wtf.ts b/lib/zone-spec/wtf.ts index 5b3715192..9786324bd 100644 --- a/lib/zone-spec/wtf.ts +++ b/lib/zone-spec/wtf.ts @@ -1,3 +1,5 @@ +import { Zone, ZoneSpec, Task, ZoneDelegate } from '../zone'; + (function(global) { interface Wtf { trace: WtfTrace; } interface WtfScope {}; diff --git a/lib/zone.ts b/lib/zone.ts index bfdad690c..3d6a3d981 100644 --- a/lib/zone.ts +++ b/lib/zone.ts @@ -119,7 +119,7 @@ * zones are children of the root zone. * */ -interface Zone { +export interface Zone { /** * * @returns {Zone} The parent Zone. @@ -212,7 +212,7 @@ interface Zone { cancelTask(task: Task): any; } -interface ZoneType { +export interface ZoneType { /** * @returns {Zone} Returns the current [Zone]. Returns the current zone. The only way to change * the current zone is by invoking a run() method, which will update the current zone for the @@ -230,7 +230,7 @@ interface ZoneType { * * Only the `name` property is required (all other are optional). */ -interface ZoneSpec { +export interface ZoneSpec { /** * The name of the zone. Usefull when debugging Zones. */ @@ -359,7 +359,7 @@ interface ZoneSpec { * Note: The ZoneDelegate treats ZoneSpec as class. This allows the ZoneSpec to use its `this` to * store internal state. */ -interface ZoneDelegate { +export interface ZoneDelegate { zone: Zone; fork(targetZone: Zone, zoneSpec: ZoneSpec): Zone; intercept(targetZone: Zone, callback: Function, source: string): Function; @@ -371,7 +371,7 @@ interface ZoneDelegate { hasTask(targetZone: Zone, isEmpty: HasTaskState): void; } -type HasTaskState = { +export type HasTaskState = { microTask: boolean, macroTask: boolean, eventTask: boolean, @@ -381,11 +381,11 @@ type HasTaskState = { /** * Task type: `microTask`, `macroTask`, `eventTask`. */ -type TaskType = string; /* TS v1.8 => "microTask" | "macroTask" | "eventTask" */; +export type TaskType = string; /* TS v1.8 => "microTask" | "macroTask" | "eventTask" */; /** */ -interface TaskData { +export interface TaskData { /** * A periodic [MacroTask] is such which get automatically rescheduled after it is executed. */ @@ -414,7 +414,7 @@ interface TaskData { * queue. This happens when the event fires. * */ -interface Task { +export interface Task { /** * Task type: `microTask`, `macroTask`, `eventTask`. */ @@ -464,15 +464,15 @@ interface Task { zone: Zone; } -interface MicroTask extends Task { +export interface MicroTask extends Task { /* TS v1.8 => type: 'microTask'; */ } -interface MacroTask extends Task { +export interface MacroTask extends Task { /* TS v1.8 => type: 'macroTask'; */ } -interface EventTask extends Task { +export interface EventTask extends Task { /* TS v1.8 => type: 'eventTask'; */ } @@ -481,7 +481,7 @@ type AmbientZone = Zone; /** @internal */ type AmbientZoneDelegate = ZoneDelegate; -var Zone: ZoneType = (function(global) { +export var Zone: ZoneType = (function(global) { class Zone implements AmbientZone { static __symbol__: (name: string) => string = __symbol__; diff --git a/test/async-test.spec.ts b/test/async-test.spec.ts index a29124f41..909c4731e 100644 --- a/test/async-test.spec.ts +++ b/test/async-test.spec.ts @@ -1,4 +1,5 @@ import '../lib/zone-spec/async-test'; +import { Zone, ZoneSpec, Task, ZoneDelegate, HasTaskState } from '../lib/zone'; describe('AsyncTestZoneSpec', function() { var log; diff --git a/test/browser/FileReader.spec.ts b/test/browser/FileReader.spec.ts index ed2150488..85438b63a 100644 --- a/test/browser/FileReader.spec.ts +++ b/test/browser/FileReader.spec.ts @@ -1,4 +1,5 @@ import {ifEnvSupports} from '../util'; +import { Zone } from '../../lib/zone'; describe('FileReader', ifEnvSupports('FileReader', function () { var fileReader; @@ -6,7 +7,7 @@ describe('FileReader', ifEnvSupports('FileReader', function () { var data = 'Hello, World!'; var testZone = Zone.current.fork({ name: 'TestZone' }); - // Android 4.3's native browser doesn't implement add/RemoveEventListener for FileReader + // Android 4.3's native browser doesn't implement add/RemoveEventListener for FileReader function supportsEventTargetFns () { return FileReader.prototype.addEventListener && FileReader.prototype.removeEventListener; } @@ -92,4 +93,4 @@ describe('FileReader', ifEnvSupports('FileReader', function () { fileReader.readAsText(blob); }); -})); \ No newline at end of file +})); diff --git a/test/browser/HTMLImports.spec.ts b/test/browser/HTMLImports.spec.ts index 616ab6b90..52e867cbf 100644 --- a/test/browser/HTMLImports.spec.ts +++ b/test/browser/HTMLImports.spec.ts @@ -1,4 +1,5 @@ import {ifEnvSupports} from '../util'; +import { Zone } from '../../lib/zone'; function supportsImports() { return 'import' in document.createElement('link'); diff --git a/test/browser/MutationObserver.spec.ts b/test/browser/MutationObserver.spec.ts index dd9fd6e79..b6462f379 100644 --- a/test/browser/MutationObserver.spec.ts +++ b/test/browser/MutationObserver.spec.ts @@ -1,3 +1,4 @@ +import { Zone } from '../../lib/zone'; import {ifEnvSupports} from '../util'; describe('MutationObserver', ifEnvSupports('MutationObserver', function () { diff --git a/test/browser/Promise.spec.ts b/test/browser/Promise.spec.ts index 337cbb4a0..61ba194a4 100644 --- a/test/browser/Promise.spec.ts +++ b/test/browser/Promise.spec.ts @@ -1,4 +1,5 @@ import {ifEnvSupports} from '../util'; +import { Zone, ZoneSpec, Task, ZoneDelegate, MicroTask } from '../../lib/zone'; class MicroTaskQueueZoneSpec implements ZoneSpec { name: string = 'MicroTaskQueue'; @@ -138,7 +139,7 @@ describe('Promise', ifEnvSupports('Promise', function () { }); }); - + expect(reject()).toBe(undefined); }); diff --git a/test/browser/WebSocket.spec.ts b/test/browser/WebSocket.spec.ts index 02a651b3d..75d677b27 100644 --- a/test/browser/WebSocket.spec.ts +++ b/test/browser/WebSocket.spec.ts @@ -1,4 +1,5 @@ import {ifEnvSupports} from '../util'; +import { Zone } from '../../lib/zone'; var TIMEOUT = 5000; @@ -119,4 +120,4 @@ if (!window['soucelabs']) { }, 100); }, TIMEOUT); })); -} \ No newline at end of file +} diff --git a/test/browser/XMLHttpRequest.spec.ts b/test/browser/XMLHttpRequest.spec.ts index 71b8ca494..833e19fb9 100644 --- a/test/browser/XMLHttpRequest.spec.ts +++ b/test/browser/XMLHttpRequest.spec.ts @@ -1,4 +1,5 @@ import {ifEnvSupports} from '../util'; +import { Zone } from '../../lib/zone'; describe('XMLHttpRequest', function () { var testZone = Zone.current.fork({name: 'test'}); @@ -65,4 +66,3 @@ describe('XMLHttpRequest', function () { expect(XMLHttpRequest.DONE).toEqual(4); }); }); - diff --git a/test/browser/element.spec.ts b/test/browser/element.spec.ts index a2e949c49..5f16540e4 100644 --- a/test/browser/element.spec.ts +++ b/test/browser/element.spec.ts @@ -1,4 +1,5 @@ import {ifEnvSupports} from '../util'; +import { Zone } from '../../lib/zone'; describe('element', function () { @@ -106,7 +107,7 @@ describe('element', function () { it('should have no effect while calling addEventListener without listener', function () { var onAddEventListenerSpy = jasmine.createSpy('addEventListener') var eventListenerZone = Zone.current.fork({ - name: 'eventListenerZone', + name: 'eventListenerZone', onScheduleTask: onAddEventListenerSpy }); expect(function() { @@ -120,8 +121,8 @@ describe('element', function () { it('should have no effect while calling removeEventListener without listener', function () { var onAddEventListenerSpy = jasmine.createSpy('removeEventListener'); - var eventListenerZone = Zone.current.fork({ - name: 'eventListenerZone', + var eventListenerZone = Zone.current.fork({ + name: 'eventListenerZone', onScheduleTask: onAddEventListenerSpy }); expect(function() { @@ -277,7 +278,7 @@ describe('element', function () { afterEach(function () { document.body.removeChild(checkbox); }); - + it('should be possible to prevent default behavior by returning false', function() { checkbox.onclick = function() { return false; diff --git a/test/browser/geolocation.spec.manual.ts b/test/browser/geolocation.spec.manual.ts index a9edd5dd0..5ced0457c 100644 --- a/test/browser/geolocation.spec.manual.ts +++ b/test/browser/geolocation.spec.manual.ts @@ -1,4 +1,5 @@ import {ifEnvSupports} from '../util'; +import { Zone } from '../../lib/zone'; function supportsGeolocation() { return 'geolocation' in navigator; diff --git a/test/browser/registerElement.spec.ts b/test/browser/registerElement.spec.ts index 844de5a31..f577b1b15 100644 --- a/test/browser/registerElement.spec.ts +++ b/test/browser/registerElement.spec.ts @@ -4,6 +4,7 @@ */ import {ifEnvSupports} from '../util'; +import { Zone } from '../../lib/zone'; function registerElement() { return ('registerElement' in document); diff --git a/test/browser/requestAnimationFrame.spec.ts b/test/browser/requestAnimationFrame.spec.ts index 27f70edaa..cafaeafe7 100644 --- a/test/browser/requestAnimationFrame.spec.ts +++ b/test/browser/requestAnimationFrame.spec.ts @@ -1,4 +1,5 @@ import {ifEnvSupports} from '../util'; +import { Zone, } from '../../lib/zone'; describe('requestAnimationFrame', function () { var functions = [ diff --git a/test/browser/setInterval.spec.ts b/test/browser/setInterval.spec.ts index d189cf18d..50ee747f6 100644 --- a/test/browser/setInterval.spec.ts +++ b/test/browser/setInterval.spec.ts @@ -1,5 +1,6 @@ 'use strict'; import {zoneSymbol} from "../../lib/browser/utils"; +import { Zone, MacroTask } from '../../lib/zone'; describe('setInterval', function () { diff --git a/test/browser/setTimeout.spec.ts b/test/browser/setTimeout.spec.ts index be5a494cc..dd07307f0 100644 --- a/test/browser/setTimeout.spec.ts +++ b/test/browser/setTimeout.spec.ts @@ -1,4 +1,5 @@ import {zoneSymbol} from '../../lib/browser/utils'; +import { Zone, MacroTask } from '../../lib/zone'; describe('setTimeout', function () { it('should intercept setTimeout', function (done) { diff --git a/test/long-stack-trace-zone.spec.ts b/test/long-stack-trace-zone.spec.ts index 646c0a8d1..e9672da16 100644 --- a/test/long-stack-trace-zone.spec.ts +++ b/test/long-stack-trace-zone.spec.ts @@ -1,3 +1,5 @@ +import { Zone, ZoneDelegate } from '../lib/zone'; + describe('longStackTraceZone', function () { var log; diff --git a/test/microtasks.spec.ts b/test/microtasks.spec.ts index 31af62190..de43637fb 100644 --- a/test/microtasks.spec.ts +++ b/test/microtasks.spec.ts @@ -1,3 +1,5 @@ +import { Zone, ZoneDelegate, Task } from '../lib/zone'; + describe('Microtasks', function () { if (!global.Promise) return; diff --git a/test/sync-test.spec.ts b/test/sync-test.spec.ts index 22871475a..a2205192a 100644 --- a/test/sync-test.spec.ts +++ b/test/sync-test.spec.ts @@ -1,4 +1,5 @@ import '../lib/zone-spec/sync-test'; +import { Zone } from '../lib/zone'; describe('SyncTestZoneSpec', () => { var SyncTestZoneSpec = Zone['SyncTestZoneSpec']; diff --git a/test/ws-webworker-context.ts b/test/ws-webworker-context.ts index 3393c84de..0402a9f05 100644 --- a/test/ws-webworker-context.ts +++ b/test/ws-webworker-context.ts @@ -1,4 +1,5 @@ importScripts('/base/test/zone_worker_entry_point.ts'); +import { Zone } from '../lib/zone'; Zone.current.fork({name: 'webworker'}).run(() => { var websocket = new WebSocket('ws://localhost:8001'); @@ -13,4 +14,3 @@ Zone.current.fork({name: 'webworker'}).run(() => { websocket.send('text'); }); }); - diff --git a/test/zone.spec.ts b/test/zone.spec.ts index a38bfe957..f4a7cbaef 100644 --- a/test/zone.spec.ts +++ b/test/zone.spec.ts @@ -1,5 +1,6 @@ import './test-env-setup'; import {zoneSymbol} from '../lib/browser/utils'; +import { Zone, Task, ZoneDelegate, HasTaskState } from '../lib/zone'; describe('Zone', function () { var rootZone = Zone.current; @@ -97,7 +98,7 @@ describe('Zone', function () { zone.run(function() { button.addEventListener('click', eventListenerSpy); }); - + button.dispatchEvent(clickEvent); expect(hookSpy).toHaveBeenCalled();