mirror of
https://github.com/aspnet/JavaScriptServices.git
synced 2025-12-23 01:58:29 +00:00
In KnockoutSpa, use isomorphic-fetch for IE/Edge compatibility
This commit is contained in:
@@ -1,4 +1,5 @@
|
|||||||
import * as ko from 'knockout';
|
import * as ko from 'knockout';
|
||||||
|
import * as fetch from 'isomorphic-fetch';
|
||||||
|
|
||||||
interface WeatherForecast {
|
interface WeatherForecast {
|
||||||
dateFormatted: string;
|
dateFormatted: string;
|
||||||
|
|||||||
@@ -11,6 +11,7 @@
|
|||||||
"extract-text-webpack-plugin": "^1.0.1",
|
"extract-text-webpack-plugin": "^1.0.1",
|
||||||
"file-loader": "^0.8.5",
|
"file-loader": "^0.8.5",
|
||||||
"history": "^2.0.1",
|
"history": "^2.0.1",
|
||||||
|
"isomorphic-fetch": "^2.2.1",
|
||||||
"jquery": "^2.2.1",
|
"jquery": "^2.2.1",
|
||||||
"knockout": "^3.4.0",
|
"knockout": "^3.4.0",
|
||||||
"raw-loader": "^0.5.1",
|
"raw-loader": "^0.5.1",
|
||||||
|
|||||||
@@ -5,9 +5,6 @@
|
|||||||
"path": "typings",
|
"path": "typings",
|
||||||
"bundle": "typings/tsd.d.ts",
|
"bundle": "typings/tsd.d.ts",
|
||||||
"installed": {
|
"installed": {
|
||||||
"whatwg-fetch/whatwg-fetch.d.ts": {
|
|
||||||
"commit": "dade4414712ce84e3c63393f1aae407e9e7e6af7"
|
|
||||||
},
|
|
||||||
"knockout/knockout.d.ts": {
|
"knockout/knockout.d.ts": {
|
||||||
"commit": "9f0f926a12026287b5a4a229e5672c01e7549313"
|
"commit": "9f0f926a12026287b5a4a229e5672c01e7549313"
|
||||||
},
|
},
|
||||||
@@ -28,6 +25,9 @@
|
|||||||
},
|
},
|
||||||
"js-signals/js-signals.d.ts": {
|
"js-signals/js-signals.d.ts": {
|
||||||
"commit": "9f0f926a12026287b5a4a229e5672c01e7549313"
|
"commit": "9f0f926a12026287b5a4a229e5672c01e7549313"
|
||||||
|
},
|
||||||
|
"isomorphic-fetch/isomorphic-fetch.d.ts": {
|
||||||
|
"commit": "57ec5fbb76060329c10959d449eb1d4e70b15a65"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
119
templates/KnockoutSpa/typings/isomorphic-fetch/isomorphic-fetch.d.ts
vendored
Normal file
119
templates/KnockoutSpa/typings/isomorphic-fetch/isomorphic-fetch.d.ts
vendored
Normal file
@@ -0,0 +1,119 @@
|
|||||||
|
// Type definitions for isomorphic-fetch
|
||||||
|
// Project: https://github.com/matthew-andrews/isomorphic-fetch
|
||||||
|
// Definitions by: Todd Lucas <https://github.com/toddlucas>
|
||||||
|
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
||||||
|
|
||||||
|
declare enum RequestContext {
|
||||||
|
"audio", "beacon", "cspreport", "download", "embed", "eventsource",
|
||||||
|
"favicon", "fetch", "font", "form", "frame", "hyperlink", "iframe",
|
||||||
|
"image", "imageset", "import", "internal", "location", "manifest",
|
||||||
|
"object", "ping", "plugin", "prefetch", "script", "serviceworker",
|
||||||
|
"sharedworker", "subresource", "style", "track", "video", "worker",
|
||||||
|
"xmlhttprequest", "xslt"
|
||||||
|
}
|
||||||
|
declare enum RequestMode { "same-origin", "no-cors", "cors" }
|
||||||
|
declare enum RequestCredentials { "omit", "same-origin", "include" }
|
||||||
|
declare enum RequestCache {
|
||||||
|
"default", "no-store", "reload", "no-cache", "force-cache",
|
||||||
|
"only-if-cached"
|
||||||
|
}
|
||||||
|
declare enum ResponseType { "basic", "cors", "default", "error", "opaque" }
|
||||||
|
|
||||||
|
declare type HeaderInit = Headers | Array<string>;
|
||||||
|
declare type BodyInit = ArrayBuffer | ArrayBufferView | Blob | FormData | string;
|
||||||
|
declare type RequestInfo = Request | string;
|
||||||
|
|
||||||
|
interface RequestInit {
|
||||||
|
method?: string;
|
||||||
|
headers?: HeaderInit | { [index: string]: string };
|
||||||
|
body?: BodyInit;
|
||||||
|
mode?: string | RequestMode;
|
||||||
|
credentials?: string | RequestCredentials;
|
||||||
|
cache?: string | RequestCache;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface IHeaders {
|
||||||
|
get(name: string): string;
|
||||||
|
getAll(name: string): Array<string>;
|
||||||
|
has(name: string): boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare class Headers implements IHeaders {
|
||||||
|
append(name: string, value: string): void;
|
||||||
|
delete(name: string):void;
|
||||||
|
get(name: string): string;
|
||||||
|
getAll(name: string): Array<string>;
|
||||||
|
has(name: string): boolean;
|
||||||
|
set(name: string, value: string): void;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface IBody {
|
||||||
|
bodyUsed: boolean;
|
||||||
|
arrayBuffer(): Promise<ArrayBuffer>;
|
||||||
|
blob(): Promise<Blob>;
|
||||||
|
formData(): Promise<FormData>;
|
||||||
|
json(): Promise<any>;
|
||||||
|
json<T>(): Promise<T>;
|
||||||
|
text(): Promise<string>;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare class Body implements IBody {
|
||||||
|
bodyUsed: boolean;
|
||||||
|
arrayBuffer(): Promise<ArrayBuffer>;
|
||||||
|
blob(): Promise<Blob>;
|
||||||
|
formData(): Promise<FormData>;
|
||||||
|
json(): Promise<any>;
|
||||||
|
json<T>(): Promise<T>;
|
||||||
|
text(): Promise<string>;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface IRequest extends IBody {
|
||||||
|
method: string;
|
||||||
|
url: string;
|
||||||
|
headers: Headers;
|
||||||
|
context: string | RequestContext;
|
||||||
|
referrer: string;
|
||||||
|
mode: string | RequestMode;
|
||||||
|
credentials: string | RequestCredentials;
|
||||||
|
cache: string | RequestCache;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare class Request extends Body implements IRequest {
|
||||||
|
constructor(input: string | Request, init?: RequestInit);
|
||||||
|
method: string;
|
||||||
|
url: string;
|
||||||
|
headers: Headers;
|
||||||
|
context: string | RequestContext;
|
||||||
|
referrer: string;
|
||||||
|
mode: string | RequestMode;
|
||||||
|
credentials: string | RequestCredentials;
|
||||||
|
cache: string | RequestCache;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface IResponse extends IBody {
|
||||||
|
url: string;
|
||||||
|
status: number;
|
||||||
|
statusText: string;
|
||||||
|
ok: boolean;
|
||||||
|
headers: IHeaders;
|
||||||
|
type: string | ResponseType;
|
||||||
|
size: number;
|
||||||
|
timeout: number;
|
||||||
|
redirect(url: string, status: number): IResponse;
|
||||||
|
error(): IResponse;
|
||||||
|
clone(): IResponse;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface IFetchStatic {
|
||||||
|
Promise: any;
|
||||||
|
Headers: IHeaders
|
||||||
|
Request: IRequest;
|
||||||
|
Response: IResponse;
|
||||||
|
(url: string | IRequest, init?: RequestInit): Promise<IResponse>;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare var fetch: IFetchStatic;
|
||||||
|
|
||||||
|
declare module "isomorphic-fetch" {
|
||||||
|
export = fetch;
|
||||||
|
}
|
||||||
2
templates/KnockoutSpa/typings/tsd.d.ts
vendored
2
templates/KnockoutSpa/typings/tsd.d.ts
vendored
@@ -1,8 +1,8 @@
|
|||||||
/// <reference path="es6-promise/es6-promise.d.ts" />
|
/// <reference path="es6-promise/es6-promise.d.ts" />
|
||||||
/// <reference path="knockout/knockout.d.ts" />
|
/// <reference path="knockout/knockout.d.ts" />
|
||||||
/// <reference path="requirejs/require.d.ts" />
|
/// <reference path="requirejs/require.d.ts" />
|
||||||
/// <reference path="whatwg-fetch/whatwg-fetch.d.ts" />
|
|
||||||
/// <reference path="history/history.d.ts" />
|
/// <reference path="history/history.d.ts" />
|
||||||
/// <reference path="react-router/history.d.ts" />
|
/// <reference path="react-router/history.d.ts" />
|
||||||
/// <reference path="crossroads/crossroads.d.ts" />
|
/// <reference path="crossroads/crossroads.d.ts" />
|
||||||
/// <reference path="js-signals/js-signals.d.ts" />
|
/// <reference path="js-signals/js-signals.d.ts" />
|
||||||
|
/// <reference path="isomorphic-fetch/isomorphic-fetch.d.ts" />
|
||||||
|
|||||||
@@ -1,85 +0,0 @@
|
|||||||
// Type definitions for fetch API
|
|
||||||
// Project: https://github.com/github/fetch
|
|
||||||
// Definitions by: Ryan Graham <https://github.com/ryan-codingintrigue>
|
|
||||||
// Definitions: https://github.com/borisyankov/DefinitelyTyped
|
|
||||||
|
|
||||||
declare class Request extends Body {
|
|
||||||
constructor(input: string|Request, init?:RequestInit);
|
|
||||||
method: string;
|
|
||||||
url: string;
|
|
||||||
headers: Headers;
|
|
||||||
context: string|RequestContext;
|
|
||||||
referrer: string;
|
|
||||||
mode: string|RequestMode;
|
|
||||||
credentials: string|RequestCredentials;
|
|
||||||
cache: string|RequestCache;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface RequestInit {
|
|
||||||
method?: string;
|
|
||||||
headers?: HeaderInit|{ [index: string]: string };
|
|
||||||
body?: BodyInit;
|
|
||||||
mode?: string|RequestMode;
|
|
||||||
credentials?: string|RequestCredentials;
|
|
||||||
cache?: string|RequestCache;
|
|
||||||
}
|
|
||||||
|
|
||||||
declare enum RequestContext {
|
|
||||||
"audio", "beacon", "cspreport", "download", "embed", "eventsource", "favicon", "fetch",
|
|
||||||
"font", "form", "frame", "hyperlink", "iframe", "image", "imageset", "import",
|
|
||||||
"internal", "location", "manifest", "object", "ping", "plugin", "prefetch", "script",
|
|
||||||
"serviceworker", "sharedworker", "subresource", "style", "track", "video", "worker",
|
|
||||||
"xmlhttprequest", "xslt"
|
|
||||||
}
|
|
||||||
declare enum RequestMode { "same-origin", "no-cors", "cors" }
|
|
||||||
declare enum RequestCredentials { "omit", "same-origin", "include" }
|
|
||||||
declare enum RequestCache { "default", "no-store", "reload", "no-cache", "force-cache", "only-if-cached" }
|
|
||||||
|
|
||||||
declare class Headers {
|
|
||||||
append(name: string, value: string): void;
|
|
||||||
delete(name: string):void;
|
|
||||||
get(name: string): string;
|
|
||||||
getAll(name: string): Array<string>;
|
|
||||||
has(name: string): boolean;
|
|
||||||
set(name: string, value: string): void;
|
|
||||||
}
|
|
||||||
|
|
||||||
declare class Body {
|
|
||||||
bodyUsed: boolean;
|
|
||||||
arrayBuffer(): Promise<ArrayBuffer>;
|
|
||||||
blob(): Promise<Blob>;
|
|
||||||
formData(): Promise<FormData>;
|
|
||||||
json(): Promise<any>;
|
|
||||||
json<T>(): Promise<T>;
|
|
||||||
text(): Promise<string>;
|
|
||||||
}
|
|
||||||
declare class Response extends Body {
|
|
||||||
constructor(body?: BodyInit, init?: ResponseInit);
|
|
||||||
error(): Response;
|
|
||||||
redirect(url: string, status: number): Response;
|
|
||||||
type: string|ResponseType;
|
|
||||||
url: string;
|
|
||||||
status: number;
|
|
||||||
ok: boolean;
|
|
||||||
statusText: string;
|
|
||||||
headers: Headers;
|
|
||||||
clone(): Response;
|
|
||||||
}
|
|
||||||
|
|
||||||
declare enum ResponseType { "basic", "cors", "default", "error", "opaque" }
|
|
||||||
|
|
||||||
interface ResponseInit {
|
|
||||||
status: number;
|
|
||||||
statusText?: string;
|
|
||||||
headers?: HeaderInit;
|
|
||||||
}
|
|
||||||
|
|
||||||
declare type HeaderInit = Headers|Array<string>;
|
|
||||||
declare type BodyInit = Blob|FormData|string;
|
|
||||||
declare type RequestInfo = Request|string;
|
|
||||||
|
|
||||||
interface Window {
|
|
||||||
fetch(url: string|Request, init?: RequestInit): Promise<Response>;
|
|
||||||
}
|
|
||||||
|
|
||||||
declare var fetch: typeof window.fetch;
|
|
||||||
@@ -15,7 +15,7 @@ module.exports = {
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
entry: {
|
entry: {
|
||||||
vendor: ['bootstrap', 'bootstrap/dist/css/bootstrap.css', 'knockout', 'crossroads', 'history', 'style-loader', 'jquery'],
|
vendor: ['bootstrap', 'bootstrap/dist/css/bootstrap.css', 'knockout', 'crossroads', 'history', 'isomorphic-fetch', 'style-loader', 'jquery'],
|
||||||
},
|
},
|
||||||
output: {
|
output: {
|
||||||
path: path.join(__dirname, 'wwwroot', 'dist'),
|
path: path.join(__dirname, 'wwwroot', 'dist'),
|
||||||
|
|||||||
Reference in New Issue
Block a user