UNPKG

node-gxpublic

Version:

Implementación de GxPublic para NodeJS

71 lines (63 loc) • 1.81 kB
/** * @module index * @license MIT * @version 15/10/2020 */ 'use strict'; // 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) }