Skip to content

Commit

Permalink
review notes fix
Browse files Browse the repository at this point in the history
  • Loading branch information
origin-yaropolk committed Mar 15, 2024
1 parent 4a80c1d commit 0f0c7b4
Show file tree
Hide file tree
Showing 6 changed files with 21 additions and 25 deletions.
1 change: 0 additions & 1 deletion src/artifact-provider.mts
Original file line number Diff line number Diff line change
Expand Up @@ -14,5 +14,4 @@ export interface ArtifactProvider {
artifactsByBuildNumber(buildNumber: string): Promise<Artifact[]>;
artifactUrl(artifact: Artifact): Promise<URL>;
getArtifactContent(artifact: Artifact, range?: ByteRange): Promise<IncomingMessage>;
createMetapointerFile(artifact: Artifact, fileName: string): void;
}
3 changes: 2 additions & 1 deletion src/deb/deb-builder.mts
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import * as tar from 'tar';
import type { Artifact, ArtifactProvider } from '../artifact-provider.mjs';
import { createDir, execToolToFile, removeDir } from '../fs.mjs';
import type { Config } from '../config.mjs';
import { createMetapointerFile } from '../s3-metapointer.mjs';
import type { Deployer } from '../deployer.mjs';
import type { Packages } from '../repo.mjs';

Expand Down Expand Up @@ -195,7 +196,7 @@ export class DebBuilder implements Deployer {
distribution,
this.debName(deb.version, arch));
const relativeDebPath = path.relative(this.root, debPath);
this.artifactProvider.createMetapointerFile(deb.artifact, debPath);
createMetapointerFile(deb.artifact.md5, debPath);
const debSize = controlTar.headers['content-range']?.split('/')[1];
const sha1 = controlTar.headers['x-checksum-sha1'];
const sha256 = controlTar.headers['x-checksum-sha256'];
Expand Down
4 changes: 0 additions & 4 deletions src/fs.mts
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,6 @@ export function removeDir(dirName: string): void {
}
}

export function createMetapointerContent(fileMd5Hash: string): string {
return `#metapointer jfrogart\noid md5:${fileMd5Hash}`;
}

