Back to packages list

Vals using xml2js

Description from the NPM package:
Simple XML to JavaScript object converter.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import { fetch } from "https://esm.town/v/std/fetch";
export const searchArXiV = async ({ query = "", start = 0, max_results = 10 }) => {
const { parseStringPromise } = await import("npm:xml2js");
const url = new URL("https://export.arxiv.org/api/query");
url.searchParams.set("search_query", query);
url.searchParams.set("start", start);
url.searchParams.set("max_results", max_results);
const response = await fetch(url.toString());
const text = await response.text();
if (!response.ok) {
throw new Error(text);
}
const feed = await parseStringPromise(text);
return feed;
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
import { fetch } from "https://esm.town/v/std/fetch";
export const untitled_coffeeElk = (async () => {
const { parseStringPromise } = await import("npm:xml2js");
function makeUrl(date: Date): string {
const dateString = date.toISOString().split("T")[0];
return `https://repository.overheid.nl/sru?query=dt.title="exploitatievergunning horecabedrijf" AND dt.title="Besluit (Nieuw)" AND dt.title="Nieuw" AND dt.creator=Amsterdam AND dt.modified=${dateString}&maximumRecords=100`;
}
async function doFetch(date: Date): any {
const url = makeUrl(date);
const fetchResponse = await fetch(url.toString());
const text = await fetchResponse.text();
if (!fetchResponse.ok) {
throw new Error(text);
}
return parseStringPromise(text);
}
function parseResponse(resp: any) {
// console.log(
// resp["sru:searchRetrieveResponse"]["sru:records"][0]["sru:record"],
// );
const records =
resp["sru:searchRetrieveResponse"]["sru:records"][0]["sru:record"] ?? [];
return records
.filter((r) => {
const type =
r["sru:recordData"][0]["gzd:gzd"][0]["gzd:originalData"][0][
"overheidwetgeving:meta"
][0]["overheidwetgeving:owmskern"][0]["dcterms:type"][0]["_"];
return type == "exploitatievergunning";
})
.map((r) => {
return r;
const title =
r["sru:recordData"][0]["gzd:gzd"][0]["gzd:originalData"][0][
"overheidwetgeving:meta"
][0]["overheidwetgeving:owmskern"][0]["dcterms:title"][0];
const source =
r["sru:recordData"][0]["gzd:gzd"][0]["gzd:originalData"][0][
"overheidwetgeving:meta"
][0]["overheidwetgeving:tpmeta"][0][
"overheidwetgeving:bronIdentifier"
];
// const coordinates =
// r["sru:recordData"][0]["gzd:gzd"][0]["gzd:originalData"][0][
// "overheidwetgeving:meta"
// ][0]["overheidwetgeving:tpmeta"][0]["overheidwetgeving:locatiepunt"][0];
return {
title,
source,
// coordinates,
};
});
}
const resp = await doFetch(new Date("2023-08-31"));
const data = parseResponse(resp);
return data;
})();
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import { fetch } from "https://esm.town/v/std/fetch";
export const searchArXiV = async ({ query = "", start = 0, max_results = 10 }) => {
const { parseStringPromise } = await import("npm:xml2js");
const url = new URL("https://export.arxiv.org/api/query");
url.searchParams.set("search_query", query);
url.searchParams.set("start", start);
url.searchParams.set("max_results", max_results);
const response = await fetch(url.toString());
const text = await response.text();
if (!response.ok) {
throw new Error(text);
}
const feed = await parseStringPromise(text);
return feed;
};
1
Next