fix(basic.gblib): Allow MERGE keyword in storage #380. @othonlima

This commit is contained in:
Rodrigo Rodriguez 2024-01-14 13:58:59 -03:00
parent 86313b7684
commit aa80f485c7
3 changed files with 22 additions and 10 deletions

View file

@ -9,10 +9,11 @@ import { GBUtil } from './dist/src/util.js';
// Displays version of Node JS being used at runtime and others attributes.
await GBUtil.sleep(80);
console.log(``);
console.log(``);
console.log(``);
chalkAnimation.karaoke(`
await chalkAnimation.karaoke(`
®

View file

@ -1205,8 +1205,7 @@ export class KeywordsExpressions {
/^\s*set\s*(.*)/gim,
($0, $1, $2) => {
const params = this.getParams($1, ['file', 'address', 'value']);
const items = KeywordsExpressions.splitParamsButIgnoreCommasInDoublequotes($1);
return `${items[0]} = await sys.set ({pid: pid, handle: page, ${params}})`;
return `await sys.set ({pid: pid, handle: page, ${params}})`;
}
];
keywords[i++] = [

View file

@ -738,10 +738,23 @@ export class SystemKeywords {
GBLog.info(`BASIC: Saving batch to storage '${table}' (SAVE).`);
const definition = this.getTableFromName(table, min);
const rowsDest = [];
rows.forEach(row => {
const dst = {};
let i = 0;
Object.keys(row).forEach(column => {
const field = column.charAt(0).toUpperCase() + column.slice(1);
dst[field] = row[column];
i++;
});
rowsDest.push(dst);
});
await retry(
async (bail) => {
await definition.bulkCreate(rows);
await definition.bulkCreate(GBUtil.caseInsensitive(rowsDest));
},
{
retries: 5,
@ -2384,16 +2397,15 @@ export class SystemKeywords {
if (storage) {
let dst = {};
// Uppercases fields.
const dst = {};
let i = 0;
Object.keys(fieldsValues).forEach(fieldSrc => {
const field = fieldsNames[i].charAt(0).toUpperCase() + fieldsNames[i].slice(1);
const name = fieldsNames[i];
const field = name.charAt(0).toUpperCase() + name.slice(1);
dst[field] = fieldsValues[fieldSrc];
i++;
});