@biblioteksentralen/marc 0.3.0 → 0.4.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/README.md +1 -0
- package/dist/index.cjs +10 -6
- package/dist/index.d.cts +8 -1
- package/dist/index.d.ts +8 -1
- package/dist/index.js +10 -6
- package/package.json +2 -2
package/README.md
CHANGED
package/dist/index.cjs
CHANGED
|
@@ -247,14 +247,18 @@ function serializeMarcXmlCollection(input, pretty = false) {
|
|
|
247
247
|
}
|
|
248
248
|
|
|
249
249
|
// src/marc-record/serializeLineMarc.ts
|
|
250
|
-
|
|
250
|
+
var BIBLIOFIL_DOLLAR_ESCAPE_CHARACTER = "@{2}";
|
|
251
|
+
function serializeLineMarc(input, options = {}) {
|
|
252
|
+
const serializer = createDefaultSerializer({
|
|
253
|
+
dollarEscapeCharacter: options.dollarEscapeCharacter ?? BIBLIOFIL_DOLLAR_ESCAPE_CHARACTER
|
|
254
|
+
});
|
|
251
255
|
const leader = serializer.leader(input.leader);
|
|
252
256
|
const control = input.getControlFields().map(serializer.controlfield).join("");
|
|
253
257
|
const data = input.getDataFields().map(serializer.datafield).join("");
|
|
254
258
|
return `${leader}${control}${data}^
|
|
255
259
|
`;
|
|
256
260
|
}
|
|
257
|
-
var
|
|
261
|
+
var createDefaultSerializer = (options) => ({
|
|
258
262
|
leader: (leader) => `*LDR${leader}
|
|
259
263
|
`,
|
|
260
264
|
controlfield: (field) => `*${field.tag}${field.value}
|
|
@@ -263,14 +267,14 @@ var serializer = {
|
|
|
263
267
|
const ind1 = field.ind1 ?? " ";
|
|
264
268
|
const ind2 = field.ind2 ?? " ";
|
|
265
269
|
const subfields = field.subfields.map(
|
|
266
|
-
(subfield) => `$${subfield.code}${escapeSubfieldValue(subfield.value)}`
|
|
270
|
+
(subfield) => `$${subfield.code}${escapeSubfieldValue(subfield.value, options)}`
|
|
267
271
|
).join("");
|
|
268
272
|
return `*${field.tag}${ind1}${ind2}${subfields}
|
|
269
273
|
`;
|
|
270
274
|
}
|
|
271
|
-
};
|
|
272
|
-
var escapeSubfieldValue = (value) => {
|
|
273
|
-
return value.replace(
|
|
275
|
+
});
|
|
276
|
+
var escapeSubfieldValue = (value, options) => {
|
|
277
|
+
return value.replace(/[\n|\r]/g, " ").replace(/\s\s+/g, " ").replace(/\$/g, options.dollarEscapeCharacter).trim();
|
|
274
278
|
};
|
|
275
279
|
|
|
276
280
|
// src/marc-record/MarcRecord.ts
|
package/dist/index.d.cts
CHANGED
|
@@ -153,7 +153,14 @@ declare const marcRecordZodSchema: z.ZodObject<{
|
|
|
153
153
|
}, z.core.$strip>]>>;
|
|
154
154
|
}, z.core.$strip>;
|
|
155
155
|
|
|
156
|
-
|
|
156
|
+
type SerializeLineMarcOptions = {
|
|
157
|
+
/**
|
|
158
|
+
* Replacement character to use for $ characters in field values.
|
|
159
|
+
* Defaults to `@{2}`
|
|
160
|
+
*/
|
|
161
|
+
dollarEscapeCharacter: string;
|
|
162
|
+
};
|
|
163
|
+
declare function serializeLineMarc(input: MarcRecord, options?: Partial<SerializeLineMarcOptions>): string;
|
|
157
164
|
|
|
158
165
|
declare function serializeMarcXml(input: MarcRecord, pretty?: boolean): string;
|
|
159
166
|
declare function serializeMarcXmlCollection(input: MarcRecord[], pretty?: boolean): string;
|
package/dist/index.d.ts
CHANGED
|
@@ -153,7 +153,14 @@ declare const marcRecordZodSchema: z.ZodObject<{
|
|
|
153
153
|
}, z.core.$strip>]>>;
|
|
154
154
|
}, z.core.$strip>;
|
|
155
155
|
|
|
156
|
-
|
|
156
|
+
type SerializeLineMarcOptions = {
|
|
157
|
+
/**
|
|
158
|
+
* Replacement character to use for $ characters in field values.
|
|
159
|
+
* Defaults to `@{2}`
|
|
160
|
+
*/
|
|
161
|
+
dollarEscapeCharacter: string;
|
|
162
|
+
};
|
|
163
|
+
declare function serializeLineMarc(input: MarcRecord, options?: Partial<SerializeLineMarcOptions>): string;
|
|
157
164
|
|
|
158
165
|
declare function serializeMarcXml(input: MarcRecord, pretty?: boolean): string;
|
|
159
166
|
declare function serializeMarcXmlCollection(input: MarcRecord[], pretty?: boolean): string;
|
package/dist/index.js
CHANGED
|
@@ -245,14 +245,18 @@ function serializeMarcXmlCollection(input, pretty = false) {
|
|
|
245
245
|
}
|
|
246
246
|
|
|
247
247
|
// src/marc-record/serializeLineMarc.ts
|
|
248
|
-
|
|
248
|
+
var BIBLIOFIL_DOLLAR_ESCAPE_CHARACTER = "@{2}";
|
|
249
|
+
function serializeLineMarc(input, options = {}) {
|
|
250
|
+
const serializer = createDefaultSerializer({
|
|
251
|
+
dollarEscapeCharacter: options.dollarEscapeCharacter ?? BIBLIOFIL_DOLLAR_ESCAPE_CHARACTER
|
|
252
|
+
});
|
|
249
253
|
const leader = serializer.leader(input.leader);
|
|
250
254
|
const control = input.getControlFields().map(serializer.controlfield).join("");
|
|
251
255
|
const data = input.getDataFields().map(serializer.datafield).join("");
|
|
252
256
|
return `${leader}${control}${data}^
|
|
253
257
|
`;
|
|
254
258
|
}
|
|
255
|
-
var
|
|
259
|
+
var createDefaultSerializer = (options) => ({
|
|
256
260
|
leader: (leader) => `*LDR${leader}
|
|
257
261
|
`,
|
|
258
262
|
controlfield: (field) => `*${field.tag}${field.value}
|
|
@@ -261,14 +265,14 @@ var serializer = {
|
|
|
261
265
|
const ind1 = field.ind1 ?? " ";
|
|
262
266
|
const ind2 = field.ind2 ?? " ";
|
|
263
267
|
const subfields = field.subfields.map(
|
|
264
|
-
(subfield) => `$${subfield.code}${escapeSubfieldValue(subfield.value)}`
|
|
268
|
+
(subfield) => `$${subfield.code}${escapeSubfieldValue(subfield.value, options)}`
|
|
265
269
|
).join("");
|
|
266
270
|
return `*${field.tag}${ind1}${ind2}${subfields}
|
|
267
271
|
`;
|
|
268
272
|
}
|
|
269
|
-
};
|
|
270
|
-
var escapeSubfieldValue = (value) => {
|
|
271
|
-
return value.replace(
|
|
273
|
+
});
|
|
274
|
+
var escapeSubfieldValue = (value, options) => {
|
|
275
|
+
return value.replace(/[\n|\r]/g, " ").replace(/\s\s+/g, " ").replace(/\$/g, options.dollarEscapeCharacter).trim();
|
|
272
276
|
};
|
|
273
277
|
|
|
274
278
|
// src/marc-record/MarcRecord.ts
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@biblioteksentralen/marc",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "MARC record parser and serializer",
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
"devDependencies": {
|
|
33
33
|
"@arethetypeswrong/cli": "^0.15.4",
|
|
34
34
|
"@types/json-schema": "^7.0.15",
|
|
35
|
-
"@types/node": "^
|
|
35
|
+
"@types/node": "^24.11.0",
|
|
36
36
|
"eslint": "^9.26.0",
|
|
37
37
|
"rimraf": "^5.0.5",
|
|
38
38
|
"tsup": "^8.0.2",
|