refactor(http): move http files to top-level module

Closes #2680
Closes #3417
This commit is contained in:
Jeff Cross
2015-07-28 13:10:25 -07:00
parent 2374e16104
commit 5a405011de
53 changed files with 280 additions and 156 deletions

View File

@ -12,7 +12,6 @@ export * from './change_detection';
export * from './core';
export * from './di';
export * from './directives';
export * from './http';
export * from './forms';
export * from './render';
export * from './profile';

View File

@ -3,7 +3,6 @@ export * from './change_detection';
export * from './core';
export * from './di';
export * from './directives';
export * from './http';
export * from './forms';
export * from './render';
export * from './profile';

View File

@ -12,6 +12,5 @@ export * from './change_detection';
export * from './core';
export * from './di';
export * from './directives';
export * from './http';
export * from './forms';
export * from './render';

View File

@ -1,80 +0,0 @@
/**
* @module
* @description
* The http module provides services to perform http requests. To get started, see the {@link Http}
* class.
*/
import {bind, Binding} from 'angular2/di';
import {Http, Jsonp} from 'angular2/src/http/http';
import {XHRBackend, XHRConnection} from 'angular2/src/http/backends/xhr_backend';
import {JSONPBackend, JSONPConnection} from 'angular2/src/http/backends/jsonp_backend';
import {BrowserXhr} from 'angular2/src/http/backends/browser_xhr';
import {BrowserJsonp} from 'angular2/src/http/backends/browser_jsonp';
import {BaseRequestOptions, RequestOptions} from 'angular2/src/http/base_request_options';
import {ConnectionBackend} from 'angular2/src/http/interfaces';
import {BaseResponseOptions, ResponseOptions} from 'angular2/src/http/base_response_options';
export {MockConnection, MockBackend} from 'angular2/src/http/backends/mock_backend';
export {Request} from 'angular2/src/http/static_request';
export {Response} from 'angular2/src/http/static_response';
export {
IRequestOptions,
IResponseOptions,
Connection,
ConnectionBackend
} from 'angular2/src/http/interfaces';
export {BrowserXhr} from 'angular2/src/http/backends/browser_xhr';
export {BaseRequestOptions, RequestOptions} from 'angular2/src/http/base_request_options';
export {BaseResponseOptions, ResponseOptions} from 'angular2/src/http/base_response_options';
export {XHRBackend, XHRConnection} from 'angular2/src/http/backends/xhr_backend';
export {JSONPBackend, JSONPConnection} from 'angular2/src/http/backends/jsonp_backend';
export {Http, Jsonp} from 'angular2/src/http/http';
export {Headers} from 'angular2/src/http/headers';
export {
ResponseTypes,
ReadyStates,
RequestMethods,
RequestCredentialsOpts,
RequestCacheOpts,
RequestModesOpts
} from 'angular2/src/http/enums';
export {URLSearchParams} from 'angular2/src/http/url_search_params';
/**
* Provides a basic set of injectables to use the {@link Http} service in any application.
*
* #Example
*
* ```
* import {httpInjectables, Http} from 'angular2/http';
* @Component({selector: 'http-app', viewBindings: [httpInjectables]})
* @View({template: '{{data}}'})
* class MyApp {
* constructor(http:Http) {
* http.request('data.txt').subscribe(res => this.data = res.text());
* }
* }
* ```
*
*/
export var httpInjectables: List<any> = [
bind(ConnectionBackend)
.toClass(XHRBackend),
BrowserXhr,
bind(RequestOptions).toClass(BaseRequestOptions),
bind(ResponseOptions).toClass(BaseResponseOptions),
Http
];
export var jsonpInjectables: List<any> = [
bind(ConnectionBackend)
.toClass(JSONPBackend),
BrowserJsonp,
bind(RequestOptions).toClass(BaseRequestOptions),
bind(ResponseOptions).toClass(BaseResponseOptions),
Jsonp
];

View File

@ -4,6 +4,7 @@ environment:
dependencies:
angular2: '^<%= packageJson.version %>'
angular2_material: '^<%= packageJson.version %>'
http: '^<%= packageJson.version %>'
browser: '^0.10.0'
dev_dependencies:
guinness: '^0.1.17'
@ -14,6 +15,8 @@ dependency_overrides:
path: ../angular2
angular2_material:
path: ../angular2_material
http:
path: ../http
transformers:
- angular2:
$exclude:

