Sha256: ce91b207b1447012646aa93a5b0d733b8269a6f123e4dc8dd537692354145c7e

Contents?: true

Size: 1.64 KB

Versions: 6

Compression:

Stored size: 1.64 KB

Contents

# frozen_string_literal: true

module ThemeCheck
  # Reports missing shopify required theme files
  # required templates: https://shopify.dev/tutorials/review-theme-store-requirements-files
  class MissingRequiredTemplateFiles < LiquidCheck
    severity :error
    category :liquid
    doc docs_url(__FILE__)

    REQUIRED_LIQUID_FILES = %w(layout/theme)

    REQUIRED_LIQUID_TEMPLATE_FILES = %w(
      gift_card customers/account customers/activate_account customers/addresses
      customers/login customers/order customers/register customers/reset_password
    ).map { |file| "templates/#{file}" }

    REQUIRED_JSON_TEMPLATE_FILES = %w(
      index product collection cart blog article page list-collections search 404
      password
    ).map { |file| "templates/#{file}" }

    REQUIRED_TEMPLATE_FILES = (REQUIRED_LIQUID_TEMPLATE_FILES + REQUIRED_JSON_TEMPLATE_FILES)

    def on_end
      (REQUIRED_LIQUID_FILES - theme.liquid.map(&:name)).each do |file|
        add_offense("'#{file}.liquid' is missing") do |corrector|
          corrector.create_file(@theme.storage, "#{file}.liquid", "")
        end
      end
      (REQUIRED_TEMPLATE_FILES - (theme.liquid + theme.json).map(&:name)).each do |file|
        add_offense("'#{file}.liquid' or '#{file}.json' is missing") do |corrector|
          if REQUIRED_LIQUID_TEMPLATE_FILES.include?(file)
            corrector.create_file(@theme.storage, "#{file}.liquid", "")
          else
            corrector.create_file(@theme.storage, "#{file}.json", JSON.pretty_generate({
              name: "TODO",
              sections: {},
              order: [],
            }))
          end
        end
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
theme-check-1.15.0 lib/theme_check/checks/missing_required_template_files.rb
theme-check-1.14.0 lib/theme_check/checks/missing_required_template_files.rb
theme-check-1.13.0 lib/theme_check/checks/missing_required_template_files.rb
theme-check-1.12.1 lib/theme_check/checks/missing_required_template_files.rb
theme-check-1.12.0 lib/theme_check/checks/missing_required_template_files.rb
theme-check-1.11.0 lib/theme_check/checks/missing_required_template_files.rb