@krai-tech/web-api
Version:
A set of common tokens for consuming Web API with Angular.
21 lines • 2.58 kB
JavaScript
import { DOCUMENT } from '@angular/common';
import { inject, InjectionToken } from '@angular/core';
/**
* Injection token for the global window object.
*
* This token provides an abstraction over the global window object, allowing it to be injected
* into Angular services or components. It uses the Angular DOCUMENT token to access the defaultView,
* which represents the window object.
*
* Throws an error if the window object is not available.
*/
export const WINDOW = new InjectionToken('An abstraction over global window object', {
factory: () => {
const { defaultView } = inject(DOCUMENT);
if (!defaultView) {
throw new Error('Window is not available');
}
return defaultView;
},
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2luZG93LmFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3dlYi1hcGkvdG9rZW5zL3NyYy93aW5kb3cuYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2RDs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxJQUFJLGNBQWMsQ0FDdEMsMENBQTBDLEVBQzFDO0lBQ0UsT0FBTyxFQUFFLEdBQUcsRUFBRTtRQUNaLE1BQU0sRUFBQyxXQUFXLEVBQUMsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFdkMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUM3QyxDQUFDO1FBRUQsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQztDQUNGLENBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBJbmplY3Rpb24gdG9rZW4gZm9yIHRoZSBnbG9iYWwgd2luZG93IG9iamVjdC5cbiAqXG4gKiBUaGlzIHRva2VuIHByb3ZpZGVzIGFuIGFic3RyYWN0aW9uIG92ZXIgdGhlIGdsb2JhbCB3aW5kb3cgb2JqZWN0LCBhbGxvd2luZyBpdCB0byBiZSBpbmplY3RlZFxuICogaW50byBBbmd1bGFyIHNlcnZpY2VzIG9yIGNvbXBvbmVudHMuIEl0IHVzZXMgdGhlIEFuZ3VsYXIgRE9DVU1FTlQgdG9rZW4gdG8gYWNjZXNzIHRoZSBkZWZhdWx0VmlldyxcbiAqIHdoaWNoIHJlcHJlc2VudHMgdGhlIHdpbmRvdyBvYmplY3QuXG4gKlxuICogVGhyb3dzIGFuIGVycm9yIGlmIHRoZSB3aW5kb3cgb2JqZWN0IGlzIG5vdCBhdmFpbGFibGUuXG4gKi9cbmV4cG9ydCBjb25zdCBXSU5ET1cgPSBuZXcgSW5qZWN0aW9uVG9rZW48V2luZG93PihcbiAgJ0FuIGFic3RyYWN0aW9uIG92ZXIgZ2xvYmFsIHdpbmRvdyBvYmplY3QnLFxuICB7XG4gICAgZmFjdG9yeTogKCkgPT4ge1xuICAgICAgY29uc3Qge2RlZmF1bHRWaWV3fSA9IGluamVjdChET0NVTUVOVCk7XG5cbiAgICAgIGlmICghZGVmYXVsdFZpZXcpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdXaW5kb3cgaXMgbm90IGF2YWlsYWJsZScpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZGVmYXVsdFZpZXc7XG4gICAgfSxcbiAgfSxcbik7XG4iXX0=