Skip to content

Commit d4fbc19

Browse files
add history endpoint to get the whole json
1 parent e8c5cf2 commit d4fbc19

File tree

2 files changed

+24
-1
lines changed

2 files changed

+24
-1
lines changed

src/registry/router.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import ComponentInfoRoute from './routes/component-info';
88
import ComponentPreviewRoute from './routes/component-preview';
99
import ComponentsRoute from './routes/components';
1010
import DependenciesRoute from './routes/dependencies';
11+
import HistoryRoute from './routes/history';
1112
import PluginsRoute from './routes/plugins';
1213
import PublishRoute from './routes/publish';
1314
import StaticRedirectorRoute from './routes/static-redirector';
@@ -22,7 +23,8 @@ export function create(app: Express, conf: Config, repository: Repository) {
2223
publish: PublishRoute(repository),
2324
staticRedirector: StaticRedirectorRoute(repository),
2425
plugins: PluginsRoute(conf),
25-
dependencies: DependenciesRoute(conf)
26+
dependencies: DependenciesRoute(conf),
27+
history: HistoryRoute(repository)
2628
};
2729

2830
const prefix = conf.prefix;
@@ -38,6 +40,7 @@ export function create(app: Express, conf: Config, repository: Repository) {
3840

3941
app.get(`${prefix}~registry/plugins`, routes.plugins);
4042
app.get(`${prefix}~registry/dependencies`, routes.dependencies);
43+
app.get(`${prefix}~registry/history`, routes.history);
4144

4245
if (conf.local) {
4346
app.get(

src/registry/routes/history.ts

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import type { Request, Response } from 'express';
2+
import type { Repository } from '../domain/repository';
3+
import getComponentsHistory from './helpers/get-components-history';
4+
5+
export default function history(repository: Repository) {
6+
return async (_req: Request, res: Response): Promise<void> => {
7+
try {
8+
if (res.conf.discovery && !res.conf.local) {
9+
const details = await repository.getComponentsDetails();
10+
const componentsHistory = getComponentsHistory(details);
11+
res.setHeader('Cache-Control', 'public, max-age=600');
12+
res.status(200).json({ componentsHistory });
13+
} else {
14+
res.status(401);
15+
}
16+
} catch (error) {
17+
res.status(500).json({ error: 'Internal server error' });
18+
}
19+
};
20+
}

0 commit comments

Comments
 (0)