Skip to content

Commit 6e485bd

Browse files
committed
Added general SPARQL escape helper with type paramater
1 parent 3c13d34 commit 6e485bd

File tree

4 files changed

+29
-1
lines changed

4 files changed

+29
-1
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ The following importable variables are available:
5858
- `sparqlEscapeDate(value) => string`: Function to escape a date in SPARQL
5959
- `sparqlEscapeDateTime(value) => string`: Function to escape a datetime in SPARQL
6060
- `sparqlEscapeBool(value) => string`: Function to escape a boolean in SPARQL
61+
- `sparqlEscape(value, type) => string`: Function to escape a value in SPARQL according to the given type. Type must be one of `'string'`, `'uri'`, `'int'`, `'float'`, `'date'`, `'dateTime'`, `'bool'`.
6162

6263
You can either import specific attributes from the mu library, or import the whole mu object.
6364

helpers/mu/index.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ const mu = {
1111
SPARQL: sparql.sparql,
1212
query: sparql.query,
1313
update: sparql.update,
14+
sparqlEscape: sparql.sparqlEscape,
1415
sparqlEscapeString: sparql.sparqlEscapeString,
1516
sparqlEscapeUri: sparql.sparqlEscapeUri,
1617
sparqlEscapeInt: sparql.sparqlEscapeInt,
@@ -24,6 +25,7 @@ const mu = {
2425
const SPARQL = mu.SPARQL,
2526
query = mu.query,
2627
update = mu.update,
28+
sparqlEscape = mu.sparqlEscape,
2729
sparqlEscapeString = mu.sparqlEscapeString,
2830
sparqlEscapeUri = mu.sparqlEscapeUri,
2931
sparqlEscapeInt = mu.sparqlEscapeInt,
@@ -38,6 +40,7 @@ export {
3840
SPARQL,
3941
query,
4042
update,
43+
sparqlEscape,
4144
sparqlEscapeString,
4245
sparqlEscapeUri,
4346
sparqlEscapeInt,

helpers/mu/server.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ app.use(function(err, req, res, next) {
3333

3434
// start server
3535
app.listen( 80, function() {
36-
console.log('Starting server on port 80');
36+
console.log(`Starting server on port 80 in ${app.get('env')} mode`);
3737
});
3838

3939
export default app;

helpers/mu/sparql.js

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,13 +48,36 @@ function sparqlEscapeBool( value ){
4848
return value ? '"true"^^xsd:boolean' : '"false"^^xsd:boolean';
4949
};
5050

51+
function sparqlEscape( value, type ){
52+
switch(type) {
53+
case 'string':
54+
return sparqlEscapeString(value);
55+
case 'uri':
56+
return sparqlEscapeUri(value);
57+
case 'bool':
58+
return sparqlEscapeBool(value);
59+
case 'int':
60+
return sparqlEscapeInt(value);
61+
case 'float':
62+
return sparqlEscapeFloat(value);
63+
case 'date':
64+
return sparqlEscapeDate(value);
65+
case 'dateTime':
66+
return sparqlEscapeDateTime(value);
67+
default:
68+
console.error(`WARN: Unknown escape type '${type}'. Escaping as string`);
69+
return sparqlEscapeString(value);
70+
}
71+
}
72+
5173
//==-- exports --==//
5274
const exports = {
5375
newSparqlClient: newSparqlClient,
5476
SPARQL: SPARQL,
5577
sparql: SPARQL,
5678
query: query,
5779
update: update,
80+
sparqlEscape: sparqlEscape,
5881
sparqlEscapeString: sparqlEscapeString,
5982
sparqlEscapeUri: sparqlEscapeUri,
6083
sparqlEscapeInt: sparqlEscapeInt,
@@ -71,6 +94,7 @@ export {
7194
SPARQL as sparql,
7295
query,
7396
update,
97+
sparqlEscape,
7498
sparqlEscapeString,
7599
sparqlEscapeUri,
76100
sparqlEscapeInt,

0 commit comments

Comments
 (0)