Sha256: 084e16918c39c96d11813ad8546187fcbe97c09dfefa034633eba637e95d6b82

Contents?: true

Size: 1.06 KB

Versions: 14

Compression:

Stored size: 1.06 KB

Contents

# frozen_string_literal: true

module ShopifyCLI
  module Theme
    class DevServer
      class HotReload
        class SectionsIndex
          def initialize(theme)
            @theme = theme
          end

          def section_names_by_type
            index = {}

            files.each do |file|
              section_hash(file).each do |key, value|
                next unless key
                next unless value.is_a?(Hash)
                next unless (type = value&.dig("type"))

                index[type] = [] unless index[type]
                index[type] << key
              end
            end

            index
          end

          private

          def section_hash(file)
            content = JSON.parse(file.read)
            return [] unless content.is_a?(Hash)

            sections = content["sections"]
            return [] if sections.nil?

            sections
          rescue JSON::JSONError
            []
          end

          def files
            @theme.json_files.filter(&:template?)
          end
        end
      end
    end
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
shopify-cli-2.36.0 lib/shopify_cli/theme/dev_server/hot_reload/sections_index.rb
shopify-cli-2.35.0 lib/shopify_cli/theme/dev_server/hot_reload/sections_index.rb
shopify-cli-2.34.0 lib/shopify_cli/theme/dev_server/hot_reload/sections_index.rb
shopify-cli-2.33.1 lib/shopify_cli/theme/dev_server/hot_reload/sections_index.rb
shopify-cli-2.33.0 lib/shopify_cli/theme/dev_server/hot_reload/sections_index.rb
shopify-cli-2.32.1 lib/shopify_cli/theme/dev_server/hot_reload/sections_index.rb
shopify-cli-2.32.0 lib/shopify_cli/theme/dev_server/hot_reload/sections_index.rb
shopify-cli-2.31.0 lib/shopify_cli/theme/dev_server/hot_reload/sections_index.rb
shopify-cli-2.30.0 lib/shopify_cli/theme/dev_server/hot_reload/sections_index.rb
shopify-cli-2.29.0 lib/shopify_cli/theme/dev_server/hot_reload/sections_index.rb
shopify-cli-2.28.0 lib/shopify_cli/theme/dev_server/hot_reload/sections_index.rb
shopify-cli-2.27.0 lib/shopify_cli/theme/dev_server/hot_reload/sections_index.rb
shopify-cli-2.26.0 lib/shopify_cli/theme/dev_server/hot_reload/sections_index.rb
shopify-cli-2.25.0 lib/shopify_cli/theme/dev_server/hot_reload/sections_index.rb