@faubulous/mentor-rdf-serializers 1.2.0 → 1.2.1
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.
|
@@ -135,6 +135,7 @@ export declare class StatementSerializer {
|
|
|
135
135
|
* - `BASE` / `@base` declaration (when `baseIri` is set)
|
|
136
136
|
* - `PREFIX` / `@prefix` declarations (when `prefixes` is provided)
|
|
137
137
|
* - A blank line separating declarations from statements
|
|
138
|
+
* - Pretty-printed subject blocks with predicate-object grouping
|
|
138
139
|
* - Sorted and comment-decorated statements
|
|
139
140
|
*
|
|
140
141
|
* @param contexts The (optionally pre-sorted / pre-merged) statement contexts.
|
|
@@ -142,5 +143,14 @@ export declare class StatementSerializer {
|
|
|
142
143
|
* @returns The complete serialized document string.
|
|
143
144
|
*/
|
|
144
145
|
serialize(contexts: QuadContext[], options?: StatementSerializerOptions): string;
|
|
146
|
+
/**
|
|
147
|
+
* Strips prefix/base declarations from serializer output.
|
|
148
|
+
*
|
|
149
|
+
* The underlying serializer emits its own declarations when
|
|
150
|
+
* `serialize()` is called, but the `StatementSerializer` handles
|
|
151
|
+
* declarations separately. This helper removes those duplicate
|
|
152
|
+
* declaration lines and the blank line that follows them.
|
|
153
|
+
*/
|
|
154
|
+
private stripDeclarations;
|
|
145
155
|
}
|
|
146
156
|
//# sourceMappingURL=statement-serializer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"statement-serializer.d.ts","sourceRoot":"","sources":["../src/statement-serializer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAGH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAqB,UAAU,EAAE,MAAM,YAAY,CAAC;AAMxF,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC7E,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;AAMxC;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACvC;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAElC;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,yBAAyB,CAAC,EAAE,OAAO,CAAC;IAEpC;;;OAGG;IACH,IAAI,CAAC,EAAE,UAAU,CAAC;IAElB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;CACjC;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBAAa,mBAAmB;IAOhB,OAAO,CAAC,QAAQ,CAAC,UAAU;IANvC;;;;;OAKG;gBAC0B,UAAU,EAAE,WAAW;IAEpD;;OAEG;IACH,OAAO,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;IAWvC;;;;;;OAMG;IACH,OAAO,CAAC,cAAc;IA0BtB;;;;;;;;OAQG;IACH,aAAa,CACT,QAAQ,EAAE,WAAW,EAAE,EACvB,QAAQ,EAAE,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC,GAClC,WAAW,EAAE;IAYhB;;;;;;;;OAQG;IACH,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,UAAU,GAAG,WAAW,EAAE;IAiB9D
|
|
1
|
+
{"version":3,"file":"statement-serializer.d.ts","sourceRoot":"","sources":["../src/statement-serializer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAGH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAqB,UAAU,EAAE,MAAM,YAAY,CAAC;AAMxF,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC7E,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;AAMxC;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACvC;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAElC;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,yBAAyB,CAAC,EAAE,OAAO,CAAC;IAEpC;;;OAGG;IACH,IAAI,CAAC,EAAE,UAAU,CAAC;IAElB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;CACjC;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBAAa,mBAAmB;IAOhB,OAAO,CAAC,QAAQ,CAAC,UAAU;IANvC;;;;;OAKG;gBAC0B,UAAU,EAAE,WAAW;IAEpD;;OAEG;IACH,OAAO,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;IAWvC;;;;;;OAMG;IACH,OAAO,CAAC,cAAc;IA0BtB;;;;;;;;OAQG;IACH,aAAa,CACT,QAAQ,EAAE,WAAW,EAAE,EACvB,QAAQ,EAAE,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC,GAClC,WAAW,EAAE;IAYhB;;;;;;;;OAQG;IACH,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,UAAU,GAAG,WAAW,EAAE;IAiB9D;;;;;;;;;;;;;OAaG;IACH,SAAS,CACL,QAAQ,EAAE,WAAW,EAAE,EACvB,OAAO,CAAC,EAAE,0BAA0B,GACrC,MAAM;IAgGT;;;;;;;OAOG;IACH,OAAO,CAAC,iBAAiB;CAuB5B"}
|
|
@@ -151,6 +151,7 @@ export class StatementSerializer {
|
|
|
151
151
|
* - `BASE` / `@base` declaration (when `baseIri` is set)
|
|
152
152
|
* - `PREFIX` / `@prefix` declarations (when `prefixes` is provided)
|
|
153
153
|
* - A blank line separating declarations from statements
|
|
154
|
+
* - Pretty-printed subject blocks with predicate-object grouping
|
|
154
155
|
* - Sorted and comment-decorated statements
|
|
155
156
|
*
|
|
156
157
|
* @param contexts The (optionally pre-sorted / pre-merged) statement contexts.
|
|
@@ -188,29 +189,84 @@ export class StatementSerializer {
|
|
|
188
189
|
baseIri: baseIri || undefined,
|
|
189
190
|
lowercaseDirectives,
|
|
190
191
|
};
|
|
192
|
+
// Group contexts by subject for pretty-printed output with
|
|
193
|
+
// predicate-object lists (e.g. Turtle's ";" syntax).
|
|
194
|
+
const subjectGroups = new Map();
|
|
195
|
+
for (const ctx of sortedContexts) {
|
|
196
|
+
const key = ctx.subject.term.value;
|
|
197
|
+
if (!subjectGroups.has(key)) {
|
|
198
|
+
subjectGroups.set(key, []);
|
|
199
|
+
}
|
|
200
|
+
subjectGroups.get(key).push(ctx);
|
|
201
|
+
}
|
|
191
202
|
let lastSubjectValue = null;
|
|
192
|
-
for (const
|
|
193
|
-
const subjectValue = quadContext.subject.term.value;
|
|
194
|
-
const isNewSubject = subjectValue !== lastSubjectValue;
|
|
203
|
+
for (const [subjectKey, groupContexts] of subjectGroups) {
|
|
195
204
|
// Blank line between subject blocks.
|
|
196
|
-
if (
|
|
205
|
+
if (lastSubjectValue !== null && blankLines) {
|
|
197
206
|
parts.push('');
|
|
198
207
|
}
|
|
199
|
-
//
|
|
200
|
-
|
|
201
|
-
|
|
208
|
+
// Collect comments from all contexts in this subject group.
|
|
209
|
+
// Leading comments are emitted before the subject block.
|
|
210
|
+
// Trailing comments on non-last quads are also emitted as
|
|
211
|
+
// leading comments since they cannot be placed inline within
|
|
212
|
+
// a grouped subject block.
|
|
213
|
+
for (let i = 0; i < groupContexts.length; i++) {
|
|
214
|
+
const ctx = groupContexts[i];
|
|
215
|
+
for (const comment of ctx.leadingComments) {
|
|
216
|
+
parts.push(comment.image);
|
|
217
|
+
}
|
|
218
|
+
if (i < groupContexts.length - 1 && ctx.trailingComment) {
|
|
219
|
+
parts.push(ctx.trailingComment.image);
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
// Serialize the subject block using the underlying serializer,
|
|
223
|
+
// which handles predicate-object grouping and pretty-printing.
|
|
224
|
+
const quads = groupContexts.map(ctx => this.getQuad(ctx));
|
|
225
|
+
const groupOutput = this.serializer.serialize(quads, serializerOpts);
|
|
226
|
+
const body = this.stripDeclarations(groupOutput, lineEnd);
|
|
227
|
+
// Append trailing comment from the last context in the group.
|
|
228
|
+
const lastCtx = groupContexts[groupContexts.length - 1];
|
|
229
|
+
if (lastCtx.trailingComment) {
|
|
230
|
+
const bodyLines = body.split(lineEnd);
|
|
231
|
+
bodyLines[bodyLines.length - 1] += ' ' + lastCtx.trailingComment.image;
|
|
232
|
+
parts.push(bodyLines.join(lineEnd));
|
|
202
233
|
}
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
let line = this.serializer.serializeQuad(quad, serializerOpts);
|
|
206
|
-
// Trailing comment on the same line.
|
|
207
|
-
if (quadContext.trailingComment) {
|
|
208
|
-
line += ' ' + quadContext.trailingComment.image;
|
|
234
|
+
else {
|
|
235
|
+
parts.push(body);
|
|
209
236
|
}
|
|
210
|
-
|
|
211
|
-
lastSubjectValue = subjectValue;
|
|
237
|
+
lastSubjectValue = subjectKey;
|
|
212
238
|
}
|
|
213
239
|
return parts.join(lineEnd);
|
|
214
240
|
}
|
|
241
|
+
/**
|
|
242
|
+
* Strips prefix/base declarations from serializer output.
|
|
243
|
+
*
|
|
244
|
+
* The underlying serializer emits its own declarations when
|
|
245
|
+
* `serialize()` is called, but the `StatementSerializer` handles
|
|
246
|
+
* declarations separately. This helper removes those duplicate
|
|
247
|
+
* declaration lines and the blank line that follows them.
|
|
248
|
+
*/
|
|
249
|
+
stripDeclarations(output, lineEnd) {
|
|
250
|
+
const lines = output.split(lineEnd);
|
|
251
|
+
let start = 0;
|
|
252
|
+
for (let i = 0; i < lines.length; i++) {
|
|
253
|
+
if (/^(@?(prefix|base)|PREFIX|BASE)\s/i.test(lines[i])) {
|
|
254
|
+
start = i + 1;
|
|
255
|
+
}
|
|
256
|
+
else if (lines[i].trim() === '' && start > 0) {
|
|
257
|
+
start = i + 1;
|
|
258
|
+
break;
|
|
259
|
+
}
|
|
260
|
+
else {
|
|
261
|
+
break;
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
// Remove trailing empty lines left over from the serializer.
|
|
265
|
+
let end = lines.length;
|
|
266
|
+
while (end > start && lines[end - 1].trim() === '') {
|
|
267
|
+
end--;
|
|
268
|
+
}
|
|
269
|
+
return lines.slice(start, end).join(lineEnd);
|
|
270
|
+
}
|
|
215
271
|
}
|
|
216
272
|
//# sourceMappingURL=statement-serializer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"statement-serializer.js","sourceRoot":"","sources":["../src/statement-serializer.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"statement-serializer.js","sourceRoot":"","sources":["../src/statement-serializer.ts"],"names":[],"mappings":"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"}
|