Skip to content

Commit 4964302

Browse files
promisify publish route
1 parent 1cd9359 commit 4964302

File tree

2 files changed

+32
-37
lines changed

2 files changed

+32
-37
lines changed

src/registry/app-start.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ import path from 'path';
33
import _ from 'lodash';
44
import fs from 'fs-extra';
55
import { Config, Repository } from '../types';
6-
import { promisify } from 'util';
76

87
const packageInfo = fs.readJsonSync(
98
path.join(
@@ -53,7 +52,7 @@ export default async function appStart(
5352
};
5453

5554
try {
56-
await promisify(repository.publishComponent)(
55+
await repository.publishComponent(
5756
pkgInfo,
5857
'oc-client',
5958
packageInfo.version

src/registry/routes/publish.ts

Lines changed: 31 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
1-
import { fromPromise } from 'universalify';
21
import extractPackage from '../domain/extract-package';
32
import strings from '../../resources/index';
43
import * as validator from '../domain/validators';
54
import { Request, Response } from 'express';
65
import { Repository } from '../../types';
76

87
export default function publish(repository: Repository) {
9-
return function (req: Request, res: Response): void {
8+
return async function (req: Request, res: Response): Promise<void> {
109
if (!req.params['componentName'] || !req.params['componentVersion']) {
1110
res.errorDetails = 'malformed request';
1211
res.status(409).json({ error: res.errorDetails });
@@ -54,40 +53,37 @@ export default function publish(repository: Repository) {
5453
return;
5554
}
5655

57-
fromPromise(extractPackage)(files, (err, pkgDetails) => {
58-
if (err) {
59-
res.errorDetails = `Package is not valid: ${err}`;
60-
res.status(500).json({ error: 'package is not valid', details: err });
61-
return;
62-
}
63-
64-
fromPromise(repository.publishComponent)(
65-
pkgDetails,
66-
req.params['componentName'],
67-
req.params['componentVersion'],
68-
(err: any) => {
69-
if (err) {
70-
if (err.code === 'not_allowed') {
71-
res.errorDetails = `Publish not allowed: ${err.msg}`;
72-
return res.status(403).json({ error: err.msg });
73-
} else if (err.code === 'already_exists') {
74-
res.errorDetails = `Component already exists: ${err.msg}`;
75-
return res.status(403).json({ error: err.msg });
76-
} else if (err.code === 'name_not_valid') {
77-
res.errorDetails = `Component name not valid: ${err.msg}`;
78-
return res.status(409).json({ error: err.msg });
79-
} else if (err.code === 'version_not_valid') {
80-
res.errorDetails = `Component version not valid: ${err.msg}`;
81-
return res.status(409).json({ error: err.msg });
82-
} else {
83-
res.errorDetails = `Publish failed: ${err.msg}`;
84-
return res.status(500).json({ error: err.msg });
85-
}
86-
}
56+
try {
57+
const pkgDetails = await extractPackage(files);
8758

88-
return res.status(200).json({ ok: true });
59+
try {
60+
await repository.publishComponent(
61+
pkgDetails,
62+
req.params['componentName'],
63+
req.params['componentVersion']
64+
);
65+
res.status(200).json({ ok: true });
66+
} catch (err: any) {
67+
if (err.code === 'not_allowed') {
68+
res.errorDetails = `Publish not allowed: ${err.msg}`;
69+
res.status(403).json({ error: err.msg });
70+
} else if (err.code === 'already_exists') {
71+
res.errorDetails = `Component already exists: ${err.msg}`;
72+
res.status(403).json({ error: err.msg });
73+
} else if (err.code === 'name_not_valid') {
74+
res.errorDetails = `Component name not valid: ${err.msg}`;
75+
res.status(409).json({ error: err.msg });
76+
} else if (err.code === 'version_not_valid') {
77+
res.errorDetails = `Component version not valid: ${err.msg}`;
78+
res.status(409).json({ error: err.msg });
79+
} else {
80+
res.errorDetails = `Publish failed: ${err.msg}`;
81+
res.status(500).json({ error: err.msg });
8982
}
90-
);
91-
});
83+
}
84+
} catch (err) {
85+
res.errorDetails = `Package is not valid: ${err}`;
86+
res.status(500).json({ error: 'package is not valid', details: err });
87+
}
9288
};
9389
}

0 commit comments

Comments
 (0)