@netwerk-digitaal-erfgoed/network-of-terms-query 6.0.0 → 6.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/catalog.d.ts +7 -0
- package/build/catalog.d.ts.map +1 -1
- package/build/catalog.js +25 -1
- package/build/catalog.js.map +1 -1
- package/package.json +1 -1
package/build/catalog.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { URL } from 'url';
|
|
2
2
|
export declare class Catalog {
|
|
3
3
|
readonly datasets: ReadonlyArray<Dataset>;
|
|
4
|
+
private readonly prefixToDataset;
|
|
4
5
|
constructor(datasets: ReadonlyArray<Dataset>);
|
|
5
6
|
/**
|
|
6
7
|
* Get dataset by IRI, accepting distribution IRIs too for BC.
|
|
@@ -10,6 +11,12 @@ export declare class Catalog {
|
|
|
10
11
|
getDatasetByDistributionIri(iri: IRI): Dataset | undefined;
|
|
11
12
|
getDatasetByTermIri(iri: IRI): Dataset | undefined;
|
|
12
13
|
getDistributionsProvidingFeature(featureType: FeatureType): Distribution[];
|
|
14
|
+
/**
|
|
15
|
+
* Index the prefixes of all datasets by their string length in descending order for matching
|
|
16
|
+
* term IRIs against during lookup. When looking up terms, we want to match the longest possible prefix
|
|
17
|
+
* in case prefixes overlap.
|
|
18
|
+
*/
|
|
19
|
+
private indexPrefixesByStringLength;
|
|
13
20
|
}
|
|
14
21
|
export type StringDictionary = Record<string, string>;
|
|
15
22
|
export declare class Dataset {
|
package/build/catalog.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAC,MAAM,KAAK,CAAC;AAExB,qBAAa,OAAO;
|
|
1
|
+
{"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"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"}
|
package/build/catalog.js
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { URL } from 'url';
|
|
2
2
|
export class Catalog {
|
|
3
3
|
datasets;
|
|
4
|
+
prefixToDataset;
|
|
4
5
|
constructor(datasets) {
|
|
5
6
|
this.datasets = datasets;
|
|
7
|
+
this.prefixToDataset = this.indexPrefixesByStringLength();
|
|
6
8
|
}
|
|
7
9
|
/**
|
|
8
10
|
* Get dataset by IRI, accepting distribution IRIs too for BC.
|
|
@@ -17,7 +19,12 @@ export class Catalog {
|
|
|
17
19
|
return this.datasets.find(dataset => dataset.getDistributionByIri(iri) !== undefined);
|
|
18
20
|
}
|
|
19
21
|
getDatasetByTermIri(iri) {
|
|
20
|
-
|
|
22
|
+
for (const [prefix, datasetIri] of this.prefixToDataset) {
|
|
23
|
+
if (iri.toString().startsWith(prefix)) {
|
|
24
|
+
return this.getDatasetByIri(datasetIri);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
return undefined;
|
|
21
28
|
}
|
|
22
29
|
getDistributionsProvidingFeature(featureType) {
|
|
23
30
|
return this.datasets.reduce((acc, dataset) => {
|
|
@@ -27,6 +34,23 @@ export class Catalog {
|
|
|
27
34
|
];
|
|
28
35
|
}, []);
|
|
29
36
|
}
|
|
37
|
+
/**
|
|
38
|
+
* Index the prefixes of all datasets by their string length in descending order for matching
|
|
39
|
+
* term IRIs against during lookup. When looking up terms, we want to match the longest possible prefix
|
|
40
|
+
* in case prefixes overlap.
|
|
41
|
+
*/
|
|
42
|
+
indexPrefixesByStringLength() {
|
|
43
|
+
return new Map([
|
|
44
|
+
...this.datasets
|
|
45
|
+
.reduce((acc, dataset) => {
|
|
46
|
+
dataset.termsPrefixes.forEach(prefix => {
|
|
47
|
+
acc.set(prefix.toString(), dataset.iri);
|
|
48
|
+
});
|
|
49
|
+
return acc;
|
|
50
|
+
}, new Map())
|
|
51
|
+
.entries(),
|
|
52
|
+
].sort(([a], [b]) => b.localeCompare(a)));
|
|
53
|
+
}
|
|
30
54
|
}
|
|
31
55
|
export class Dataset {
|
|
32
56
|
iri;
|
package/build/catalog.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalog.js","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAC,MAAM,KAAK,CAAC;AAExB,MAAM,OAAO,OAAO;
|
|
1
|
+
{"version":3,"file":"catalog.js","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"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"}
|