node-gxpublic
Version:
Implementación de GxPublic para NodeJS
71 lines (63 loc) • 1.81 kB
JavaScript
/**
* @module index
* @license MIT
* @version 15/10/2020
*/
;
// import lib
const adodb = require('node-adodb');
const debug = require('debug')('gxPublic');
debug.color = 6;
/**
* @class gxPublic
*/
class gxPublic {
/**
* @constructor
* @param (string) versionGx
* @param (string) pathKB
*/
constructor(versionGx, pathKb) {
this.versionGx = versionGx;
this.pathKb = pathKb;
const connectionString = 'Provider = '+ versionGx + '; Data Source = ' + pathKb;
debug('connectionString:', connectionString);
this.connection = adodb.open(connectionString);
}
/**
* @method distribute
* @async
* @param (int) model
* @param (string) objectGx
* @param (string) outFile
* @returns (Promise)
*/
async distribute(model, objectGx, outFile) {
debug('cmd:', 'distribute');
debug('model:', model);
debug('objects:', objectGx);
debug('outFile:', outFile);
const connection = this.connection;
const strQuery = 'DISTRIBUTE FROM ' + model.toString() + ' ' + objectGx + ' With (OutputPath="'+ outFile +'",, DistributionFlags=0)';
return connection.query(strQuery);
}
}
/**
* @public
*/
exports = module.exports = {
/**
* @property versions
* @description Lista de versiones soportadas
*/
get versions() {
return {
Genexus61: 'GXPublic.GXPublic.1',
Genexus70: 'GXPublic.GXPublic.2',
Genexus75: 'GXPublic.GXPublic.3',
Genexus80: 'GXPublic.GXPublic.4',
Genexus90: 'GXPublic.GXPublic.5'
};
},
open: (versionGx, pathKb) => new gxPublic(versionGx, pathKb)
}