flamerest 1.0.51 → 1.0.54

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.
Files changed (3) hide show
  1. package/REST.d.ts +7 -0
  2. package/REST.js +26 -5
  3. package/package.json +1 -1
package/REST.d.ts CHANGED
@@ -141,3 +141,10 @@ export function logout(): object;
141
141
  */
142
142
  export function prepare(values: any): Promise<any>;
143
143
 
144
+
145
+ /**
146
+ * Заполнить объект данными, пришедшими из базы, сохраняя оригинальные классы и функции
147
+ * @param object Заполняемый объект
148
+ * @param values Аналогичный объект-источник данных
149
+ */
150
+ export function fillObject(object: any, values: any): void;
package/REST.js CHANGED
@@ -369,7 +369,7 @@ class FLAMEREST {
369
369
  async one(table, IDOrWhere, fields = null, primaryKeyName = 'id') {
370
370
 
371
371
  let where = {};
372
- if (typeof IDOrWhere === 'string' || typeof IDOrWhere === 'number') where = { [primaryKeyName]: id };
372
+ if (typeof IDOrWhere === 'string' || typeof IDOrWhere === 'number') where = { [primaryKeyName]: IDOrWhere };
373
373
  else if (typeof IDOrWhere === 'object') where = IDOrWhere;
374
374
  else throw "Нужно передавать ID или объект";
375
375
 
@@ -441,14 +441,14 @@ class FLAMEREST {
441
441
  // Подготовить значения
442
442
  await this.prepare(values);
443
443
 
444
- if(appendTo === undefined) appendTo = null;
444
+ if (appendTo === undefined) appendTo = null;
445
445
  if (insertAfter === undefined) insertAfter = null;
446
446
  if (insertFirst === undefined) insertFirst = null;
447
447
 
448
448
  return this.request(this.SERVER + '/api/' + this.version + '/' + table + '/update?id=' + ID
449
- + (appendTo!==null ? '&appendTo=' + appendTo : '')
450
- + (insertAfter!==null ? '&insertAfter=' + insertAfter : '')
451
- + (insertFirst!==null ? '&insertFirst=' + insertFirst : '')
449
+ + (appendTo !== null ? '&appendTo=' + appendTo : '')
450
+ + (insertAfter !== null ? '&insertAfter=' + insertAfter : '')
451
+ + (insertFirst !== null ? '&insertFirst=' + insertFirst : '')
452
452
  , JSON.stringify(values), 'PATCH');
453
453
  }
454
454
 
@@ -561,6 +561,27 @@ class FLAMEREST {
561
561
  })
562
562
  }
563
563
 
564
+ /**
565
+ * Заполнить существующий объект пришедшими из БД данными
566
+ * сохраняя при этом оригинальные классы и функции
567
+ * @param {*} object
568
+ * @param {*} values
569
+ */
570
+ fillObject(object, values) {
571
+ for (let prop in object) {
572
+
573
+ // добавляем только те объекты, что уже созданы в сущности
574
+ if (!values.hasOwnProperty(prop)) continue;
575
+
576
+ // объекты проходим рекурсивно
577
+ if (typeof values[prop] === 'object' && typeof object[prop] === 'object' && values[prop] !== null && typeof object[prop] !== null) { this.fillObject(object[prop], values[prop]); continue }
578
+
579
+ // тут остались все обычные типы - записываем
580
+ object[prop] = values[prop];
581
+
582
+ }
583
+ }
584
+
564
585
  }
565
586
 
566
587
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "flamerest",
3
- "version": "1.0.51",
3
+ "version": "1.0.54",
4
4
  "description": "",
5
5
  "main": "REST.js",
6
6
  "typings": "./REST.d.ts",