backend-plus 2.0.0-rc.16 → 2.0.0-rc.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/backend-plus.d.ts +1 -1
- package/lib/backend-plus.js +16 -6
- package/lib/procedures-table.js +3 -0
- package/package.json +2 -2
package/lib/backend-plus.d.ts
CHANGED
|
@@ -184,7 +184,7 @@ export type FieldDefinition = EditableDbDefinition & {
|
|
|
184
184
|
serverSide?:boolean /* default:!clientSide if the value is retrived from the database */
|
|
185
185
|
inTable?:boolean /* default:!clientSide && !sql.fields[...].expr. Is a real fisical field in the table */
|
|
186
186
|
/* sizeByte?:number deprecated size in bytes for numbers */
|
|
187
|
-
|
|
187
|
+
allowEmptyText?:boolean /* if a text field accepts '' as a valid value */
|
|
188
188
|
mobileInputType?:string
|
|
189
189
|
extraRow?:number
|
|
190
190
|
inexactNumber?:number /* default:depends on typeName if = means abs(x-v)<espilon
|
package/lib/backend-plus.js
CHANGED
|
@@ -2978,22 +2978,32 @@ AppBackend.prototype.dumpDbSchemaPartial = async function dumpDbSchemaPartial(pa
|
|
|
2978
2978
|
lines[0][0]=lines[0][0].replace('\ufeff','')
|
|
2979
2979
|
}
|
|
2980
2980
|
rows=lines.slice(1);
|
|
2981
|
+
var filteredFieldDef = lines[0].filter(filterField);
|
|
2981
2982
|
if(tablesWithStrictSequence[tableName]){
|
|
2982
2983
|
var dataString="COPY "+db.quoteIdent(tableName)+" ("+
|
|
2983
|
-
|
|
2984
|
+
filteredFieldDef.map(db.quoteIdent).join(', ')+
|
|
2984
2985
|
') FROM stdin;\n'+
|
|
2985
2986
|
rows.map(function(line){
|
|
2986
|
-
return line.filter(function(_,i){ return filterField(lines[0][i]);}).map(function(value){
|
|
2987
|
-
|
|
2987
|
+
return line.filter(function(_,i){ return filterField(lines[0][i]);}).map(function(value,i){
|
|
2988
|
+
var def = tableDef.field[filteredFieldDef[i]];
|
|
2989
|
+
return value==='' ? (
|
|
2990
|
+
def.allowEmptyText && ('nullable' in def) && !def.nullable ? '' : '\\N'
|
|
2991
|
+
): value.replace(/\\/g,'\\\\').replace(/\t/g,'\\t').replace(/\n/g,'\\n').replace(/\r/g,'\\r');
|
|
2988
2992
|
}).join('\t')+'\n';
|
|
2989
2993
|
}).join('')+'\\.\n';
|
|
2990
2994
|
}else{
|
|
2991
2995
|
var dataString="insert into "+db.quoteIdent(tableName)+" ("+
|
|
2992
|
-
|
|
2996
|
+
filteredFieldDef.map(db.quoteIdent).join(', ')+
|
|
2993
2997
|
') values\n'+
|
|
2994
2998
|
rows.map(function(line){
|
|
2995
|
-
return "("+line.filter(function(_,i){ return filterField(lines[0][i]);}).map(function(value){
|
|
2996
|
-
|
|
2999
|
+
return "("+line.filter(function(_,i){ return filterField(lines[0][i]);}).map(function(value,i){
|
|
3000
|
+
var def = tableDef.field[filteredFieldDef[i]];
|
|
3001
|
+
if(def == null) {
|
|
3002
|
+
throw Error("no se encuentra la columna "+filteredFieldDef[i]+" en "+tableName);
|
|
3003
|
+
}
|
|
3004
|
+
return value==='' ? (
|
|
3005
|
+
def.allowEmptyText && ('nullable' in def) && !def.nullable ? "''" : 'null'
|
|
3006
|
+
) : db.quoteNullable(value);
|
|
2997
3007
|
}).join(', ')+")";
|
|
2998
3008
|
}).join(',\n')+';\n';
|
|
2999
3009
|
}
|
package/lib/procedures-table.js
CHANGED
|
@@ -823,6 +823,9 @@ ProcedureTables = [
|
|
|
823
823
|
if(value != null && parameters.skipUnknownFieldsAtImport){
|
|
824
824
|
value = value.replace(/(\s|\u00A0)+/g,' ').trim()
|
|
825
825
|
}
|
|
826
|
+
if (value == null && field.allowEmptyText && ('nullable' in field) && !field.nullable ) {
|
|
827
|
+
value = ''
|
|
828
|
+
}
|
|
826
829
|
newRow[field.name]=value;
|
|
827
830
|
}
|
|
828
831
|
});
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "backend-plus",
|
|
3
3
|
"description": "Backend for the anti Pareto rule",
|
|
4
|
-
"version": "2.0.0-rc.
|
|
4
|
+
"version": "2.0.0-rc.17",
|
|
5
5
|
"author": "Codenautas <codenautas@googlegroups.com>",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"repository": "codenautas/backend-plus",
|
|
@@ -82,7 +82,7 @@
|
|
|
82
82
|
"@types/js-yaml": "^4.0.9",
|
|
83
83
|
"@types/mocha": "^10.0.6",
|
|
84
84
|
"@types/multiparty": "~0.0.36",
|
|
85
|
-
"@types/node": "^20.
|
|
85
|
+
"@types/node": "^20.14.0",
|
|
86
86
|
"@types/nodemailer": "^6.4.15",
|
|
87
87
|
"@types/numeral": "~2.0.5",
|
|
88
88
|
"@types/session-file-store": "^1.2.5",
|