From fe541e9cde7ddb3615a243e51e86e3d3a3c9534a Mon Sep 17 00:00:00 2001 From: Alexander Zech Date: Tue, 8 Nov 2022 17:18:51 -0800 Subject: [PATCH 1/2] chore: return default flavor if entity cannot be found --- src/executable.js | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/src/executable.js b/src/executable.js index 7286bcc..ffc7b60 100644 --- a/src/executable.js +++ b/src/executable.js @@ -1,14 +1,11 @@ -import { mix } from "mixwith"; import { NamedDefaultableInMemoryEntity, RuntimeItemsMixin } from "@exabyte-io/code.js/dist/entity"; +import { mix } from "mixwith"; + import { Flavor } from "./flavor"; export class Executable extends mix(NamedDefaultableInMemoryEntity).with(RuntimeItemsMixin) { static Flavor = Flavor; - constructor(config) { - super(config); - } - toJSON(exclude) { return super.toJSON(["flavors"].concat(exclude)); } @@ -18,18 +15,18 @@ export class Executable extends mix(NamedDefaultableInMemoryEntity).with(Runtime } get flavors() { - return Object.keys(this.flavorsTree).map(key => { - return this.constructor.Flavor.create( - Object.assign({}, this.flavorsTree[key], {name: key, executable: this}) - ); + return Object.keys(this.flavorsTree).map((key) => { + return this.constructor.Flavor.create({ + ...this.flavorsTree[key], + name: key, + executable: this, + }); }); } get flavorsFromTree() { - return Object.keys(this.flavorsTree).map(key => { - return new this.constructor.Flavor( - Object.assign({}, this.flavorsTree[key], {name: key}) - ); + return Object.keys(this.flavorsTree).map((key) => { + return new this.constructor.Flavor({ ...this.flavorsTree[key], name: key }); }); } @@ -38,11 +35,15 @@ export class Executable extends mix(NamedDefaultableInMemoryEntity).with(Runtime } getFlavorByName(name) { - return this.getEntityByName(this.flavors, "flavor", name); + let flavor = this.getEntityByName(this.flavors, "flavor", name); + if (!flavor) { + console.warn(`Could not find flavor '${name}'! Using default instead.`); + flavor = this.defaultFlavor; + } + return flavor; } getFlavorByConfig(config) { return config ? this.getFlavorByName(config.name) : this.defaultFlavor; } - } From 917540046907aefcce0f7cb8485973ebff907255 Mon Sep 17 00:00:00 2001 From: Alexander Zech Date: Tue, 8 Nov 2022 17:31:28 -0800 Subject: [PATCH 2/2] chore: use different method to extract default flavor --- src/executable.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/executable.js b/src/executable.js index ffc7b60..8b09eb8 100644 --- a/src/executable.js +++ b/src/executable.js @@ -38,7 +38,7 @@ export class Executable extends mix(NamedDefaultableInMemoryEntity).with(Runtime let flavor = this.getEntityByName(this.flavors, "flavor", name); if (!flavor) { console.warn(`Could not find flavor '${name}'! Using default instead.`); - flavor = this.defaultFlavor; + flavor = this.getEntityByName(this.flavors, "flavor", undefined); // extracts default flavor } return flavor; }