All files / infrastructure/angular angular-api.util.ts

100% Statements 16/16
75% Branches 3/4
100% Functions 6/6
100% Lines 15/15

Press n or j to go to the next uncovered block, b, p or k for the previous block.

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