Sha256: 9031beb015703f6d8a8a80dab35aa22c6af643f2581c406327f0b0c3b332c36f
Contents?: true
Size: 1019 Bytes
Versions: 19
Compression:
Stored size: 1019 Bytes
Contents
# frozen_string_literal: true require "shopify_cli/thread_pool" require_relative "app_extensions/job" module ShopifyCLI class PartnersAPI class AppExtensions class << self def fetch_apps_extensions(ctx, orgs, type) jobs = apps(orgs).map { |app| AppExtensions::Job.new(ctx, app, type) } consume_jobs!(jobs) patch_apps_with_extensions!(jobs) orgs end private def apps(orgs) orgs.flat_map { |org| org["apps"] } end def consume_jobs!(jobs) thread_pool = ShopifyCLI::ThreadPool.new jobs.each do |job| thread_pool.schedule(job) end thread_pool.shutdown raise_if_any_error(jobs) end def patch_apps_with_extensions!(jobs) jobs.each(&:patch_app_with_extensions!) end def raise_if_any_error(jobs) jobs.find(&:error?).tap { |job| raise job.error if job } end end end end end
Version data entries
19 entries across 19 versions & 1 rubygems