Skip to content

Commit 25b430c

Browse files
committed
minor clean up
1 parent 072a4ae commit 25b430c

File tree

4 files changed

+24
-17
lines changed

4 files changed

+24
-17
lines changed

src/dcat-us/constants/contexts.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// Context header for DCAT US 1.1
2-
export const HEADER_V_1_1 = {
2+
export const HEADER_V_1X = {
33
'@context':
44
'https://project-open-data.cio.gov/v1.1/schema/catalog.jsonld',
55
'@type': 'dcat:Catalog',
@@ -9,7 +9,7 @@ export const HEADER_V_1_1 = {
99

1010
// Context header for DCAT US 3.0
1111
// source: https://raw.githubusercontent.com/DOI-DO/dcat-us/refs/heads/main/context/dcat-us-3.0.jsonld
12-
export const HEADER_V_3 = {
12+
export const HEADER_V_3X = {
1313
'@context': {
1414
'@version': 1.1,
1515
'@protected': true,

src/dcat-us/index.test.ts

+3-4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { readableFromArray, streamToString } from '../test-helpers/stream-utils';
22
import { getDataStreamDcatUs } from './';
33
import * as datasetFromApi from '../test-helpers/mock-dataset.json';
4-
import { HEADER_V_3 } from './constants/contexts';
4+
import { HEADER_V_3X } from './constants/contexts';
55

66
async function generateDcatFeed(dataset, template, templateTransforms, version) {
77
const { stream: dcatStream } = getDataStreamDcatUs(template, templateTransforms, version);
@@ -68,7 +68,7 @@ describe('generating DCAT-US 3.0 feed', () => {
6868
it('formats catalog correctly', async function () {
6969
const { feed } = await generateDcatFeed([], {}, {}, version);
7070

71-
expect(feed['@context']).toStrictEqual(HEADER_V_3['@context']);
71+
expect(feed['@context']).toStrictEqual(HEADER_V_3X['@context']);
7272
expect(feed['conformsTo']).toBe('https://resource.data.gov/profile/dcat-us#');
7373
expect(feed['@type']).toBe('dcat:Catalog');
7474
expect(Array.isArray(feed['dcat:dataset'])).toBeTruthy();
@@ -100,7 +100,7 @@ describe('generating DCAT-US 3.0 feed', () => {
100100
},
101101
version);
102102

103-
expect(feed['@context']).toStrictEqual(HEADER_V_3['@context']);
103+
expect(feed['@context']).toStrictEqual(HEADER_V_3X['@context']);
104104
expect(feed['@type']).toBe('dcat:Catalog');
105105
expect(feed['@id']).toBe('hub.arcgis.com');
106106
expect(feed['conformsTo']).toBe('https://resource.data.gov/profile/dcat-us#');
@@ -115,5 +115,4 @@ describe('generating DCAT-US 3.0 feed', () => {
115115
expect(feedResponse.publisher).toStrictEqual({ name: 'QA Premium Alpha Hub' });
116116
expect(feedResponse.keyword).toStrictEqual(['Data collection', 'just modified']);
117117
});
118-
119118
});

src/dcat-us/index.ts

+17-9
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,22 @@
11
import { compileDcatFeedEntry } from './compile-dcat-feed';
22
import { FeedFormatterStream } from './feed-formatter-stream';
33
import { TransformsList } from 'adlib';
4-
import { HEADER_V_3, HEADER_V_1_1 } from './constants/contexts';
4+
import { HEADER_V_3X, HEADER_V_1X } from './constants/contexts';
55

66
export function getDataStreamDcatUs(feedTemplate: any, feedTemplateTransforms: TransformsList, version: string) {
77
const footer = '\n\t]\n}';
88
let header: string;
99
let template: Record<string, any>;
10-
10+
1111
if (version === '3.0') {
1212
const { header: templateHeader, ...restFeedTemplate } = feedTemplate;
1313
template = restFeedTemplate;
14-
const catalogStr = JSON.stringify({ ...HEADER_V_3, ...templateHeader }, null, '\t');
15-
header = `${catalogStr.substring(0, catalogStr.length - 2)},\n\t"dcat:dataset": [\n`;
14+
header = generateDcatUs3XHeader(templateHeader);
1615
}
1716

1817
if (version === '1.1') {
19-
const catalogStr = JSON.stringify(HEADER_V_1_1, null, '\t');
20-
header = `${catalogStr.substring(
21-
0,
22-
catalogStr.length - 2,
23-
)},\n\t"dataset": [\n`;
2418
template = feedTemplate;
19+
header = generateDcatUs1XHeader();
2520
}
2621

2722
const formatFn = (chunk) => {
@@ -32,3 +27,16 @@ export function getDataStreamDcatUs(feedTemplate: any, feedTemplateTransforms: T
3227
stream: new FeedFormatterStream(header, footer, ',\n', formatFn)
3328
};
3429
}
30+
31+
function generateDcatUs1XHeader() {
32+
const catalogStr = JSON.stringify(HEADER_V_1X, null, '\t');
33+
return `${catalogStr.substring(
34+
0,
35+
catalogStr.length - 2,
36+
)},\n\t"dataset": [\n`;
37+
}
38+
39+
function generateDcatUs3XHeader(header: Record<string, any>) {
40+
const catalogStr = JSON.stringify({ ...HEADER_V_3X, ...header }, null, '\t');
41+
return `${catalogStr.substring(0, catalogStr.length - 2)},\n\t"dcat:dataset": [\n`;
42+
}

src/index.test.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import { createMockKoopApp } from './test-helpers/create-mock-koop-app';
88
import { readableFromArray } from './test-helpers/stream-utils';
99
import { DcatUsError } from './dcat-us/dcat-us-error';
1010
import { PassThrough } from 'stream';
11-
import { HEADER_V_3 } from './dcat-us/constants/contexts';
11+
import { HEADER_V_3X } from './dcat-us/constants/contexts';
1212

1313
function buildPluginAndApp(feedTemplate, feedTemplateTransforms) {
1414
let Output;
@@ -166,7 +166,7 @@ describe('Output Plugin', () => {
166166
expect(res.body).toBeDefined();
167167
const dcatStream = res.body;
168168
expect(dcatStream['@context']).toBeDefined();
169-
expect(dcatStream['@context']).toStrictEqual(HEADER_V_3['@context']);
169+
expect(dcatStream['@context']).toStrictEqual(HEADER_V_3X['@context']);
170170
expect(dcatStream['@type']).toBe('dcat:Catalog');
171171
expect(dcatStream['conformsTo']).toBe('https://resource.data.gov/profile/dcat-us#');
172172
expect(dcatStream['@type']).toBe('dcat:Catalog');

0 commit comments

Comments
 (0)