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 =
[ "vite.config.ts", "vite.config.mts", "vite.config.js", "vite.config.mjs", "vite.config.cts", "vite.config.cjs", ].freeze
- 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
86 87 88 89 90 91 92 93 94 |
# File 'lib/generators/react_email_rails/install_generator.rb', line 86 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
54 55 56 |
# File 'lib/generators/react_email_rails/install_generator.rb', line 54 def copy_initializer template("initializer.rb", "config/initializers/react_email_rails.rb") end |
#create_email_directory ⇒ Object
96 97 98 |
# File 'lib/generators/react_email_rails/install_generator.rb', line 96 def create_email_directory empty_directory("app/javascript/emails") end |
#install_javascript_dependencies ⇒ Object
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
# File 'lib/generators/react_email_rails/install_generator.rb', line 58 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 |