sql-file-parser
v1.0.1
Published
Parse .sql files for use with SQL queries
Downloads
6
Readme
sql-file-parser
Takes in directories where you write your .sql
files, and returns a queryMap for easy use with popular packages such as pg
.
Example usage:
NOTE: files should be in UTF8 format, otherwise you may need to do some further formatting.
Imagine you have a file structure such as this.
your-awesome-project/
|-- queries/
|-- abstract.sql
|-- users/
|-- upsertUser.sql
|-- orders/
|-- getAllOrders.sql
|-- na/
|-- upsertNaOrders.sql
|-- functions/
|-- awesomeFunction.sql
import { getQueryMap } from 'sql-file-parser';
// -------------- Example of how to get relative path, you can do this anyway you please :)
import { dirname, join } from 'path';
import { fileURLToPath } from 'url';
const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);
// ----------------
const queryMap = await getQueryMap([
join(__dirname, 'queries'),
join(__dirname, 'functions'),
...
]);
// Output
QueryMap {
[filename: string]: query <String>
}
queryMap = {
'queries/abstract' : 'abstract.sql contents',
'queries/users/upsertUser': 'upsertUser.sql contents',
'queries/orders/getAllOrders': 'getAllOrders.sql contents',
'queries/orders/na/upsertNaOrders': 'upsertNaOrders.sql contents',
'functions/awesomeFunction': 'aweomseFunction.sql contents'
};
// example usage with your pg client
const myQueryData = (await client.query(queryMap['queries/abstract'], [argument, ...]));