angular-news-api
Version:
This Library provides everything you need to use the NewsAPI from you Angular app the way it should be: using Observables, Types and Dependency Injection.
99 lines (91 loc) • 2.94 kB
JavaScript
import NewsAPI from 'newsapi';
import { from } from 'rxjs';
import { InjectionToken, Injectable, Inject, NgModule, defineInjectable, inject } from '@angular/core';
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/** @type {?} */
const NewsApiConfigService = new InjectionToken('NewsApiConfig');
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
class NewsApiService {
/**
* @param {?} newsApiConfigService
*/
constructor(newsApiConfigService) {
this.newsApiConfigService = newsApiConfigService;
this.newsApi = new NewsAPI(this.newsApiConfigService.key);
}
/**
* @param {?} config
* @return {?}
*/
topHeadlines(config) {
return from(this.newsApi.v2.topHeadlines(config));
}
/**
* @param {?} config
* @return {?}
*/
everything(config) {
return from(this.newsApi.v2.everything(config));
}
/**
* @param {?} config
* @return {?}
*/
sources(config) {
return from(this.newsApi.v2.sources(config));
}
}
NewsApiService.decorators = [
{ type: Injectable, args: [{
providedIn: 'root'
},] }
];
/** @nocollapse */
NewsApiService.ctorParameters = () => [
{ type: undefined, decorators: [{ type: Inject, args: [NewsApiConfigService,] }] }
];
/** @nocollapse */ NewsApiService.ngInjectableDef = defineInjectable({ factory: function NewsApiService_Factory() { return new NewsApiService(inject(NewsApiConfigService)); }, token: NewsApiService, providedIn: "root" });
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
class NgnewsModule {
/**
* @param {?} newsApiConfig
* @return {?}
*/
static forRoot(newsApiConfig) {
return {
ngModule: NgnewsModule,
providers: [
NewsApiService,
{
provide: NewsApiConfigService, useValue: newsApiConfig
}
]
};
}
}
NgnewsModule.decorators = [
{ type: NgModule, args: [{},] }
];
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
export { NewsApiService, NgnewsModule, NewsApiConfigService as ɵa };
//# sourceMappingURL=angular-news-api.js.map