Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

Traqula logo

A query language transpiler framework for JavaScript

Traqula SPARQL 1.1 generator

npm version

Traqula Generator SPARQL 1.1 is a SPARQL 1.1 query generator for TypeScript. It can generate SPARQL given the AST created by Traqula parser SPARQL 1.1.

Installation

npm install @traqula/generator-sparql-1-1

or

yarn add @traqula/generator-sparql-1-1

Import

Either through ESM import:

import { Generator } from '@traqula/generator-sparql-1-1';

or CJS require:

const Generator = require('@traqula/generator-sparql-1-1').Generator;

Usage

This package contains a Generator that is able to generate SPARQL 1.1 queries:

import { Parser } from '@traqula/parser-sparql-1-1';
import { Generator } from '@traqula/generator-sparql-1-1';
const query = `SELECT * WHERE { ?s ?p ?o }`
const parser = new Parser();
const ast = parser.parse(query)

const generator = new Generator();
const queryString = generator.generate(ast);

Note that a single generator cannot generate multiple queries in parallel.

Configuration

Optionally, the following parameters can be set in to the generator:

  • astFactory: A custom AstFactory that is able to create the various AST nodes. (default: new AstFactory)
  • indentInc: the number of spaces the built-in 'pretty print' mode must print for a single indentation level. (default: 2).
  • origSource: the original query string the ast is constructed from.
  • [traqulaIndentation] from @traqula/core: the current number of spaces to print on a newline. Whenever this number is negative, no newline will be printed. (default: 0)
  • [traqulaNewlineAlternative] from @traqula/core: the character that should be printed instead of a newline in case [traqulaIndentation] is negative. (default: ' ')

Note

To create a generator without pretty print:

import { Generator } from '@traqula/generator-sparql-1-1';
import { traqulaIndentation } from '@traqula/core';
const flatGenerator = new Generator({
  indentInc: 0,
  [traqulaIndentation]: -1,
})

Round-tripping generation

By default, the generator will emit the round tripped query string where possible. In order to create an AST that supports round-tripping, you should make sure the parser is set up correctly.