github.com/jfrog/jfrog-cli-platform-services@v1.2.0/commands/templates/GENERIC_EVENT.ts_template (about)

     1  import { PlatformContext } from 'jfrog-workers';
     2  
     3  type CustomPayload = void;
     4  type CustomResponse = {
     5      error: string | undefined, // Valued with the cause in case of error
     6      repositories: Record<string, number>, // A list that contains the number of repositories per repository type
     7  };
     8  type RepoData = {
     9      "key": string,
    10      "type": string,
    11      "description": string,
    12      "url": string,
    13      "packageType": string
    14  };
    15  
    16  // This worker returns the number of repositories for each repository type.
    17  export default async (context: PlatformContext, data: CustomPayload): Promise<CustomResponse> => {
    18  
    19      const response = {
    20          error: undefined,
    21          repositories: {},
    22      };
    23  
    24      try {
    25          // Ref: https://jfrog.com/help/r/jfrog-rest-apis/get-repositories
    26          const res = await context.clients.platformHttp.get('/artifactory/api/repositories');
    27          if (res.status === 200) {
    28              const repositories: RepoData[] = res.data;
    29  
    30              // The number of repositories mapped by repository type
    31              const repoCountRecord: Record<string, number> = {};
    32  
    33              repositories.forEach(repository => {
    34                  let count = repoCountRecord[repository.type] || 0;
    35                  repoCountRecord[repository.type] = ++count;
    36              });
    37  
    38              response.repositories = repoCountRecord;
    39              console.log("Repository count success");
    40          } else {
    41              response.error = `Request is successful but returned an unexpected status : ${ res.status }`;
    42              console.warn(response.error);
    43          }
    44      } catch(error) {
    45          response.error = `Request failed with status code ${ error.status || '<none>' } caused by : ${ error.message }`;
    46          console.error(response.error);
    47      }
    48  
    49      return response;
    50  }