Class: ReactEmailRails::Generators::InstallGenerator
- Inherits:
-
Rails::Generators::Base
- Object
- Rails::Generators::Base
- ReactEmailRails::Generators::InstallGenerator
- Defined in:
- lib/generators/react_email_rails/install_generator.rb
Constant Summary collapse
- JAVASCRIPT_PACKAGES =
[ "react-email-rails", "@react-email/render", "@react-email/components", "react", "react-dom", ].freeze
- PACKAGE_MANAGER_LOCKFILES =
{ "pnpm-lock.yaml" => "pnpm", "yarn.lock" => "yarn", "bun.lock" => "bun", "bun.lockb" => "bun", "package-lock.json" => "npm", }.freeze
- SUPPORTED_PACKAGE_MANAGERS =
["bun", "npm", "pnpm", "yarn"].freeze
- VITE_CONFIG_FILES =
ReactEmailRails::Generators::VITE_CONFIG_FILES
- VITE_IMPORT =
'import { reactEmailRails } from "react-email-rails"'
Instance Method Summary collapse
- #configure_vite ⇒ Object
- #copy_initializer ⇒ Object
- #create_email_directory ⇒ Object
- #install_javascript_dependencies ⇒ Object
Instance Method Details
#configure_vite ⇒ Object
80 81 82 83 84 85 86 87 88 |
# File 'lib/generators/react_email_rails/install_generator.rb', line 80 def configure_vite return if [:skip_vite] if (config = vite_config_path) update_vite_config(config) else template("vite.config.ts", "vite.config.ts") end end |
#copy_initializer ⇒ Object
48 49 50 |
# File 'lib/generators/react_email_rails/install_generator.rb', line 48 def copy_initializer template("initializer.rb", "config/initializers/react_email_rails.rb") end |
#create_email_directory ⇒ Object
90 91 92 |
# File 'lib/generators/react_email_rails/install_generator.rb', line 90 def create_email_directory empty_directory("app/javascript/emails") end |
#install_javascript_dependencies ⇒ Object
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
# File 'lib/generators/react_email_rails/install_generator.rb', line 52 def install_javascript_dependencies return if [:skip_package_install] package = package_json unless package say_status(:skip, "JavaScript dependencies; package.json was not found", :yellow) return end missing = missing_javascript_packages(package) if missing.empty? say_status(:identical, "JavaScript dependencies", :green) return end manager = package_manager(package) unless manager say_status( :skip, "JavaScript dependencies; could not detect npm, pnpm, yarn, or bun", :yellow, ) return end run(javascript_install_command(manager, missing)) end |