mirror of
https://github.com/chenasraf/DefinitelyTyped.git
synced 2026-05-18 01:49:01 +00:00
🤖 Merge PR #56849 dom-navigation-preload: Add types for service worker navigation preload by @frigus02
* Add types for service worker navigation preload TypeScript 4.4 removed types for navigation preload. This makes sense because it's currently only supported by Chromium based browsers. It seems to make sense to add those types to DefinitelyTyped until more browser engines support it. * Add mprobst as owner for dom-navigation-preload
This commit is contained in:
13
types/dom-navigation-preload/dom-navigation-preload-tests.ts
Normal file
13
types/dom-navigation-preload/dom-navigation-preload-tests.ts
Normal file
@@ -0,0 +1,13 @@
|
||||
// This throws a TypeError at runtime, but TypeScript should probably allow it.
|
||||
new NavigationPreloadManager();
|
||||
|
||||
navigator.serviceWorker.ready.then(async registration => {
|
||||
await registration.navigationPreload.enable();
|
||||
await registration.navigationPreload.disable();
|
||||
|
||||
await registration.navigationPreload.setHeaderValue('test');
|
||||
|
||||
const state = await registration.navigationPreload.getState();
|
||||
console.log(state.enabled);
|
||||
console.log(state.headerValue);
|
||||
});
|
||||
30
types/dom-navigation-preload/index.d.ts
vendored
Normal file
30
types/dom-navigation-preload/index.d.ts
vendored
Normal file
@@ -0,0 +1,30 @@
|
||||
// Type definitions for non-npm package dom-navigation-preload-browser 0.0
|
||||
// Project: https://w3c.github.io/ServiceWorker/#service-worker-registration-navigationpreload
|
||||
// Definitions by: Jan Kuehle <https://github.com/frigus02>
|
||||
// Martin Probst <https://github.com/mprobst>
|
||||
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
||||
// Minimum TypeScript Version: 4.4
|
||||
|
||||
interface ServiceWorkerRegistration {
|
||||
/*~ https://w3c.github.io/ServiceWorker/#ref-for-dom-serviceworkerregistration-navigationpreload */
|
||||
readonly navigationPreload: NavigationPreloadManager;
|
||||
}
|
||||
|
||||
/*~ https://w3c.github.io/ServiceWorker/#navigationpreloadmanager */
|
||||
interface NavigationPreloadManager {
|
||||
disable(): Promise<void>;
|
||||
enable(): Promise<void>;
|
||||
getState(): Promise<NavigationPreloadState>;
|
||||
setHeaderValue(value: string): Promise<void>;
|
||||
}
|
||||
|
||||
declare var NavigationPreloadManager: {
|
||||
prototype: NavigationPreloadManager;
|
||||
new (): NavigationPreloadManager;
|
||||
};
|
||||
|
||||
/*~ https://w3c.github.io/ServiceWorker/#dictdef-navigationpreloadstate */
|
||||
interface NavigationPreloadState {
|
||||
enabled: boolean;
|
||||
headerValue: string;
|
||||
}
|
||||
24
types/dom-navigation-preload/tsconfig.json
Normal file
24
types/dom-navigation-preload/tsconfig.json
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"module": "commonjs",
|
||||
"lib": [
|
||||
"es6",
|
||||
"dom"
|
||||
],
|
||||
"noImplicitAny": true,
|
||||
"noImplicitThis": true,
|
||||
"strictFunctionTypes": true,
|
||||
"strictNullChecks": true,
|
||||
"baseUrl": "../",
|
||||
"typeRoots": [
|
||||
"../"
|
||||
],
|
||||
"types": [],
|
||||
"noEmit": true,
|
||||
"forceConsistentCasingInFileNames": true
|
||||
},
|
||||
"files": [
|
||||
"index.d.ts",
|
||||
"dom-navigation-preload-tests.ts"
|
||||
]
|
||||
}
|
||||
1
types/dom-navigation-preload/tslint.json
Normal file
1
types/dom-navigation-preload/tslint.json
Normal file
@@ -0,0 +1 @@
|
||||
{ "extends": "dtslint/dt.json" }
|
||||
Reference in New Issue
Block a user