From b7c04b4ecce1253d12a4e6913e89c5cd492b379a Mon Sep 17 00:00:00 2001 From: Chris Roberts Date: Wed, 17 Nov 2021 14:56:09 -0800 Subject: [PATCH] Add project caching in mapper --- plugins/commands/serve/mappers/project.rb | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/plugins/commands/serve/mappers/project.rb b/plugins/commands/serve/mappers/project.rb index 290922f5d..e41dac681 100644 --- a/plugins/commands/serve/mappers/project.rb +++ b/plugins/commands/serve/mappers/project.rb @@ -25,12 +25,18 @@ module VagrantPlugins inputs = [].tap do |i| i << Input.new(type: SDK::Args::Project) i << Input.new(type: Broker) + i << Input.new(type: Util::Cacher) end super(inputs: inputs, output: Client::Project, func: method(:converter)) end - def converter(proto, broker) - Client::Project.load(proto, broker: broker) + def converter(proto, broker, cacher) + cid = proto.target.to_s if proto.target.to_s != "" + return cacher[cid] if cid && cacher.registered?(cid) + + project = Client::Project.load(proto, broker: broker) + cacher[cid] = project if cid + project end end