@comunica/actor-query-result-serialize-table 3.0.3 → 3.1.2
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.
|
@@ -179,8 +179,8 @@
|
|
|
179
179
|
"memberFieldName": "pushHeader"
|
|
180
180
|
},
|
|
181
181
|
{
|
|
182
|
-
"@id": "caqrst:components/ActorQueryResultSerializeTable.jsonld#
|
|
183
|
-
"memberFieldName": "
|
|
182
|
+
"@id": "caqrst:components/ActorQueryResultSerializeTable.jsonld#ActorQueryResultSerializeTable__member_createRow",
|
|
183
|
+
"memberFieldName": "createRow"
|
|
184
184
|
},
|
|
185
185
|
{
|
|
186
186
|
"@id": "caqrst:components/ActorQueryResultSerializeTable.jsonld#ActorQueryResultSerializeTable__member_runHandle",
|
|
@@ -20,7 +20,7 @@ export declare class ActorQueryResultSerializeTable extends ActorQueryResultSeri
|
|
|
20
20
|
termToString(term: RDF.Term): string;
|
|
21
21
|
pad(str: string): string;
|
|
22
22
|
pushHeader(data: Readable, labels: RDF.Variable[]): void;
|
|
23
|
-
|
|
23
|
+
createRow(labels: RDF.Variable[], bindings: Bindings): string;
|
|
24
24
|
runHandle(action: IActionSparqlSerialize, _mediaType: string, _context: IActionContext): Promise<IActorQueryResultSerializeOutput>;
|
|
25
25
|
}
|
|
26
26
|
export interface IActorQueryResultSerializeTableArgs extends IActorQueryResultSerializeFixedMediaTypesArgs {
|
|
@@ -43,32 +43,25 @@ class ActorQueryResultSerializeTable extends bus_query_result_serialize_1.ActorQ
|
|
|
43
43
|
const header = labels.map(label => this.pad(label.value)).join(' ');
|
|
44
44
|
data.push(`${header}\n${ActorQueryResultSerializeTable.repeat('-', header.length)}\n`);
|
|
45
45
|
}
|
|
46
|
-
|
|
47
|
-
|
|
46
|
+
createRow(labels, bindings) {
|
|
47
|
+
return `${labels
|
|
48
48
|
.map(label => bindings.has(label) ? this.termToString(bindings.get(label)) : '')
|
|
49
49
|
.map(label => this.pad(label))
|
|
50
|
-
.join(' ')}\n
|
|
50
|
+
.join(' ')}\n`;
|
|
51
51
|
}
|
|
52
52
|
async runHandle(action, _mediaType, _context) {
|
|
53
53
|
const data = new readable_stream_1.Readable();
|
|
54
|
-
data._read = () => {
|
|
55
|
-
// Do nothing
|
|
56
|
-
};
|
|
57
54
|
let resultStream;
|
|
58
55
|
if (action.type === 'bindings') {
|
|
59
|
-
resultStream = action.bindingsStream;
|
|
56
|
+
resultStream = action.bindingsStream.map(bindings => this.createRow(labels, bindings));
|
|
60
57
|
const labels = (await action.metadata()).variables;
|
|
61
58
|
this.pushHeader(data, labels);
|
|
62
|
-
resultStream.on('error', error => data.emit('error', error));
|
|
63
|
-
resultStream.on('data', bindings => this.pushRow(data, labels, bindings));
|
|
64
59
|
}
|
|
65
60
|
else {
|
|
66
|
-
resultStream = action.quadStream;
|
|
61
|
+
resultStream = action.quadStream.map(quad => `${(0, rdf_terms_1.getTerms)(quad).map(term => this.pad(this.termToString(term))).join(' ')}\n`);
|
|
67
62
|
this.pushHeader(data, QUAD_TERM_NAMES_VARS);
|
|
68
|
-
resultStream.on('error', error => data.emit('error', error));
|
|
69
|
-
resultStream.on('data', quad => data.push(`${(0, rdf_terms_1.getTerms)(quad).map(term => this.pad(this.termToString(term))).join(' ')}\n`));
|
|
70
63
|
}
|
|
71
|
-
|
|
64
|
+
data.wrap(resultStream);
|
|
72
65
|
return { data };
|
|
73
66
|
}
|
|
74
67
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActorQueryResultSerializeTable.js","sourceRoot":"","sources":["ActorQueryResultSerializeTable.ts"],"names":[],"mappings":";;;AAKA,qFAAgG;AAQhG,uDAA+C;AAC/C,2CAA0C;AAC1C,yCAAsD;AACtD,qDAA2C;AAE3C,MAAM,EAAE,GAAG,IAAI,8BAAW,EAAE,CAAC;AAC7B,MAAM,oBAAoB,GAAG,2BAAe,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AAE5E;;GAEG;AACH,MAAa,8BAA+B,SAAQ,qEAAwC;IAK1F;;;;OAIG;IACH,YAAmB,IAAyC;QAC1D,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,OAAO,GAAG,8BAA8B,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAC9E,CAAC;IAEM,MAAM,CAAC,MAAM,CAAC,GAAW,EAAE,KAAa;QAC7C,OAAO,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAEe,KAAK,CAAC,iBAAiB,CAAC,MAA8B,EAAE,QAAwB;QAC9F,IAAI,CAAC,CAAE,UAAU,EAAE,OAAO,CAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YACnD,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAC1E,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,YAAY,CAAC,IAAc;QAChC,OAAO,IAAI,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,IAAA,yBAAY,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;IACpE,CAAC;IAEM,GAAG,CAAC,GAAW;QACpB,IAAI,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACnC,OAAO,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC;IAClD,CAAC;IAEM,UAAU,CAAC,IAAc,EAAE,MAAsB;QACtD,MAAM,MAAM,GAAW,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC5E,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,KAAK,8BAA8B,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACzF,CAAC;IAEM,
|
|
1
|
+
{"version":3,"file":"ActorQueryResultSerializeTable.js","sourceRoot":"","sources":["ActorQueryResultSerializeTable.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n IActionSparqlSerialize,\n IActorQueryResultSerializeFixedMediaTypesArgs,\n IActorQueryResultSerializeOutput,\n} from '@comunica/bus-query-result-serialize';\nimport { ActorQueryResultSerializeFixedMediaTypes } from '@comunica/bus-query-result-serialize';\nimport type {\n Bindings,\n IActionContext,\n IQueryOperationResultBindings,\n IQueryOperationResultQuads,\n} from '@comunica/types';\nimport type * as RDF from '@rdfjs/types';\nimport { DataFactory } from 'rdf-data-factory';\nimport { termToString } from 'rdf-string';\nimport { getTerms, QUAD_TERM_NAMES } from 'rdf-terms';\nimport { Readable } from 'readable-stream';\n\nconst DF = new DataFactory();\nconst QUAD_TERM_NAMES_VARS = QUAD_TERM_NAMES.map(name => DF.variable(name));\n\n/**\n * A comunica Table Sparql Serialize Actor.\n */\nexport class ActorQueryResultSerializeTable extends ActorQueryResultSerializeFixedMediaTypes\n implements IActorQueryResultSerializeTableArgs {\n public readonly columnWidth: number;\n public readonly padding: string;\n\n /**\n * @param args -\n * \\ @defaultNested {{ \"table\": 0.6 }} mediaTypePriorities\n * \\ @defaultNested {{ \"table\": \"https://comunica.linkeddatafragments.org/#results_table\" }} mediaTypeFormats\n */\n public constructor(args: IActorQueryResultSerializeTableArgs) {\n super(args);\n this.padding = ActorQueryResultSerializeTable.repeat(' ', this.columnWidth);\n }\n\n public static repeat(str: string, count: number): string {\n return str.repeat(count);\n }\n\n public override async testHandleChecked(action: IActionSparqlSerialize, _context: IActionContext): Promise<boolean> {\n if (![ 'bindings', 'quads' ].includes(action.type)) {\n throw new Error('This actor can only handle bindings or quad streams.');\n }\n return true;\n }\n\n public termToString(term: RDF.Term): string {\n return term.termType === 'Quad' ? termToString(term) : term.value;\n }\n\n public pad(str: string): string {\n if (str.length <= this.columnWidth) {\n return str + this.padding.slice(str.length);\n }\n return `${str.slice(0, this.columnWidth - 1)}…`;\n }\n\n public pushHeader(data: Readable, labels: RDF.Variable[]): void {\n const header: string = labels.map(label => this.pad(label.value)).join(' ');\n data.push(`${header}\\n${ActorQueryResultSerializeTable.repeat('-', header.length)}\\n`);\n }\n\n public createRow(labels: RDF.Variable[], bindings: Bindings): string {\n return `${labels\n .map(label => bindings.has(label) ? this.termToString(bindings.get(label)!) : '')\n .map(label => this.pad(label))\n .join(' ')}\\n`;\n }\n\n public async runHandle(action: IActionSparqlSerialize, _mediaType: string, _context: IActionContext):\n Promise<IActorQueryResultSerializeOutput> {\n const data = new Readable();\n\n let resultStream: NodeJS.EventEmitter;\n if (action.type === 'bindings') {\n resultStream = (<IQueryOperationResultBindings>action).bindingsStream.map(\n bindings => this.createRow(labels, bindings),\n );\n const labels = (await (<IQueryOperationResultBindings>action).metadata()).variables;\n this.pushHeader(data, labels);\n } else {\n resultStream = (<IQueryOperationResultQuads>action).quadStream.map(quad => `${getTerms(quad).map(term => this.pad(this.termToString(term))).join(' ')}\\n`);\n this.pushHeader(data, QUAD_TERM_NAMES_VARS);\n }\n data.wrap(<any> resultStream);\n\n return { data };\n }\n}\n\nexport interface IActorQueryResultSerializeTableArgs extends IActorQueryResultSerializeFixedMediaTypesArgs {\n /**\n * The table column width in number of characters\n * @range {integer}\n * @default {50}\n */\n columnWidth: number;\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@comunica/actor-query-result-serialize-table",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.1.2",
|
|
4
4
|
"description": "A table query-result-serialize actor",
|
|
5
5
|
"lsd:module": true,
|
|
6
6
|
"license": "MIT",
|
|
@@ -32,18 +32,18 @@
|
|
|
32
32
|
"lib/**/*.js.map"
|
|
33
33
|
],
|
|
34
34
|
"scripts": {
|
|
35
|
-
"build": "
|
|
35
|
+
"build": "yarn run build:ts && yarn run build:components",
|
|
36
36
|
"build:ts": "node \"../../node_modules/typescript/bin/tsc\"",
|
|
37
37
|
"build:components": "componentsjs-generator"
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"@comunica/bus-query-result-serialize": "^3.0
|
|
41
|
-
"@comunica/types": "^3.0
|
|
40
|
+
"@comunica/bus-query-result-serialize": "^3.1.0",
|
|
41
|
+
"@comunica/types": "^3.1.0",
|
|
42
42
|
"@rdfjs/types": "*",
|
|
43
43
|
"rdf-data-factory": "^1.1.1",
|
|
44
44
|
"rdf-string": "^1.6.3",
|
|
45
45
|
"rdf-terms": "^1.11.0",
|
|
46
46
|
"readable-stream": "^4.4.2"
|
|
47
47
|
},
|
|
48
|
-
"gitHead": "
|
|
48
|
+
"gitHead": "db31677bdef5400194783048840c147e04b793e5"
|
|
49
49
|
}
|