0.4.6 • Published 9 years ago
rain-util v0.4.6
rain-util
generator based toolkit for consuming apis, accessing postgres, and managing filesystem
npm i rain-util
const $util = require('rain-util');
for fast prototyping. use sub-packages if only a subset is needed
- https://github.com/maxmill/rain-util-http
- https://github.com/maxmill/rain-util-download
- https://github.com/maxmill/rain-util-fs
- https://github.com/maxmill/rain-util-postgres
http requests
extends request.js additional properties may be passed as params (httpSignature, multipart, headers)
const api = new $util.http('https://maps.googleapis.com/');
const api2 = new $util.http('https://my.api.com/',
{ 'x-default-header':'its value'},
{httpSignature:{keyId:'rsa-key-1',algorithm='rsa-sha256',signature:'Base64(RSA-SHA256(signing string))'}
);
const req = new $util.http();
const apiResponse = yield mapsApi.get('maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA');
console.log('apiResponse',apiResponse);
req.get('full url');
const api2Response = yield api2.post('another url', requestBody);
postgres
queries, data access objects, transactions, schema data
const conn = { host: 'localhost', db: 'postgres', user: 'postgres', password: 'postgres' };
const $postgres = new $util.postgres(conn); // connection string also acceptable
if($postgres) {
postgres.db.query('SELECT test');
// create a test table
const tableName = 'testers';
const testTable = `DROP TABLE IF EXISTS ${tableName}; CREATE TABLE ${tableName}(id CHARACTER constYING(40))WITH(OIDS=FALSE);ALTER TABLE ${tableName} OWNER TO postgres;`;
yield $postgres.db.query(testTable);
// load created table into $postgres object
$postgres.table(tableName);
// add a record
const recordId = '4a2b';
yield $postgres.tables[`${tableName}`].upsert({id: recordId});
// find created record using dao
const daoRecord = yield $postgres.tables[`${tableName}`].findOne('id = ?', recordId);
// find created record using sql
const findRecordSQL = `SELECT * FROM ${tableName} WHERE id = '${recordId}'`;
const sqlRecord = (yield $postgres.db.query(findRecordSQL)).rows[0];
// add new record
$postgres.tables.books.upsert({id:'4324'})
//within transaction, find new record and then delete it
$postgres.db.transaction(function*() {
let record = yield $postgres.tables[`${tableName}`].findOne('id = ?', '4324');
yield $postgres.dao.delete(record); // delete by model throws if more than one row is affected
yield $postgres.dao.delete('id = 4324'); // delete by query, returns count
});
}
// get schema information
const schema = yield $postgres.schema();
generator utilities
util.genify - (function) convert regular functions into generator functions
yield util.array.(forEach|map|filter|forEachSeries)
file utilities
extends co-fs - all core node fs methods available as generators
$util.fs.download - (file or file array) downloads url(s) to file(s)
$util.fs.upsert - (dir or dir array) creates dir if non-existent (uses mkdirp)
$util.fs.fetch - (file or dir) read file or directory contents
$util.fs.rimraf - (path) yieldable rm -rf
$util.fs.json.(read|write) - (file, obj, options)
requires node 4.2 or higher
credits
0.4.6
9 years ago
0.4.3
9 years ago
0.4.2
9 years ago
0.4.1
9 years ago
0.4.0
9 years ago
0.3.9
9 years ago
0.3.8
9 years ago
0.3.7
9 years ago
0.3.6
9 years ago
0.3.5
9 years ago
0.3.2
9 years ago
0.3.1
10 years ago
0.3.0
10 years ago
0.2.5
10 years ago
0.2.1
10 years ago
0.2.0
10 years ago
0.1.5
10 years ago
0.1.0
10 years ago
0.0.6
10 years ago
0.0.5
10 years ago
0.0.4
10 years ago
0.0.3
10 years ago
0.0.2
10 years ago