View File

@ -1,5 +1,5 @@
import {Component, View, NgFor} from 'angular2/angular2';
import {Http, Response} from 'angular2/http';
import {Http, Response} from 'http/http';
import {ObservableWrapper} from 'angular2/src/facade/async';
@Component({selector: 'http-app'})

View File

@ -1,7 +1,7 @@
/// <reference path="../../../angular2/typings/rx/rx.d.ts" />
import {bootstrap} from 'angular2/bootstrap';
import {httpInjectables} from 'angular2/http';
import {httpInjectables} from 'http/http';
import {HttpCmp} from './http_comp';
export function main() {

View File

@ -1,6 +1,6 @@
import {HttpCmp} from './http_comp';
import {bootstrap} from 'angular2/bootstrap';
import {httpInjectables} from 'angular2/http';
import {httpInjectables} from 'http/http';
export function main() {
// This entry point is not transformed and exists for testing dynamic mode.

View File

@ -1,7 +1,7 @@
/// <reference path="../../../angular2/typings/rx/rx.d.ts" />
import {bootstrap} from 'angular2/bootstrap';
import {jsonpInjectables} from 'angular2/http';
import {jsonpInjectables} from 'http/http';
import {JsonpCmp} from './jsonp_comp';
export function main() {

View File

@ -1,6 +1,6 @@
import {JsonpCmp} from './jsonp_comp';
import {bootstrap} from 'angular2/bootstrap';
import {jsonpInjectables} from 'angular2/http';
import {jsonpInjectables} from 'http/http';
export function main() {
bootstrap(JsonpCmp, [jsonpInjectables]);

View File

@ -1,7 +1,7 @@
library examples.src.jsonp.jsonp_comp;
import "package:angular2/angular2.dart" show Component, View, NgFor;
import "package:angular2/http.dart" show Jsonp;
import "package:http/http.dart" show Jsonp;
import "package:angular2/src/facade/async.dart" show ObservableWrapper;
@Component(selector: "jsonp-app")

View File

@ -1,5 +1,5 @@
import {Component, View, NgFor} from 'angular2/angular2';
import {Jsonp, Response} from 'angular2/http';
import {Jsonp, Response} from 'http/http';
import {ObservableWrapper} from 'angular2/src/facade/async';
@Component({selector: 'jsonp-app'})

View File

@ -8,7 +8,7 @@ import {
Location,
RouteParams
} from 'angular2/router';
import {Http, Response} from 'angular2/http';
import {Http, Response} from 'http/http';
import {ObservableWrapper, PromiseWrapper} from 'angular2/src/facade/async';
import {ListWrapper} from 'angular2/src/facade/collection';
import {isPresent} from 'angular2/src/facade/lang';

View File

@ -2,7 +2,7 @@ import {InboxApp} from './inbox-app';
import {bind} from 'angular2/angular2';
import {bootstrap} from 'angular2/bootstrap';
import {routerInjectables, HashLocationStrategy, LocationStrategy} from 'angular2/router';
import {httpInjectables} from 'angular2/http';
import {httpInjectables} from 'http/http';
import {reflector} from 'angular2/src/reflection/reflection';
import {ReflectionCapabilities} from 'angular2/src/reflection/reflection_capabilities';

80
modules/http/http.ts Normal file
View File

@ -0,0 +1,80 @@
/**
* @module
* @description
* The http module provides services to perform http requests. To get started, see the {@link Http}
* class.
*/
import {bind, Binding} from 'angular2/di';
import {Http, Jsonp} from 'http/src/http';
import {XHRBackend, XHRConnection} from 'http/src/backends/xhr_backend';
import {JSONPBackend, JSONPConnection} from 'http/src/backends/jsonp_backend';
import {BrowserXhr} from 'http/src/backends/browser_xhr';
import {BrowserJsonp} from 'http/src/backends/browser_jsonp';
import {BaseRequestOptions, RequestOptions} from 'http/src/base_request_options';
import {ConnectionBackend} from 'http/src/interfaces';
import {BaseResponseOptions, ResponseOptions} from 'http/src/base_response_options';
export {MockConnection, MockBackend} from 'http/src/backends/mock_backend';
export {Request} from 'http/src/static_request';
export {Response} from 'http/src/static_response';
export {
IRequestOptions,
IResponseOptions,
Connection,
ConnectionBackend
} from 'http/src/interfaces';
export {BrowserXhr} from 'http/src/backends/browser_xhr';
export {BaseRequestOptions, RequestOptions} from 'http/src/base_request_options';
export {BaseResponseOptions, ResponseOptions} from 'http/src/base_response_options';
export {XHRBackend, XHRConnection} from 'http/src/backends/xhr_backend';
export {JSONPBackend, JSONPConnection} from 'http/src/backends/jsonp_backend';
export {Http, Jsonp} from 'http/src/http';
export {Headers} from 'http/src/headers';
export {
ResponseTypes,
ReadyStates,
RequestMethods,
RequestCredentialsOpts,
RequestCacheOpts,
RequestModesOpts
} from 'http/src/enums';
export {URLSearchParams} from 'http/src/url_search_params';
/**
* Provides a basic set of injectables to use the {@link Http} service in any application.
*
* #Example
*
* ```
* import {httpInjectables, Http} from 'http/http';
* @Component({selector: 'http-app', viewBindings: [httpInjectables]})
* @View({template: '{{data}}'})
* class MyApp {
* constructor(http:Http) {
* http.request('data.txt').subscribe(res => this.data = res.text());
* }
* }
* ```
*
*/
export var httpInjectables: List<any> = [
bind(ConnectionBackend)
.toClass(XHRBackend),
BrowserXhr,
bind(RequestOptions).toClass(BaseRequestOptions),
bind(ResponseOptions).toClass(BaseResponseOptions),
Http
];
export var jsonpInjectables: List<any> = [
bind(ConnectionBackend)
.toClass(JSONPBackend),
BrowserJsonp,
bind(RequestOptions).toClass(BaseRequestOptions),
bind(ResponseOptions).toClass(BaseResponseOptions),
Jsonp
];

View File

@ -0,0 +1,3 @@
library http.sfx;
// empty as we don't have a version for Dart

3
modules/http/http_sfx.ts Normal file
View File

@ -0,0 +1,3 @@
import * as ngHttp from './http';
(<any>window).ngHttp = ngHttp;

3
modules/http/index.dart Normal file
View File

@ -0,0 +1,3 @@
library http.index;
//no dart implementation

12
modules/http/index.ts Normal file
View File

@ -0,0 +1,12 @@
require('reflect-metadata');
require('traceur-runtime');
import {httpInjectables, jsonpInjectables, Http, Jsonp} from './http';
import {Injector} from 'angular2/angular2';
export * from './http';
/**
* TODO(jeffbcross): export each as their own top-level file, to require as:
* require('http/http'); require('http/jsonp');
*/
export var http = Injector.resolveAndCreate([httpInjectables]).get(Http);
export var jsonp = Injector.resolveAndCreate([jsonpInjectables]).get(Jsonp);

16
modules/http/package.json Normal file
View File

@ -0,0 +1,16 @@
{
"name": "ngHttp",
"version": "<%= packageJson.version %>",
"description": "Http module for Angular 2",
"homepage": "<%= packageJson.homepage %>",
"bugs": "<%= packageJson.bugs %>",
"contributors": <%= JSON.stringify(packageJson.contributors) %>,
"license": "<%= packageJson.license %>",
"dependencies": {
"angular2": "<%= packageJson.version %>",
"rx": "<%= packageJson.dependencies['rx'] %>",
"reflect-metadata": "<%= packageJson.dependencies['reflect-metadata'] %>",
"traceur": "<%= packageJson.dependencies['traceur'] %>"
},
"devDependencies": <%= JSON.stringify(packageJson.defaultDevDependencies) %>
}

19
modules/http/pubspec.yaml Normal file
View File

@ -0,0 +1,19 @@
name: http
version: <%= packageJson.version %>
authors:
<%= Object.keys(packageJson.contributors).map(function(name) {
return '- '+name+' <'+packageJson.contributors[name]+'>';
}).join('\n') %>
description: Angular 2 Http Module
homepage: <%= packageJson.homepage %>
environment:
sdk: '>=1.10.0 <2.0.0'
dependencies:
angular2: '^<%= packageJson.version %>'
dev_dependencies:
guinness: '^0.1.17'
dependency_overrides:
angular2:
path: ../angular2
transformers:
- angular2

View File

@ -1,4 +1,4 @@
library angular2.src.http.backends.browser_jsonp;
library angular2_http.src.backends.browser_jsonp;
import 'package:angular2/di.dart';
import 'dart:html' show document;

View File

@ -1,4 +1,4 @@
library angular2.src.http.backends.browser_xhr;
library angular2_http.src.backends.browser_xhr;
import 'dart:html' show HttpRequest;
import 'package:angular2/di.dart';

View File

@ -1,8 +1,8 @@
import {Injectable} from 'angular2/di';
import {Request} from 'angular2/src/http/static_request';
import {Response} from 'angular2/src/http/static_response';
import {ReadyStates} from 'angular2/src/http/enums';
import {Connection, ConnectionBackend} from 'angular2/src/http/interfaces';
import {Request} from '../static_request';
import {Response} from '../static_response';
import {ReadyStates} from '../enums';
import {Connection, ConnectionBackend} from '../interfaces';
import {ObservableWrapper, EventEmitter} from 'angular2/src/facade/async';
import {isPresent} from 'angular2/src/facade/lang';
import {IMPLEMENTS, BaseException} from 'angular2/src/facade/lang';
@ -107,7 +107,7 @@ export class MockConnection {
* #Example
*
* ```
* import {MockBackend, DefaultOptions, Http} from 'angular2/http';
* import {MockBackend, DefaultOptions, Http} from 'http/http';
* it('should get some data', inject([AsyncTestCompleter], (async) => {
* var connection;
* var injector = Injector.resolveAndCreate([
@ -140,7 +140,7 @@ export class MockBackend {
* #Example
*
* ```
* import {MockBackend, Http, BaseRequestOptions} from 'angular2/http';
* import {MockBackend, Http, BaseRequestOptions} from 'http/http';
* import {Injector} from 'angular2/di';
*
* it('should get a response', () => {

View File

@ -84,7 +84,8 @@ export class XHRConnection implements Connection {
* #Example
*
* ```
* import {Http, MyNodeBackend, httpInjectables, BaseRequestOptions} from 'angular2/http';
* import {Http, MyNodeBackend, httpInjectables, BaseRequestOptions} from
*'angular2/http';
* @Component({
* viewBindings: [
* httpInjectables,

View File

@ -1,4 +1,4 @@
library angular2.src.http.http_utils;
library angular2_http.src.http_utils;
import 'dart:js' show JsObject;
import 'dart:collection' show LinkedHashMap, LinkedHashSet;

View File

@ -1,4 +1,4 @@
/// <reference path="../../typings/rx/rx.d.ts" />
/// <reference path="../../angular2/typings/rx/rx.d.ts" />
import {
ReadyStates,

View File

@ -12,17 +12,17 @@ import {
SpyObject
} from 'angular2/test_lib';
import {ObservableWrapper} from 'angular2/src/facade/async';
import {BrowserJsonp} from 'angular2/src/http/backends/browser_jsonp';
import {JSONPConnection, JSONPBackend} from 'angular2/src/http/backends/jsonp_backend';
import {BrowserJsonp} from 'http/src/backends/browser_jsonp';
import {JSONPConnection, JSONPBackend} from 'http/src/backends/jsonp_backend';
import {bind, Injector} from 'angular2/di';
import {isPresent, StringWrapper} from 'angular2/src/facade/lang';
import {TimerWrapper} from 'angular2/src/facade/async';
import {Request} from 'angular2/src/http/static_request';
import {Response} from 'angular2/src/http/static_response';
import {Request} from 'http/src/static_request';
import {Response} from 'http/src/static_response';
import {Map} from 'angular2/src/facade/collection';
import {RequestOptions, BaseRequestOptions} from 'angular2/src/http/base_request_options';
import {BaseResponseOptions, ResponseOptions} from 'angular2/src/http/base_response_options';
import {ResponseTypes, ReadyStates, RequestMethods} from 'angular2/src/http/enums';
import {RequestOptions, BaseRequestOptions} from 'http/src/base_request_options';
import {BaseResponseOptions, ResponseOptions} from 'http/src/base_response_options';
import {ResponseTypes, ReadyStates, RequestMethods} from 'http/src/enums';
var addEventListenerSpy;
var existingScripts = [];

View File

@ -12,16 +12,16 @@ import {
SpyObject
} from 'angular2/test_lib';
import {ObservableWrapper} from 'angular2/src/facade/async';
import {BrowserXhr} from 'angular2/src/http/backends/browser_xhr';
import {XHRConnection, XHRBackend} from 'angular2/src/http/backends/xhr_backend';
import {BrowserXhr} from 'http/src/backends/browser_xhr';
import {XHRConnection, XHRBackend} from 'http/src/backends/xhr_backend';
import {bind, Injector} from 'angular2/di';
import {Request} from 'angular2/src/http/static_request';
import {Response} from 'angular2/src/http/static_response';
import {Headers} from 'angular2/src/http/headers';
import {Request} from 'http/src/static_request';
import {Response} from 'http/src/static_response';
import {Headers} from 'http/src/headers';
import {Map} from 'angular2/src/facade/collection';
import {RequestOptions, BaseRequestOptions} from 'angular2/src/http/base_request_options';
import {BaseResponseOptions, ResponseOptions} from 'angular2/src/http/base_response_options';
import {ResponseTypes} from 'angular2/src/http/enums';
import {RequestOptions, BaseRequestOptions} from 'http/src/base_request_options';
import {BaseResponseOptions, ResponseOptions} from 'http/src/base_response_options';
import {ResponseTypes} from 'http/src/enums';
var abortSpy;
var sendSpy;

View File

@ -9,8 +9,8 @@ import {
it,
xit
} from 'angular2/test_lib';
import {BaseRequestOptions, RequestOptions} from 'angular2/src/http/base_request_options';
import {RequestMethods, RequestModesOpts} from 'angular2/src/http/enums';
import {BaseRequestOptions, RequestOptions} from 'http/src/base_request_options';
import {RequestMethods, RequestModesOpts} from 'http/src/enums';
export function main() {
describe('BaseRequestOptions', () => {

View File

@ -1,4 +1,4 @@
import {Headers} from 'angular2/src/http/headers';
import {Headers} from 'http/src/headers';
import {Map, StringMapWrapper} from 'angular2/src/facade/collection';
import {
AsyncTestCompleter,

View File

@ -11,17 +11,20 @@ import {
xit,
SpyObject
} from 'angular2/test_lib';
import {Http} from 'angular2/src/http/http';
import {Injector, bind} from 'angular2/di';
import {MockBackend, MockConnection} from 'angular2/src/http/backends/mock_backend';
import {Response} from 'angular2/src/http/static_response';
import {RequestMethods} from 'angular2/src/http/enums';
import {BaseRequestOptions, RequestOptions} from 'angular2/src/http/base_request_options';
import {ResponseOptions} from 'angular2/src/http/base_response_options';
import {Request} from 'angular2/src/http/static_request';
import {MockBackend, MockConnection} from 'http/src/backends/mock_backend';
import {EventEmitter, ObservableWrapper} from 'angular2/src/facade/async';
import {ConnectionBackend} from 'angular2/src/http/interfaces';
import {URLSearchParams} from 'angular2/src/http/url_search_params';
import {
BaseRequestOptions,
ConnectionBackend,
Http,
Request,
RequestMethods,
RequestOptions,
Response,
ResponseOptions,
URLSearchParams
} from 'http/http';
class SpyObserver extends SpyObject {
onNext: Function;

View File

@ -9,7 +9,7 @@ import {
it,
xit
} from 'angular2/test_lib';
import {URLSearchParams} from 'angular2/src/http/url_search_params';
import {URLSearchParams} from 'http/src/url_search_params';
export function main() {
describe('URLSearchParams', () => {