Sha256: e2fdaab6c89c040d3906104ab94c83cf7420ed0d6fdfbc7605097375d520dd36

Contents?: true

Size: 1.74 KB

Versions: 10

Compression:

Stored size: 1.74 KB

Contents

require 'shopify_cli'

module Node
  module Commands
    class Generate
      class Page < ShopifyCli::SubCommand
        PAGE_TYPES = {
          'empty-state' => './node_modules/.bin/generate-node-app empty-state-page',
          'two-column' => './node_modules/.bin/generate-node-app two-column-page',
          'annotated' => './node_modules/.bin/generate-node-app settings-page',
          'list' => './node_modules/.bin/generate-node-app list-page',
        }

        options do |parser, flags|
          parser.on('--type=TYPE') do |t|
            flags[:type] = t.downcase
          end
        end

        def call(args, _name)
          name = args.first
          flag = options.flags[:type]
          unless name
            @ctx.puts(self.class.help)
            return
          end

          selected_type = if flag
            unless PAGE_TYPES.key?(flag)
              @ctx.abort(@ctx.message('node.generate.page.error.invalid_page_type'))
            end
            PAGE_TYPES[flag]
          else
            CLI::UI::Prompt.ask(@ctx.message('node.generate.page.type_select')) do |handler|
              PAGE_TYPES.each do |key, value|
                handler.option(key) { value }
              end
            end
          end

          spin_group = CLI::UI::SpinGroup.new
          spin_group.add(@ctx.message('node.generate.page.generating', selected_type)) do |spinner|
            Node::Commands::Generate.run_generate("#{selected_type} #{name}", name, @ctx)
            spinner.update_title(@ctx.message('node.generate.page.generated', name, name))
          end
          spin_group.wait
        end

        def self.help
          ShopifyCli::Context.message('node.generate.page.help', ShopifyCli::TOOL_NAME)
        end
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
shopify-cli-1.0.5 lib/project_types/node/commands/generate/page.rb
shopify-cli-1.0.4 lib/project_types/node/commands/generate/page.rb
shopify-cli-1.0.3 lib/project_types/node/commands/generate/page.rb
shopify-cli-1.0.2 lib/project_types/node/commands/generate/page.rb
shopify-cli-1.0.1 lib/project_types/node/commands/generate/page.rb
shopify-cli-1.0.0 lib/project_types/node/commands/generate/page.rb
shopify-cli-0.9.3 lib/project_types/node/commands/generate/page.rb
shopify-cli-0.9.2 lib/project_types/node/commands/generate/page.rb
shopify-cli-0.9.1 lib/project_types/node/commands/generate/page.rb
shopify-cli-0.9.0 lib/project_types/node/commands/generate/page.rb