// eslint-disable-next-line max-params
export async function execToolToFile(tool: string, args: string[], outputPath?: string, append?: boolean): Promise<void> {
if (!append && outputPath && existsSync(outputPath)) {
Expand Down
18 changes: 9 additions & 9 deletions src/http.mts
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ export interface RequestData {
redirectHandler?: (url: string) => string | undefined;
}

export function requestStream(url: string, method: string, requestData?: RequestData): Promise<IncomingMessage> {
export function requestStream(url: URL, method: string, requestData?: RequestData): Promise<IncomingMessage> {
return new Promise((resolve, reject) => {
try {
const req = httpRequest(url, { method });
Expand All @@ -22,7 +22,7 @@ export function requestStream(url: string, method: string, requestData?: Request
if (incomingMessage.statusCode !== 200) {
const stCode = incomingMessage.statusCode ?? 'NO_CODE';
const stMessage = incomingMessage.statusMessage ?? 'NO_MESSAGE';
const message = `[${method} ${url}]:${stCode}/${stMessage}`;
const message = `[${method} ${url.toString()}]:${stCode}/${stMessage}`;
reject(new Error(message));
}

Expand All @@ -31,7 +31,7 @@ export function requestStream(url: string, method: string, requestData?: Request
.on('error', (err: Error) => {
const errno = (err as {errno?: string}).errno ?? '';
if (errno === 'ETIMEDOUT') {
reject(new Error(`Request (${url}) timeout.`));
reject(new Error(`Request (${url.toString()}) timeout.`));
} else {
reject(err);
}
Expand Down Expand Up @@ -61,7 +61,7 @@ export function requestStream(url: string, method: string, requestData?: Request
});
}

export async function request(url: string, method: string, requestData?: RequestData): Promise<Buffer> {
export async function request(url: URL, method: string, requestData?: RequestData): Promise<Buffer> {
const responseStream = await requestStream(url, method, requestData);

let buffer: Buffer | undefined = undefined;
Expand All @@ -74,7 +74,7 @@ export async function request(url: string, method: string, requestData?: Request
return buffer ? buffer : Buffer.from('');
}

export function requestRange(url: string, range: string): Promise<IncomingMessage> {
export function requestRange(url: URL, range: string): Promise<IncomingMessage> {
return new Promise<IncomingMessage>((resolve, reject) => {
try {
const req = httpRequest(url, { method: 'GET' });
Expand All @@ -88,7 +88,7 @@ export function requestRange(url: string, range: string): Promise<IncomingMessag
if (incomingMessage.statusCode !== 200) {
const stCode = incomingMessage.statusCode ?? 'NO_CODE';
const stMessage = incomingMessage.statusMessage ?? 'NO_MESSAGE';
const message = `[GET ${url}]:${stCode}/${stMessage}`;
const message = `[GET ${url.toString()}]:${stCode}/${stMessage}`;
reject(new Error(message));
return;
}
Expand All @@ -98,7 +98,7 @@ export function requestRange(url: string, range: string): Promise<IncomingMessag
.on('error', (err: Error) => {
const errno = (err as {errno?: string}).errno ?? '';
if (errno === 'ETIMEDOUT') {
reject(new Error(`Request (${url}) timeout.`));
reject(new Error(`Request (${url.toString()}) timeout.`));
} else {
reject(err);
}
Expand All @@ -114,10 +114,10 @@ export function requestRange(url: string, range: string): Promise<IncomingMessag
});
}

export function get(url: string): Promise<Buffer> {
export function get(url: URL): Promise<Buffer> {
return request(url, 'GET', undefined);
}

export function post(url: string, requestData?: RequestData): Promise<Buffer> {
export function post(url: URL, requestData?: RequestData): Promise<Buffer> {
return request(url, 'POST', requestData);
}
11 changes: 2 additions & 9 deletions src/jfrog/artifact-provider.mts
Original file line number Diff line number Diff line change
@@ -1,12 +1,10 @@
import { type ArtifactoryClient, type ArtifactoryItemMeta, type ByteRange, createArtifactoryClient } from 's3-groundskeeper';

import { createFile } from '../fs.mjs';
import { get } from '../http.mjs';

import type { Artifact, ArtifactProvider } from '../artifact-provider.mjs';
import type { ArtifactProviderConfig } from '../artifact-provider-config.mjs';
import type { IncomingMessage } from 'http';
import metapointerContent from '../s3-metapointer.mjs';

interface BuildsList {
buildsNumbers: {
Expand Down Expand Up @@ -65,11 +63,6 @@ export default class JfrogArtifactProvider implements ArtifactProvider {
});
}

// eslint-disable-next-line class-methods-use-this
public createMetapointerFile(artifact: Artifact, fileName: string): void {
createFile(fileName, metapointerContent(artifact.md5));
}

private async getArtifactoryItemMeta(artifact: Artifact): Promise<ArtifactoryItemMeta> {
const aqlItemField = 'actual_md5';

Expand Down Expand Up @@ -99,7 +92,7 @@ export default class JfrogArtifactProvider implements ArtifactProvider {
const buildsEndpoint = this.artifactoryClient.resolveUrl(`api/build/${this.config.project}`);

if (!this.buildsList) {
const allBuilds = await get(buildsEndpoint.toString());
const allBuilds = await get(buildsEndpoint);
this.buildsList = JSON.parse(allBuilds.toString()) as BuildsList;
}

Expand All @@ -122,7 +115,7 @@ export default class JfrogArtifactProvider implements ArtifactProvider {
for (const value of buildTimes(buildNumber)) {
const buildInfoEndpointUrl = new URL(buildNumber, buildsEndpoint);
buildInfoEndpointUrl.searchParams.set('started', value.toISOString());
infoPromises.push(get(buildInfoEndpointUrl.toString()));
infoPromises.push(get(buildInfoEndpointUrl));
}

const infos = await Promise.all(infoPromises);
Expand Down
9 changes: 8 additions & 1 deletion src/s3-metapointer.mts
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
export default function metapointerContent(fileMd5Hash: string): string {
import { createFile } from './fs.mjs';

export function content(fileMd5Hash: string): string {
return `#metapointer jfrogart\noid md5:${fileMd5Hash}`;
}

// eslint-disable-next-line class-methods-use-this
export function createMetapointerFile(md5: string, fileName: string): void {
createFile(fileName, content(md5));
}

0 comments on commit 0f0c7b4

Please sign in to comment.