diff --git a/angularfire2-2.0.0-alpha.16.tgz b/angularfire2-2.0.0-alpha.16.tgz deleted file mode 100644 index 0dcf2f79d..000000000 Binary files a/angularfire2-2.0.0-alpha.16.tgz and /dev/null differ diff --git a/karma-test-shim.js b/karma-test-shim.js index 6e63431c0..42f8e5866 100644 --- a/karma-test-shim.js +++ b/karma-test-shim.js @@ -1,2 +1,88 @@ -import {BrowserDomAdapter} from 'angular2/platform/browser'; -BrowserDomAdapter.makeCurrent(); +/*global jasmine, __karma__, window*/ +Error.stackTraceLimit = Infinity; +jasmine.DEFAULT_TIMEOUT_INTERVAL = 10000; + +__karma__.loaded = function () { +}; + + +function isJsFile(path) { + return path.slice(-3) == '.js'; +} + +function isSpecFile(path) { + return path.slice(-7) == 'spec.js'; +} + +function isBuiltFile(path) { + var builtPath = '/base/dist/'; + return isJsFile(path) && (path.substr(0, builtPath.length) == builtPath); +} + +var allSpecFiles = Object.keys(window.__karma__.files) + .filter(isSpecFile) + .filter(isBuiltFile); + +// Load our SystemJS configuration. +System.config({ + baseURL: '/base' +}); + +System.config( +{ + map: { + 'rxjs': 'node_modules/rxjs', + '@angular': 'node_modules/@angular', + firebase: 'node_modules/firebase/lib/firebase-web.js', + 'app': 'dist' + }, + packages: { + 'app': { + main: 'main.js', + defaultExtension: 'js' + }, + '@angular/core': { + main: 'index.js', + defaultExtension: 'js' + }, + '@angular/compiler': { + main: 'index.js', + defaultExtension: 'js' + }, + '@angular/common': { + main: 'index.js', + defaultExtension: 'js' + }, + '@angular/platform-browser': { + main: 'index.js', + defaultExtension: 'js' + }, + '@angular/platform-browser-dynamic': { + main: 'index.js', + defaultExtension: 'js' + }, + 'rxjs': { + main: 'Rx.js', + defaultExtension: 'js' + } + } +}); + +Promise.all([ + System.import('@angular/core/testing'), + System.import('@angular/platform-browser-dynamic/testing') +]).then(function (providers) { + var testing = providers[0]; + var testingBrowser = providers[1]; + + testing.setBaseTestProviders(testingBrowser.TEST_BROWSER_DYNAMIC_PLATFORM_PROVIDERS, + testingBrowser.TEST_BROWSER_DYNAMIC_APPLICATION_PROVIDERS); + +}).then(function() { + // Finally, load all spec files. + // This will run the tests directly. + return Promise.all( + allSpecFiles.map(function (moduleName) { + return System.import(moduleName); + })); +}).then(__karma__.start, __karma__.error); \ No newline at end of file diff --git a/karma.conf.js b/karma.conf.js index 35d066df6..5009f68f6 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -1,128 +1,51 @@ // Karma configuration -// Generated on Wed Jan 20 2016 06:08:48 GMT-0800 (PST) - module.exports = function(config) { config.set({ - plugins: [ - require('./tools/test-server'), - require('karma-jasmine'), - require('karma-chrome-launcher'), - require('karma-firefox-launcher'), - require('karma-systemjs'), - require('karma-mocha-reporter') - ], - - systemjs: { - config: { - map: { - rxjs: 'node_modules/rxjs', - angular2: 'node_modules/angular2', - 'zone.js': 'node_modules/zone.js/lib', - firebase: 'node_modules/firebase/lib/firebase-web.js', - 'mock-promises': 'node_modules/mock-promises/lib/mock-promises.js', - 'reflect-metadata': 'node_modules/reflect-metadata/temp/Reflect.js', - }, - packages: { - 'traceur': { - defaultExtension: 'js' - }, - 'angular2': { - defaultExtension: 'js' - }, - 'dist': { - defaultExtension: 'js' - }, - 'zone.js': { - defaultExtension: 'js' - }, - 'reflect-metadata': { - format: 'global' - }, - 'rxjs': { - main: 'Rx.js', - defaultExtension: 'js' - } - } - } - }, - - // base path that will be used to resolve all patterns (eg. files, exclude) basePath: '', + frameworks: ['jasmine'], - // frameworks to use - // available frameworks: https://npmjs.org/browse/keyword/karma-adapter - frameworks: ['systemjs', 'jasmine'], - - - // list of files / patterns to load in the browser files: [ - 'node_modules/traceur/traceur.+(js|map)', - {pattern: 'node_modules/systemjs/dist/**/*.map', included: false, watched: false}, - {pattern: 'node_modules/angular2/**/*.+(js|map)', included: false, watched: false}, - {pattern: 'node_modules/angular2/bundles/testing.dev.js', included: false, watched: false}, - {pattern: 'node_modules/reflect-metadata/**/*.+(js|map)', included: false, watched: false}, - {pattern: 'node_modules/reflect-metadata/temp/Reflect.js', included: true, watched: false}, - {pattern: 'node_modules/zone.js/lib/**/*.js', included: false, watched: false}, - 'node_modules/zone.js/lib/zone.js', - {pattern: 'karma-test-shim.js', included: true, watched: true}, - {pattern: 'node_modules/rxjs/**/*.+(js|map)', included: false, watched: false}, - {pattern: 'node_modules/firebase/lib/firebase-web.js', included: false, watched: false}, - {pattern: 'node_modules/mock-promises/lib/mock-promises.js', included: false, watched: false}, - {pattern: 'dist/**/*.js', included: false, watched: true}, - {pattern: 'src/**/*.ts', included: false, watched: false}, - 'dist/**/*.spec.js', - 'dist/*.spec.js', - {pattern: 'dist/**/*.js.map', included: false, watched: false}, - ], + // Polyfills. + 'node_modules/es6-shim/es6-shim.js', + 'node_modules/reflect-metadata/Reflect.js', - // list of files to exclude - exclude: [ - ], + // System.js for module loading + 'node_modules/systemjs/dist/system-polyfills.js', + 'node_modules/systemjs/dist/system.src.js', + // Zone.js dependencies + 'node_modules/zone.js/dist/zone.js', + 'node_modules/zone.js/dist/jasmine-patch.js', + 'node_modules/zone.js/dist/async-test.js', - // preprocess matching files before serving them to the browser - // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor - preprocessors: { - }, + // RxJs. + { pattern: 'node_modules/rxjs/**/*.js', included: false, watched: false }, + { pattern: 'node_modules/rxjs/**/*.js.map', included: false, watched: false }, - // test results reporter to use - // possible values: 'dots', 'progress' - // available reporters: https://npmjs.org/browse/keyword/karma-reporter - reporters: ['mocha'], + {pattern: 'karma-test-shim.js', included: true, watched: true}, + {pattern: 'built/test/matchers.js', included: true, watched: true}, + // paths loaded via module imports + // Angular itself + {pattern: 'node_modules/@angular/**/*.js', included: false, watched: true}, + {pattern: 'node_modules/@angular/**/*.js.map', included: false, watched: true}, - // web server port + {pattern: 'node_modules/firebase/lib/firebase-web.js', included: false, watched: false}, + {pattern: 'node_modules/mock-promises/lib/mock-promises.js', included: false, watched: false}, + {pattern: 'dist/**/*.js', included: false, watched: true}, + {pattern: 'dist/**/*.js.map', included: false, watched: false} + ], + + reporters: ['mocha'], port: 9876, - - - // enable / disable colors in the output (reporters and logs) colors: true, - - - // level of logging - // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG logLevel: config.LOG_INFO, - - - // enable / disable watching file and executing tests whenever any file changes autoWatch: true, - - - // start these browsers - // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher - browsers: ['Firefox'], - - - // Continuous Integration mode - // if true, Karma captures browsers, runs the tests and exits - singleRun: false, - - // Concurrency level - // how many browser should be started simultaneous - concurrency: Infinity + browsers: ['Chrome'], + singleRun: false }) -} +}; \ No newline at end of file diff --git a/package.json b/package.json index 6b9e7beec..b666e4846 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "angularfire2", - "version": "2.0.0-alpha.16", + "version": "2.0.0-alpha.17", "description": "", "main": "./dist/angularfire2.js", "jsnext:main": "./dist/es6/angularfire2.js", @@ -29,9 +29,13 @@ }, "homepage": "https://github.com/angular/indy#readme", "dependencies": { - "angular2": ">=2.0.0-beta.14 <2.0.0-rc.1", + "@angular/core": "2.0.0-rc.1", + "@angular/platform-browser": "2.0.0-rc.1", + "@angular/common": "2.0.0-rc.1", + "@angular/compiler": "2.0.0-rc.1", + "@angular/platform-browser-dynamic": "2.0.0-rc.1", "firebase": "2.4.2", - "rxjs": "5.0.0-beta.2" + "rxjs": "5.0.0-beta.6" }, "devDependencies": { "es6-module-loader": "^0.17.10", diff --git a/src/angularfire2.spec.ts b/src/angularfire2.spec.ts index c4621a2ee..938ac90e0 100644 --- a/src/angularfire2.spec.ts +++ b/src/angularfire2.spec.ts @@ -7,9 +7,10 @@ import { beforeEachProviders, expect, inject, - injectAsync -} from 'angular2/testing'; -import {Injector, provide, Provider} from 'angular2/core'; + injectAsync, + async +} from '@angular/core/testing'; +import {ReflectiveInjector, provide, Provider} from '@angular/core'; import { AngularFire, FirebaseObjectObservable, @@ -43,7 +44,7 @@ describe('angularfire', () => { it('should be injectable via FIREBASE_PROVIDERS', () => { - var injector = Injector.resolveAndCreate([FIREBASE_PROVIDERS, defaultFirebase(localServerUrl)]); + var injector = ReflectiveInjector.resolveAndCreate([FIREBASE_PROVIDERS, defaultFirebase(localServerUrl)]); expect(injector.get(AngularFire)).toBeAnInstanceOf(AngularFire); }); @@ -104,23 +105,25 @@ describe('angularfire', () => { }); - it('should return an observable of the path', injectAsync([AngularFire], (af:AngularFire) => { + it('should return an observable of the path', (done: any) => { return (observable)._ref.set({title: 'how to firebase?'}) .then(() => observable.take(1).toPromise()) .then((data:any) => { expect(data).toEqual({title: 'how to firebase?'}); + done(); }); - })); + }); - it('should preserve snapshot if preserveSnapshot option specified', injectAsync([AngularFire], (af:AngularFire) => { + it('should preserve snapshot if preserveSnapshot option specified', (done: any) => { observable = af.object(`list-of-questions/`, {preserveSnapshot: true}); return (observable)._ref.set({title: 'how to firebase?'}) .then(() => observable.take(1).toPromise()) .then((data:any) => { expect(data.val()).toEqual({title: 'how to firebase?'}); + done(); }); - })); + }); }); @@ -135,7 +138,7 @@ describe('angularfire', () => { describe('FIREBASE_REF', () => { it('should provide a FirebaseRef for the FIREBASE_REF binding', () => { - var injector = Injector.resolveAndCreate([ + var injector = ReflectiveInjector.resolveAndCreate([ provide(FirebaseUrl, { useValue: localServerUrl }), @@ -153,7 +156,7 @@ describe('angularfire', () => { it('should inject a FIR reference', () => { - const injector = Injector.resolveAndCreate([defaultFirebase(localServerUrl), FIREBASE_PROVIDERS]); + const injector = ReflectiveInjector.resolveAndCreate([defaultFirebase(localServerUrl), FIREBASE_PROVIDERS]); expect(injector.get(FirebaseRef).toString()).toBe(localServerUrl); }); }); diff --git a/src/angularfire2.ts b/src/angularfire2.ts index 1b3ad87d1..d95b604d0 100644 --- a/src/angularfire2.ts +++ b/src/angularfire2.ts @@ -1,4 +1,4 @@ -import {APP_INITIALIZER, Inject, Injectable, OpaqueToken, provide, Provider} from 'angular2/core'; +import {APP_INITIALIZER, Inject, Injectable, OpaqueToken, provide, Provider} from '@angular/core'; import {FirebaseAuth, firebaseAuthConfig} from './providers/auth'; import * as Firebase from 'firebase'; import {FirebaseListObservable} from './utils/firebase_list_observable'; diff --git a/src/angularfire2_worker_app.ts b/src/angularfire2_worker_app.ts index f5a53b616..1e7518f78 100644 --- a/src/angularfire2_worker_app.ts +++ b/src/angularfire2_worker_app.ts @@ -1,4 +1,4 @@ -import {provide} from 'angular2/core'; +import {provide} from '@angular/core'; import {COMMON_PROVIDERS} from './angularfire2'; import {AuthBackend} from './providers/auth_backend'; import {WebWorkerFirebaseAuth} from './providers/web_workers/worker/auth'; diff --git a/src/angularfire2_worker_render.ts b/src/angularfire2_worker_render.ts index 524ae9d6d..32a8d37fd 100644 --- a/src/angularfire2_worker_render.ts +++ b/src/angularfire2_worker_render.ts @@ -1,4 +1,4 @@ -import {provide} from 'angular2/core'; +import {provide} from '@angular/core'; import {COMMON_PROVIDERS} from './angularfire2'; import {FirebaseSdkAuthBackend} from './providers/firebase_sdk_auth_backend'; import {WebWorkerFirebaseAuth} from './providers/web_workers/worker/auth'; diff --git a/src/database/database.ts b/src/database/database.ts index e9814300b..4a3d04ef3 100644 --- a/src/database/database.ts +++ b/src/database/database.ts @@ -1,4 +1,4 @@ -import {Inject, Injectable} from 'angular2/core'; +import {Inject, Injectable} from '@angular/core'; import {FirebaseUrl} from '../tokens'; import {FirebaseListObservable} from '../utils/firebase_list_observable'; import {FirebaseObjectObservable} from '../utils/firebase_object_observable'; diff --git a/src/providers/auth.spec.ts b/src/providers/auth.spec.ts index 2dbd013f1..c4103fb7a 100644 --- a/src/providers/auth.spec.ts +++ b/src/providers/auth.spec.ts @@ -1,7 +1,7 @@ /// -import {expect, describe, it, iit, beforeEach} from 'angular2/testing'; -import {Injector, provide, Provider} from 'angular2/core'; +import {expect, describe, it, iit, beforeEach} from '@angular/core/testing'; +import {ReflectiveInjector, provide, Provider} from '@angular/core'; import {Observable} from 'rxjs/Observable' import { FIREBASE_PROVIDERS, @@ -19,7 +19,7 @@ import * as Firebase from 'firebase'; import * as mockPromises from 'mock-promises'; describe('FirebaseAuth', () => { - let injector: Injector = null; + let injector: ReflectiveInjector = null; let ref: Firebase = null; let authData: any = null; let authCb: any = null; @@ -56,7 +56,7 @@ describe('FirebaseAuth', () => { beforeEach(() => { authData = null; authCb = null; - injector = Injector.resolveAndCreate([ + injector = ReflectiveInjector.resolveAndCreate([ provide(FirebaseUrl, { useValue: 'https://angularfire2-auth.firebaseio-demo.com/' }), diff --git a/src/providers/auth.ts b/src/providers/auth.ts index c1dd42f9d..6c5ae4f95 100644 --- a/src/providers/auth.ts +++ b/src/providers/auth.ts @@ -1,5 +1,5 @@ -import {Provider, Inject, provide, Injectable, Optional} from 'angular2/core'; -import {ReplaySubject} from 'rxjs/subject/ReplaySubject'; +import {Provider, Inject, provide, Injectable, Optional} from '@angular/core'; +import {ReplaySubject} from 'rxjs/ReplaySubject'; import {FirebaseRef, FirebaseAuthConfig} from '../tokens'; import {isPresent} from '../utils/utils'; import * as utils from '../utils/utils'; diff --git a/src/providers/firebase_sdk_auth_backend.ts b/src/providers/firebase_sdk_auth_backend.ts index 264b83af0..39ee00c3c 100644 --- a/src/providers/firebase_sdk_auth_backend.ts +++ b/src/providers/firebase_sdk_auth_backend.ts @@ -1,4 +1,4 @@ -import {Injectable, Inject} from 'angular2/core'; +import {Injectable, Inject} from '@angular/core'; import { AuthBackend, FirebaseAuthState, diff --git a/src/providers/web_workers/ui/auth.ts b/src/providers/web_workers/ui/auth.ts index fc1bec6d3..de882b135 100644 --- a/src/providers/web_workers/ui/auth.ts +++ b/src/providers/web_workers/ui/auth.ts @@ -1,5 +1,5 @@ -import {Injectable, Inject} from 'angular2/core'; -import {ServiceMessageBrokerFactory, PRIMITIVE} from 'angular2/platform/worker_render'; +import {Injectable, Inject} from '@angular/core'; +import {ServiceMessageBrokerFactory, PRIMITIVE} from '@angular/platform-browser/src/worker_render'; import {AUTH_CHANNEL, INITIAL_AUTH_CHANNEL} from '../shared/channels'; import {FirebaseRef} from '../../../tokens'; import {FirebaseAuthState} from '../../auth_backend'; diff --git a/src/providers/web_workers/worker/auth.ts b/src/providers/web_workers/worker/auth.ts index 4f367e6be..7215fc238 100644 --- a/src/providers/web_workers/worker/auth.ts +++ b/src/providers/web_workers/worker/auth.ts @@ -1,4 +1,4 @@ -import {Injectable, Inject} from 'angular2/core'; +import {Injectable, Inject} from '@angular/core'; // Import these from src/ until we have a specific import path for them // https://github.com/angular/angular/issues/7419 diff --git a/src/tokens.ts b/src/tokens.ts index b98d865ce..46e2efed2 100644 --- a/src/tokens.ts +++ b/src/tokens.ts @@ -1,4 +1,4 @@ -import {OpaqueToken} from 'angular2/core'; +import {OpaqueToken} from '@angular/core'; export const FirebaseUrl = new OpaqueToken('FirebaseUrl'); export const FirebaseRef = new OpaqueToken('FirebaseRef') diff --git a/src/utils/absolute_path_resolver.spec.ts b/src/utils/absolute_path_resolver.spec.ts index 4b78c5c1e..3ddbdcdea 100644 --- a/src/utils/absolute_path_resolver.spec.ts +++ b/src/utils/absolute_path_resolver.spec.ts @@ -1,4 +1,12 @@ import {absolutePathResolver} from './absolute_path_resolver'; +import { + beforeEach, + it, + iit, + ddescribe, + describe, + expect +} from '@angular/core/testing'; describe('absolutePathResolver', () => { it('should return fully qualified url for relative path', () => { var root = 'https://angularfire2.firebaseio-demo.com/'; diff --git a/src/utils/firebase_list_factory.spec.ts b/src/utils/firebase_list_factory.spec.ts index e16b0ddf4..a99814161 100644 --- a/src/utils/firebase_list_factory.spec.ts +++ b/src/utils/firebase_list_factory.spec.ts @@ -16,7 +16,7 @@ import { ddescribe, describe, expect -} from 'angular2/testing'; +} from '@angular/core/testing'; import {Query} from './query_observable'; import {Subscription, Observable, Subject} from 'rxjs'; import 'rxjs/add/operator/do'; diff --git a/src/utils/firebase_list_factory.ts b/src/utils/firebase_list_factory.ts index 6b55f4501..5ad4651f6 100644 --- a/src/utils/firebase_list_factory.ts +++ b/src/utils/firebase_list_factory.ts @@ -45,7 +45,7 @@ export function FirebaseListFactory (absoluteUrlOrDbRef:string | Firebase | Fire queried = queried.equalTo(query.equalTo); if (utils.isPresent(query.startAt) || query.endAt) { - throw new Error('Query Error: Cannot use startAt with endAt.'); + throw new Error('Query Error: Cannot use startAt or endAt with equalTo.'); } // apply limitTos diff --git a/src/utils/firebase_list_observable.spec.ts b/src/utils/firebase_list_observable.spec.ts index 2595e4d1a..a7bde5e3e 100644 --- a/src/utils/firebase_list_observable.spec.ts +++ b/src/utils/firebase_list_observable.spec.ts @@ -1,4 +1,4 @@ -import {describe,it,iit,beforeEach} from 'angular2/testing'; +import {describe,it,iit,beforeEach} from '@angular/core/testing'; import {FirebaseListObservable} from './firebase_list_observable'; import {Observer} from 'rxjs/Observer'; import 'rxjs/add/operator/map'; @@ -24,7 +24,7 @@ describe('FirebaseObservable', () => { it('should return an instance of FirebaseObservable when calling operators', () => { - var O:FirebaseListObservable = new FirebaseListObservable(ref, (observer:Observer) => { + O = new FirebaseListObservable(ref, (observer:Observer) => { }); expect(O.map(noop) instanceof FirebaseListObservable).toBe(true); }); @@ -39,17 +39,6 @@ describe('FirebaseObservable', () => { }).toThrowError('No ref specified for this Observable!') }); - // it('should call push on the underlying ref', (done: any) => { - // var O:FirebaseListObservable = new FirebaseListObservable(ref.child('things'), (observer:Observer) => { - // }); - // O.push(1); - // }); - - // it('should accept any type of value without compilation error', () => { - // O.push('foo'); - // }); - - it('should resolve returned thenable when successful', (done:any) => { O.push('foo').then(done, done.fail); }); diff --git a/src/utils/firebase_object_factory.spec.ts b/src/utils/firebase_object_factory.spec.ts index ae3df0602..6d9e6d36c 100644 --- a/src/utils/firebase_object_factory.spec.ts +++ b/src/utils/firebase_object_factory.spec.ts @@ -1,6 +1,6 @@ import {FirebaseObjectFactory} from '../utils/firebase_object_factory'; import {FirebaseObjectObservable} from '../utils/firebase_object_observable'; -import {beforeEach, it, iit, describe, expect} from 'angular2/testing'; +import {beforeEach, it, iit, describe, expect} from '@angular/core/testing'; import {Subscription} from 'rxjs'; const rootFirebase = 'https://angularfire2-object-factory.firebaseio-demo.com'; diff --git a/src/utils/firebase_object_observable.spec.ts b/src/utils/firebase_object_observable.spec.ts index bdf799d30..b96d9fdca 100644 --- a/src/utils/firebase_object_observable.spec.ts +++ b/src/utils/firebase_object_observable.spec.ts @@ -1,4 +1,4 @@ -import {describe,it,beforeEach} from 'angular2/testing'; +import {describe,it,beforeEach} from '@angular/core/testing'; import {FirebaseObjectObservable} from './firebase_object_observable'; import {Observer} from 'rxjs/Observer'; import 'rxjs/add/operator/map'; @@ -24,8 +24,7 @@ describe('FirebaseObjectObservable', () => { }); it('should return an instance of FirebaseObservable when calling operators', () => { - var O:FirebaseObjectObservable = new FirebaseObjectObservable((observer:Observer) => { - }); + var O = new FirebaseObjectObservable((observer:Observer) => {}); expect(O.map(noop) instanceof FirebaseObjectObservable).toBe(true); }); diff --git a/src/utils/query_observable.spec.ts b/src/utils/query_observable.spec.ts index 7be5e64cc..2b6e2dac5 100644 --- a/src/utils/query_observable.spec.ts +++ b/src/utils/query_observable.spec.ts @@ -1,4 +1,4 @@ -import {describe, expect, it, iit} from 'angular2/testing'; +import {describe, expect, it, iit} from '@angular/core/testing'; import {Observable} from 'rxjs/Observable'; import {Observer} from 'rxjs/Observer'; import {Subject} from 'rxjs/Subject'; @@ -62,7 +62,7 @@ describe('observeQuery', () => { var nextSpy = jasmine.createSpy('next'); var completeSpy = jasmine.createSpy('complete'); var query = { - orderByKey: new Subject() + orderByKey: new Subject() }; var obs = observeQuery(query); var noOrderyQuery = { orderByKey: false }; @@ -80,7 +80,7 @@ describe('observeQuery', () => { var nextSpy = jasmine.createSpy('next'); var completeSpy = jasmine.createSpy('complete'); var query = { - orderByKey: new Subject() + orderByKey: new Subject() }; var obs = observeQuery(query); obs.subscribe(nextSpy, null, completeSpy); @@ -96,10 +96,10 @@ describe('observeQuery', () => { // TODO: Should we allow re-emitting of the orderBy method? var nextSpy = jasmine.createSpy('next'); var query = { - orderByKey: new Subject(), - orderByPriority: new Subject(), - orderByValue: new Subject(), - orderByChild: new Subject() + orderByKey: new Subject(), + orderByPriority: new Subject(), + orderByValue: new Subject(), + orderByChild: new Subject() }; var obs = observeQuery(query); obs.subscribe(nextSpy); @@ -422,4 +422,4 @@ describe('query combinations', () => { }); -}); +}); \ No newline at end of file diff --git a/src/utils/query_observable.ts b/src/utils/query_observable.ts index b50d8a868..5f112f88d 100644 --- a/src/utils/query_observable.ts +++ b/src/utils/query_observable.ts @@ -127,7 +127,7 @@ export function observeQuery(query: Query): Observable { }); } -export function getOrderObservables(query: Query): Observable { +export function getOrderObservables(query: Query): Observable | Observable> { var observables = ['orderByChild', 'orderByKey', 'orderByValue', 'orderByPriority'] .map((key: string, option: OrderByOptions) => { return ({ key, option }) @@ -142,14 +142,13 @@ export function getOrderObservables(query: Query): Observable } else if (observables.length > 1) { return observables[0].merge(observables.slice(1)); } else { - + return new Observable(subscriber => { + subscriber.next(null); + }); } - return new Observable(subscriber => { - subscriber.next(null); - }); } -export function getLimitToObservables(query: Query): Observable { +export function getLimitToObservables(query: Query): Observable | Observable> { var observables = ['limitToFirst', 'limitToLast'] .map((key: string, option: LimitToOptions) => ({ key, option })) .filter(({key, option}: { key: string, option: LimitToOptions }) => isPresent(query[key])) @@ -158,24 +157,24 @@ export function getLimitToObservables(query: Query): Observable 1) { - return observables[0].merge(observables.slice(1)); + const mergedObs = observables[0].merge(observables.slice(1)); + return mergedObs; } else { - + return new Observable(subscriber => { + subscriber.next(null); + }); } - return new Observable(subscriber => { - subscriber.next(null); - }); } export function getStartAtObservable(query: Query): Observable { if (query.startAt instanceof Observable) { return query.startAt; } else if (typeof query.startAt !== 'undefined') { - return new Observable(subscriber => { + return new Observable(subscriber => { subscriber.next(query.startAt); }); } else { - return new Observable(subscriber => { + return new Observable(subscriber => { subscriber.next(null); }); } @@ -185,11 +184,11 @@ export function getEndAtObservable(query: Query): Observable { if (query.endAt instanceof Observable) { return query.endAt; } else if (typeof query.endAt !== 'undefined') { - return new Observable(subscriber => { + return new Observable(subscriber => { subscriber.next(query.endAt); }); } else { - return new Observable(subscriber => { + return new Observable(subscriber => { subscriber.next(null); }); } @@ -199,11 +198,11 @@ export function getEqualToObservable(query: Query): Observable { if (query.equalTo instanceof Observable) { return query.equalTo; } else if (typeof query.equalTo !== 'undefined') { - return new Observable(subscriber => { + return new Observable(subscriber => { subscriber.next(query.equalTo); }); } else { - return new Observable(subscriber => { + return new Observable(subscriber => { subscriber.next(null); }); } @@ -217,7 +216,7 @@ function mapToOrderBySelection(value: Observable | boolean | s return ({ value, key }); }); } else { - return new Observable(subscriber => { + return new Observable(subscriber => { subscriber.next({ key, value }); }); } @@ -229,7 +228,7 @@ function mapToLimitToSelection(value: Observable | number, key: LimitToO return map .call(value, (value: number): LimitToSelection => ({ value, key })); } else { - return new Observable(subscriber => { + return new Observable(subscriber => { subscriber.next({ key, value }); }); } diff --git a/test/e2e/firebase_list/firebase_list_example.ts b/test/e2e/firebase_list/firebase_list_example.ts index c8bc61590..540f7b981 100644 --- a/test/e2e/firebase_list/firebase_list_example.ts +++ b/test/e2e/firebase_list/firebase_list_example.ts @@ -1,7 +1,6 @@ -import {Component, enableProdMode, Inject, provide} from 'angular2/core'; -import {bootstrap} from 'angular2/platform/browser'; +import {Component, enableProdMode, Inject, provide} from '@angular/core'; +import {bootstrap} from '@angular/platform-browser-dynamic'; import {defaultFirebase, AngularFire, FIREBASE_PROVIDERS, FirebaseListObservable} from 'angularfire2'; - import * as Firebase from 'firebase'; enableProdMode(); diff --git a/test/e2e/firebase_object/firebase_object_example.ts b/test/e2e/firebase_object/firebase_object_example.ts index 3a5a01952..925f9c794 100644 --- a/test/e2e/firebase_object/firebase_object_example.ts +++ b/test/e2e/firebase_object/firebase_object_example.ts @@ -1,5 +1,5 @@ -import {Component, enableProdMode, Inject, provide} from 'angular2/core'; -import {bootstrap} from 'angular2/platform/browser'; +import {Component, enableProdMode, Inject, provide} from '@angular/core'; +import {bootstrap} from '@angular/platform-browser-dynamic'; import {defaultFirebase, AngularFire, FIREBASE_PROVIDERS, FirebaseObjectObservable} from 'angularfire2'; import * as Firebase from 'firebase'; diff --git a/tsconfig.json b/tsconfig.json index 01b1477ae..d5a32be30 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -13,8 +13,6 @@ }, "files": [ "src/angularfire2.ts", - "src/angularfire2_worker_app.ts", - "src/angularfire2_worker_render.ts", "src/angularfire2.spec.ts", "src/utils/absolute_path_resolver.ts", "src/utils/firebase_list_factory.spec.ts", diff --git a/tsconfig.publish.es5.json b/tsconfig.publish.es5.json index a4bc750e2..7bf9d9187 100644 --- a/tsconfig.publish.es5.json +++ b/tsconfig.publish.es5.json @@ -13,8 +13,6 @@ }, "files": [ "src/angularfire2.ts", - "src/angularfire2_worker_app.ts", - "src/angularfire2_worker_render.ts", "src/utils/absolute_path_resolver.ts", "src/utils/firebase_object_factory.ts", "typings/main.d.ts"