marcattacks 2.4.2 → 2.5.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/dist/output/mulitipart.d.ts +7 -0
- package/dist/output/mulitipart.d.ts.map +1 -0
- package/dist/output/mulitipart.js +53 -0
- package/dist/output/mulitipart.js.map +1 -0
- package/dist/output/multipart.d.ts +8 -0
- package/dist/output/multipart.d.ts.map +1 -0
- package/dist/output/multipart.js +49 -0
- package/dist/output/multipart.js.map +1 -0
- package/dist/output/text.d.ts +6 -0
- package/dist/output/text.d.ts.map +1 -0
- package/dist/output/text.js +34 -0
- package/dist/output/text.js.map +1 -0
- package/dist/transform/marcinrdf.d.ts +6 -0
- package/dist/transform/marcinrdf.d.ts.map +1 -0
- package/dist/transform/marcinrdf.js +78 -0
- package/dist/transform/marcinrdf.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mulitipart.d.ts","sourceRoot":"","sources":["../../src/output/mulitipart.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAKnC,MAAM,WAAW,sBAAsB;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAsB,SAAS,CAAC,IAAI,GAAE,sBAA2B,GAAI,OAAO,CAAC,SAAS,CAAC,CAyDtF"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { Transform } from 'stream';
|
|
2
|
+
import log4js from 'log4js';
|
|
3
|
+
const logger = log4js.getLogger();
|
|
4
|
+
export async function transform(opts = {}) {
|
|
5
|
+
let header = opts.header ? opts.header :
|
|
6
|
+
"Content-Type: multipart/mixed; boundary=\"marcattacks\"";
|
|
7
|
+
let delimiter = opts.delimiter ? opts.delimiter : "--marcattacks";
|
|
8
|
+
let isFirst = true;
|
|
9
|
+
return new Transform({
|
|
10
|
+
objectMode: true,
|
|
11
|
+
transform(data, _encoding, callback) {
|
|
12
|
+
if (Object.keys(data).length == 0) {
|
|
13
|
+
logger.debug('skipped empty record');
|
|
14
|
+
callback();
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
let output = "";
|
|
18
|
+
if (isFirst) {
|
|
19
|
+
output += header + "\n\n";
|
|
20
|
+
isFirst = false;
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
output += delimiter + "\n";
|
|
24
|
+
}
|
|
25
|
+
let fields = [];
|
|
26
|
+
let sortedKeys = Object.keys(data).sort();
|
|
27
|
+
sortedKeys.forEach(key => {
|
|
28
|
+
if (Array.isArray(data[key])) {
|
|
29
|
+
fields.push(`ARRAY[${data[key].length}]`);
|
|
30
|
+
}
|
|
31
|
+
else if (typeof data[key] === 'object') {
|
|
32
|
+
fields.push(`HASH[${Object.keys(data[key]).length}]`);
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
fields.push(data[key]);
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
output += fields.join(" ") + "\n";
|
|
39
|
+
logger.trace(`adding ${output.length} bytes`);
|
|
40
|
+
callback(null, output);
|
|
41
|
+
},
|
|
42
|
+
flush(callback) {
|
|
43
|
+
logger.debug('flush reached');
|
|
44
|
+
if (!isFirst) {
|
|
45
|
+
let output = delimiter + "--\n";
|
|
46
|
+
logger.trace(`adding ${output.length} bytes`);
|
|
47
|
+
this.push(output);
|
|
48
|
+
}
|
|
49
|
+
callback();
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=mulitipart.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mulitipart.js","sourceRoot":"","sources":["../../src/output/mulitipart.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;AAOlC,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAA+B,EAAE;IAC7D,IAAI,MAAM,GAAY,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7C,yDAAyD,CAAC;IAC9D,IAAI,SAAS,GAAY,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC;IAE3E,IAAI,OAAO,GAAG,IAAI,CAAC;IAEnB,OAAO,IAAI,SAAS,CAAC;QACjB,UAAU,EAAE,IAAI;QAChB,SAAS,CAAC,IAAS,EAAE,SAAS,EAAE,QAAQ;YACpC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;gBAChC,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;gBACrC,QAAQ,EAAE,CAAC;gBACX,OAAO;YACX,CAAC;YAED,IAAI,MAAM,GAAG,EAAE,CAAC;YAEhB,IAAI,OAAO,EAAE,CAAC;gBACV,MAAM,IAAI,MAAM,GAAG,MAAM,CAAC;gBAC1B,OAAO,GAAG,KAAK,CAAC;YACpB,CAAC;iBACI,CAAC;gBACF,MAAM,IAAI,SAAS,GAAG,IAAI,CAAC;YAC/B,CAAC;YAED,IAAI,MAAM,GAAc,EAAE,CAAC;YAE3B,IAAI,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;YAE1C,UAAU,CAAC,OAAO,CAAE,GAAG,CAAC,EAAE;gBACtB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;oBAC3B,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;gBAC9C,CAAC;qBACI,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE,CAAC;oBACrC,MAAM,CAAC,IAAI,CAAC,QAAQ,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;gBAC1D,CAAC;qBACI,CAAC;oBACF,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC3B,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;YAElC,MAAM,CAAC,KAAK,CAAC,UAAU,MAAM,CAAC,MAAM,QAAQ,CAAC,CAAC;YAC9C,QAAQ,CAAC,IAAI,EAAC,MAAM,CAAC,CAAC;QAC1B,CAAC;QACD,KAAK,CAAC,QAAQ;YACV,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;YAC9B,IAAI,CAAC,OAAO,EAAE,CAAC;gBACX,IAAI,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC;gBAChC,MAAM,CAAC,KAAK,CAAC,UAAU,MAAM,CAAC,MAAM,QAAQ,CAAC,CAAC;gBAC9C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACtB,CAAC;YACD,QAAQ,EAAE,CAAC;QACf,CAAC;KACJ,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Transform } from 'stream';
|
|
2
|
+
export interface OutputMultipartOptions {
|
|
3
|
+
header?: string;
|
|
4
|
+
delimiter?: string;
|
|
5
|
+
noEndDelimiter?: string;
|
|
6
|
+
}
|
|
7
|
+
export declare function transform(opts?: OutputMultipartOptions): Promise<Transform>;
|
|
8
|
+
//# sourceMappingURL=multipart.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multipart.d.ts","sourceRoot":"","sources":["../../src/output/multipart.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAKnC,MAAM,WAAW,sBAAsB;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,wBAAsB,SAAS,CAAC,IAAI,GAAE,sBAA2B,GAAI,OAAO,CAAC,SAAS,CAAC,CAoDtF"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { Transform } from 'stream';
|
|
2
|
+
import log4js from 'log4js';
|
|
3
|
+
const logger = log4js.getLogger();
|
|
4
|
+
export async function transform(opts = {}) {
|
|
5
|
+
let header = opts.header ? opts.header :
|
|
6
|
+
"Content-Type: multipart/mixed; boundary=\"marcattacks\"";
|
|
7
|
+
let delimiter = opts.delimiter ? opts.delimiter : "--marcattacks";
|
|
8
|
+
let noEndDelimiter = opts.noEndDelimiter === 'true' ? true : false;
|
|
9
|
+
let isFirst = true;
|
|
10
|
+
return new Transform({
|
|
11
|
+
objectMode: true,
|
|
12
|
+
transform(data, _encoding, callback) {
|
|
13
|
+
let output = "";
|
|
14
|
+
if (isFirst) {
|
|
15
|
+
output += header + "\n\n";
|
|
16
|
+
isFirst = false;
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
output += delimiter + "\n";
|
|
20
|
+
}
|
|
21
|
+
let fields = [];
|
|
22
|
+
let sortedKeys = Object.keys(data).sort();
|
|
23
|
+
sortedKeys.forEach(key => {
|
|
24
|
+
if (Array.isArray(data[key])) {
|
|
25
|
+
fields.push(`ARRAY[${data[key].length}]`);
|
|
26
|
+
}
|
|
27
|
+
else if (typeof data[key] === 'object') {
|
|
28
|
+
fields.push(`HASH[${Object.keys(data[key]).length}]`);
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
fields.push(data[key]);
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
output += fields.join(" ") + "\n";
|
|
35
|
+
logger.trace(`adding ${output.length} bytes`);
|
|
36
|
+
callback(null, output);
|
|
37
|
+
},
|
|
38
|
+
flush(callback) {
|
|
39
|
+
logger.debug('flush reached');
|
|
40
|
+
if (!isFirst && !noEndDelimiter) {
|
|
41
|
+
let output = delimiter + "--\n";
|
|
42
|
+
logger.trace(`adding ${output.length} bytes`);
|
|
43
|
+
this.push(output);
|
|
44
|
+
}
|
|
45
|
+
callback();
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=multipart.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multipart.js","sourceRoot":"","sources":["../../src/output/multipart.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;AAQlC,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAA+B,EAAE;IAC7D,IAAI,MAAM,GAAY,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7C,yDAAyD,CAAC;IAC9D,IAAI,SAAS,GAAY,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC;IAC3E,IAAI,cAAc,GAAa,IAAI,CAAC,cAAc,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IAE7E,IAAI,OAAO,GAAG,IAAI,CAAC;IAEnB,OAAO,IAAI,SAAS,CAAC;QACjB,UAAU,EAAE,IAAI;QAChB,SAAS,CAAC,IAAS,EAAE,SAAS,EAAE,QAAQ;YACpC,IAAI,MAAM,GAAG,EAAE,CAAC;YAEhB,IAAI,OAAO,EAAE,CAAC;gBACV,MAAM,IAAI,MAAM,GAAG,MAAM,CAAC;gBAC1B,OAAO,GAAG,KAAK,CAAC;YACpB,CAAC;iBACI,CAAC;gBACF,MAAM,IAAI,SAAS,GAAG,IAAI,CAAC;YAC/B,CAAC;YAED,IAAI,MAAM,GAAc,EAAE,CAAC;YAE3B,IAAI,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;YAE1C,UAAU,CAAC,OAAO,CAAE,GAAG,CAAC,EAAE;gBACtB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;oBAC3B,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;gBAC9C,CAAC;qBACI,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE,CAAC;oBACrC,MAAM,CAAC,IAAI,CAAC,QAAQ,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;gBAC1D,CAAC;qBACI,CAAC;oBACF,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC3B,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;YAElC,MAAM,CAAC,KAAK,CAAC,UAAU,MAAM,CAAC,MAAM,QAAQ,CAAC,CAAC;YAC9C,QAAQ,CAAC,IAAI,EAAC,MAAM,CAAC,CAAC;QAC1B,CAAC;QACD,KAAK,CAAC,QAAQ;YACV,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;YAC9B,IAAI,CAAC,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC;gBAC9B,IAAI,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC;gBAChC,MAAM,CAAC,KAAK,CAAC,UAAU,MAAM,CAAC,MAAM,QAAQ,CAAC,CAAC;gBAC9C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACtB,CAAC;YACD,QAAQ,EAAE,CAAC;QACf,CAAC;KACJ,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../src/output/text.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAKnC,MAAM,WAAW,iBAAiB;IAC9B,OAAO,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;CAC1B;AAED,wBAAsB,SAAS,CAAC,IAAI,GAAE,iBAAsB,GAAI,OAAO,CAAC,SAAS,CAAC,CAkCjF"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Transform } from 'stream';
|
|
2
|
+
import log4js from 'log4js';
|
|
3
|
+
const logger = log4js.getLogger();
|
|
4
|
+
export async function transform(opts = {}) {
|
|
5
|
+
let newline = opts.newline ? opts.newline : "no";
|
|
6
|
+
return new Transform({
|
|
7
|
+
objectMode: true,
|
|
8
|
+
transform(data, _encoding, callback) {
|
|
9
|
+
if (Object.keys(data).length == 0) {
|
|
10
|
+
logger.debug('skipped empty record');
|
|
11
|
+
callback();
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
let output = "";
|
|
15
|
+
let fields = [];
|
|
16
|
+
let sortedKeys = Object.keys(data).sort();
|
|
17
|
+
sortedKeys.forEach(key => {
|
|
18
|
+
if (Array.isArray(data[key])) {
|
|
19
|
+
fields.push(`ARRAY[${data[key].length}]`);
|
|
20
|
+
}
|
|
21
|
+
else if (typeof data[key] === 'object') {
|
|
22
|
+
fields.push(`HASH[${Object.keys(data[key]).length}]`);
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
fields.push(data[key]);
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
output += fields.join(delimiter) + "\n";
|
|
29
|
+
logger.trace(`adding ${output.length} bytes`);
|
|
30
|
+
callback(null, output);
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=text.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text.js","sourceRoot":"","sources":["../../src/output/text.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;AAMlC,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAA0B,EAAE;IACxD,IAAI,OAAO,GAAY,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;IAE1D,OAAO,IAAI,SAAS,CAAC;QACjB,UAAU,EAAE,IAAI;QAChB,SAAS,CAAC,IAAS,EAAE,SAAS,EAAE,QAAQ;YACpC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;gBAChC,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;gBACrC,QAAQ,EAAE,CAAC;gBACX,OAAO;YACX,CAAC;YAED,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,IAAI,MAAM,GAAc,EAAE,CAAC;YAC3B,IAAI,UAAU,GAAc,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;YAErD,UAAU,CAAC,OAAO,CAAE,GAAG,CAAC,EAAE;gBACtB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;oBAC3B,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;gBAC9C,CAAC;qBACI,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE,CAAC;oBACrC,MAAM,CAAC,IAAI,CAAC,QAAQ,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;gBAC1D,CAAC;qBACI,CAAC;oBACF,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC3B,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;YAExC,MAAM,CAAC,KAAK,CAAC,UAAU,MAAM,CAAC,MAAM,QAAQ,CAAC,CAAC;YAC9C,QAAQ,CAAC,IAAI,EAAC,MAAM,CAAC,CAAC;QAC1B,CAAC;KACJ,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"marcinrdf.d.ts","sourceRoot":"","sources":["../../src/transform/marcinrdf.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAKnC,MAAM,WAAW,gBAAgB;IAC7B,KAAK,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,WAAW,CAAC;CAC7C;AAID,wBAAsB,SAAS,CAAC,IAAI,GAAE,gBAAqB,GAAI,OAAO,CAAC,SAAS,CAAC,CAQhF"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { Transform } from "stream";
|
|
2
|
+
import { isRecord } from "../types/quad.js";
|
|
3
|
+
import { parseString } from "../util/rdf_parse.js";
|
|
4
|
+
import { marcmap } from "../marcmap.js";
|
|
5
|
+
// An experimental processor that does a literal translation of
|
|
6
|
+
// alephseq into something JSON-LD-ish
|
|
7
|
+
export async function transform(opts = {}) {
|
|
8
|
+
return new Transform({
|
|
9
|
+
objectMode: true,
|
|
10
|
+
async transform(data, _encoding, callback) {
|
|
11
|
+
const rdfData = await makeRdfData(data, opts);
|
|
12
|
+
callback(null, rdfData);
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
async function makeRdfData(data, opts = {}) {
|
|
17
|
+
const parse = opts.parse ? opts.parse : "jsonld";
|
|
18
|
+
// First take a guess if we already have a Record
|
|
19
|
+
// Stupid guess but sufficient for now
|
|
20
|
+
if (isRecord(data)) {
|
|
21
|
+
return data;
|
|
22
|
+
}
|
|
23
|
+
const id = marcmap(data['record'], "001", {})[0];
|
|
24
|
+
const clone = structuredClone(data);
|
|
25
|
+
// Parse the input data as RDF
|
|
26
|
+
clone['@context'] = {
|
|
27
|
+
"@vocab": "http://example.org/ns#",
|
|
28
|
+
"ex": "http://example.org/ns#",
|
|
29
|
+
"record": {
|
|
30
|
+
"@id": "ex:record",
|
|
31
|
+
"@container": "@list"
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
clone['@id'] = `http://example.org/record/${id}`;
|
|
35
|
+
clone['@type'] = 'ex:Record';
|
|
36
|
+
if (parse === "turtle") {
|
|
37
|
+
return await parseString(JSON.stringify(clone), "data.jsonld");
|
|
38
|
+
}
|
|
39
|
+
else if (parse === "notation3") {
|
|
40
|
+
const record = {
|
|
41
|
+
"text": serializeRecord(clone)
|
|
42
|
+
};
|
|
43
|
+
return record;
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
return clone;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
function serializeRecord(record) {
|
|
50
|
+
const id = record['@id'];
|
|
51
|
+
const ex = "http://example.org/ns#";
|
|
52
|
+
let result = `<${id}> a <${ex}Record>.\n`;
|
|
53
|
+
const fields = record['record'];
|
|
54
|
+
for (let i = 0; i < fields.length; i++) {
|
|
55
|
+
const tag = fields[i][0];
|
|
56
|
+
const rest = fields[i].splice(1);
|
|
57
|
+
result += `<${id}> <${ex}f${tag}> ${serializeArray(rest)}.\n`;
|
|
58
|
+
}
|
|
59
|
+
return result.trim();
|
|
60
|
+
}
|
|
61
|
+
function serializeArray(array) {
|
|
62
|
+
const result = "(" + array.map(x => {
|
|
63
|
+
if (Array.isArray(x)) {
|
|
64
|
+
return serializeArray(x);
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
return serializeValue(x);
|
|
68
|
+
}
|
|
69
|
+
}).join(" ") + ")";
|
|
70
|
+
return result;
|
|
71
|
+
}
|
|
72
|
+
function serializeValue(value) {
|
|
73
|
+
const result = "\"" +
|
|
74
|
+
value.replaceAll(/\\/g, "\\\\").replaceAll(/"/g, "\\\"") +
|
|
75
|
+
"\"";
|
|
76
|
+
return result;
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=marcinrdf.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"marcinrdf.js","sourceRoot":"","sources":["../../src/transform/marcinrdf.ts"],"names":[],"mappings":"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"}
|