UNPKG

sap-hdb-promisfied

Version:

Promise wrapper for hdb without any dependency to @sap/hana-client

126 lines (115 loc) 4.33 kB
const dbClass = require('./index.cjs') const xsenv = require("@sap/xsenv") /** * Test #1 */ async function test1() { let envFile = dbClass.resolveEnv(null) dbClass.createConnectionFromEnv(envFile) .then((/** @type {any} */ client) => { let db = new dbClass(client) db.preparePromisified(`SELECT SESSION_USER, CURRENT_SCHEMA FROM "DUMMY"`) .then((/** @type {any} */ statement) => { db.statementExecPromisified(statement, []) .then(/** @type {any} */ (/** @type {any} */ results) => { console.table(results) db.destroyClient() }) .catch(/** @type {any} */ (/** @type {{ toString: () => any; }} */ err) => { console.error(`ERROR: ${err.toString()}`) }) }) .catch((/** @type {{ toString: () => any; }} */ err) => { console.error(`ERROR: ${err.toString()}`) }) }) .catch((/** @type {{ toString: () => any; }} */ err) => { console.error(`ERROR: ${err.toString()}`) }) } //test1() /** * Test #2 */ async function test2() { try { let db = new dbClass(await dbClass.createConnectionFromEnv(dbClass.resolveEnv(null))) const statement = await db.preparePromisified(`SELECT SESSION_USER, CURRENT_SCHEMA FROM "DUMMY"`) const results = await db.statementExecPromisified(statement, []) console.table(results) db.destroyClient() } catch (/** @type {any} */ err) { console.error(`ERROR: ${err.toString()}`) } } //test2() /** * Test #2.1 Current Schema */ async function test2_1() { try { let db = new dbClass(await dbClass.createConnectionFromEnv(dbClass.resolveEnv(null))) let schema = await db.schemaCalc({schema: '**CURRENT_SCHEMA**'}, db) console.log(`Current Schema: ${schema}`) db.destroyClient() } catch (/** @type {any} */ err) { console.error(`ERROR: ${err.toString()}`) } } //test2_1() /** * Test #2.2 */ async function test2_2() { try { let db = new dbClass(await dbClass.createConnectionFromEnv(dbClass.resolveEnv(null))) const statement = await db.preparePromisified(`select top 50 SCHEMA_NAME, TABLE_NAME from TABLES WHERE SCHEMA_NAME = ?`) const results = await db.statementExecPromisified(statement, ['SYS']) console.table(results) db.destroyClient() } catch (/** @type {any} */ err) { console.error(`ERROR: ${err.toString()}`) } } //test2_2() /** * Test #3 */ async function test3() { try { let db = new dbClass(await dbClass.createConnectionFromEnv(dbClass.resolveEnv(null))) let sp = await db.loadProcedurePromisified('SYS', 'IS_VALID_PASSWORD') let output = await db.callProcedurePromisified(sp, {PASSWORD: "TEST"}) console.table(output) db.destroyClient() } catch (/** @type {any} */ err) { console.error(`ERROR: ${err.toString()}`) } } //test3() async function testUps() { try { xsenv.loadEnv() let userProvidedHanaEnv = xsenv.serviceCredentials({ label: 'user-provided' }) //console.log("credentials for user provided") //console.log(userProvidedHanaEnv) let connectionDetails = { hana: userProvidedHanaEnv } //console.log(connectionDetails.hana) //let db = new dbClass(await dbClass.createConnection(dbClass.resolveEnv())); const db = new dbClass(await dbClass.createConnection(connectionDetails)) const statement = await db.preparePromisified(`SELECT SESSION_USER, CURRENT_SCHEMA FROM "DUMMY"`) const results = await db.statementExecPromisified(statement, []) console.table(results) db.destroyClient() } catch (/** @type {any} */ err) { console.error(`ERROR: ${err.toString()}`) } } test1() test2_1() test2_2() test3() testUps()