1 | import * as _ from 'lodash';
|
2 | import { IApiSourceResult } from './api-source-result.interface';
|
3 |
|
4 | const AngularAPIs: Array<IAngularMainApi> = require('../src/data/api-list.json');
|
5 |
|
6 | export class AngularApiUtil {
|
7 | private static instance: AngularApiUtil;
|
8 | private constructor() {}
|
9 | public static getInstance() {
|
10 | if (!AngularApiUtil.instance) {
|
11 | AngularApiUtil.instance = new AngularApiUtil();
|
12 | }
|
13 | return AngularApiUtil.instance;
|
14 | }
|
15 |
|
16 | public findApi(type: string): IApiSourceResult<IAngularMainApi> {
|
17 | let foundedApi;
|
18 | _.forEach(AngularAPIs, mainApi => {
|
19 | _.forEach(mainApi.items, api => {
|
20 | if (api.title === type) {
|
21 | foundedApi = api;
|
22 | }
|
23 | });
|
24 | });
|
25 | return {
|
26 | source: 'external',
|
27 | data: foundedApi
|
28 | };
|
29 | }
|
30 | }
|
31 |
|
32 | export default AngularApiUtil.getInstance();
|
33 |
|
34 | export interface IAngularMainApi {
|
35 | title: string;
|
36 | name: string;
|
37 | items: IAngularApi[];
|
38 | }
|
39 |
|
40 | export interface IAngularApi {
|
41 | title: string;
|
42 | path: string;
|
43 | docType: string;
|
44 | stability: string;
|
45 | secure: string;
|
46 | barrel: string;
|
47 | }
|