From 6c861bfd1fc001a2c03ef8773b7d12241c61861b Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Tue, 9 Apr 2019 16:28:19 +0200 Subject: [PATCH] feat(xen-api): name record classes with types --- packages/xen-api/src/index.js | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/packages/xen-api/src/index.js b/packages/xen-api/src/index.js index 31068b02c..69bb59d58 100644 --- a/packages/xen-api/src/index.js +++ b/packages/xen-api/src/index.js @@ -34,7 +34,7 @@ const EVENT_TIMEOUT = 60 // =================================================================== -const { defineProperties, freeze, keys: getKeys } = Object +const { defineProperties, defineProperty, freeze, keys: getKeys } = Object // ------------------------------------------------------------------- @@ -1023,17 +1023,23 @@ export class Xapi extends EventEmitter { const getObjectByRef = ref => this._objectsByRef[ref] - Record = function(ref, data) { - defineProperties(this, { - $id: { value: data.uuid ?? ref }, - $ref: { value: ref }, - $xapi: { value: xapi }, - }) - for (let i = 0; i < nFields; ++i) { - const field = fields[i] - this[field] = data[field] + Record = defineProperty( + function(ref, data) { + defineProperties(this, { + $id: { value: data.uuid ?? ref }, + $ref: { value: ref }, + $xapi: { value: xapi }, + }) + for (let i = 0; i < nFields; ++i) { + const field = fields[i] + this[field] = data[field] + } + }, + 'name', + { + value: type, } - } + ) const getters = { $pool: getPool } const props = { $type: type }