jets 4.0.17 → 5.0.0.beta1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +5 -1
- data/CHANGELOG.md +52 -23
- data/Gemfile +1 -5
- data/LICENSE.txt +1 -1
- data/Rakefile +3 -3
- data/engines/internal/app/controllers/jets/application_controller.rb +28 -0
- data/engines/internal/app/controllers/jets/bare_controller.rb +6 -0
- data/engines/internal/app/controllers/jets/health_controller.rb +55 -0
- data/engines/internal/app/controllers/jets/info_controller.rb +45 -0
- data/{lib/jets → engines}/internal/app/controllers/jets/mailers_controller.rb +12 -14
- data/{lib/jets → engines}/internal/app/controllers/jets/mount_controller.rb +6 -10
- data/{lib/jets → engines}/internal/app/controllers/jets/public_controller.rb +6 -2
- data/engines/internal/app/controllers/jets/welcome_controller.rb +9 -0
- data/{lib/jets → engines}/internal/app/functions/jets/base_path.rb +2 -1
- data/{lib/jets → engines}/internal/app/functions/jets/base_path_mapping.rb +26 -6
- data/engines/internal/app/jobs/jets/preheat_job.rb +67 -0
- data/engines/internal/app/views/jets/info/properties.html.erb +1 -0
- data/engines/internal/app/views/jets/info/routes.html.erb +10 -0
- data/{lib/jets → engines}/internal/app/views/jets/mailers/email.html.erb +37 -17
- data/engines/internal/app/views/jets/mailers/index.html.erb +8 -0
- data/engines/internal/app/views/jets/mailers/mailer.html.erb +6 -0
- data/{lib/jets/commands/templates/skeleton/public/index.html.tt → engines/internal/app/views/jets/welcome/index.html.erb} +8 -4
- data/engines/internal/app/views/layouts/application.html.erb +51 -0
- data/engines/internal/lib/internal/actiondispatch.rb +39 -0
- data/engines/internal/lib/internal/actionmailer.rb +51 -0
- data/engines/internal/lib/internal/actionview.rb +152 -0
- data/engines/internal/lib/internal/activerecord.rb +37 -0
- data/engines/internal/lib/internal/activesupport.rb +47 -0
- data/engines/internal/lib/internal/engine.rb +13 -0
- data/engines/internal/lib/internal/i18n_engine.rb +19 -0
- data/engines/internal/lib/internal/jets_controller.rb +46 -0
- data/engines/internal/lib/internal/overrides/debug_exceptions.rb +40 -0
- data/engines/internal/lib/internal/templates/rescues/_trace.html.erb +62 -0
- data/engines/internal/lib/internal/templates/rescues/_trace.text.erb +9 -0
- data/engines/internal/lib/internal/turbines/asset_tag_helper.rb +70 -0
- data/engines/internal/lib/internal/turbines/helpers.rb +18 -0
- data/engines/internal/lib/internal/turbines/routes_helpers.rb +42 -0
- data/exe/jets +1 -10
- data/jets.gemspec +29 -27
- data/lib/jets/app_loader.rb +77 -0
- data/lib/jets/application/bootstrap.rb +100 -0
- data/lib/jets/application/configuration/defaults.rb +256 -0
- data/lib/jets/application/configuration.rb +494 -0
- data/lib/jets/application/default_middleware_stack.rb +140 -0
- data/lib/jets/application/dummy_erb_compiler.rb +18 -0
- data/lib/jets/application/finisher.rb +266 -0
- data/lib/jets/application/routes_reloader.rb +80 -0
- data/lib/jets/application.rb +515 -198
- data/lib/jets/authorizer/base.rb +1 -0
- data/lib/jets/authorizer/dsl.rb +15 -11
- data/lib/jets/authorizer/helpers/iam_helper.rb +13 -11
- data/lib/jets/autoloaders/gem.rb +70 -0
- data/lib/jets/autoloaders/inflector.rb +21 -0
- data/lib/jets/autoloaders.rb +38 -101
- data/lib/jets/aws_services/stack_status.rb +1 -1
- data/lib/jets/backtrace_cleaner.rb +27 -0
- data/lib/jets/booter.rb +29 -176
- data/lib/jets/builders/code_builder.rb +45 -117
- data/lib/jets/builders/code_size.rb +1 -0
- data/lib/jets/builders/gem_replacer.rb +5 -6
- data/lib/jets/builders/handler_generator.rb +34 -14
- data/lib/jets/builders/lambda_layer.rb +2 -7
- data/lib/jets/builders/purger.rb +1 -1
- data/lib/jets/builders/rack_packager.rb +1 -1
- data/lib/jets/builders/ruby_packager.rb +32 -21
- data/lib/jets/builders/shim_vars/app.rb +10 -6
- data/lib/jets/builders/templates/handlers/one_lambda_for_all_controllers.rb +33 -0
- data/lib/jets/builders/templates/handlers/one_lambda_per_controller.rb +20 -0
- data/lib/jets/builders/templates/{handler.rb → handlers/one_lambda_per_method.rb} +6 -0
- data/lib/jets/bundle.rb +2 -9
- data/lib/jets/cfn/base.rb +82 -0
- data/lib/jets/cfn/builder/api/base.rb +12 -0
- data/lib/jets/cfn/{builders/api_deployment_builder.rb → builder/api/deployment.rb} +10 -20
- data/lib/jets/cfn/{builders/api_gateway_builder.rb → builder/api/gateway.rb} +14 -37
- data/lib/jets/cfn/builder/api/mapping.rb +54 -0
- data/lib/jets/cfn/builder/api/methods.rb +72 -0
- data/lib/jets/cfn/builder/api/paged.rb +30 -0
- data/lib/jets/cfn/builder/api/pages/base.rb +105 -0
- data/lib/jets/cfn/builder/api/pages/methods.rb +17 -0
- data/lib/jets/cfn/builder/api/pages/page.rb +19 -0
- data/lib/jets/cfn/builder/api/pages/resources.rb +21 -0
- data/lib/jets/cfn/builder/api/resources.rb +40 -0
- data/lib/jets/cfn/{builders/authorizer_builder.rb → builder/authorizer.rb} +16 -19
- data/lib/jets/cfn/builder/controller.rb +28 -0
- data/lib/jets/cfn/builder/function.rb +9 -0
- data/lib/jets/cfn/{builders → builder}/interface.rb +45 -51
- data/lib/jets/cfn/builder/job.rb +10 -0
- data/lib/jets/cfn/builder/nested.rb +130 -0
- data/lib/jets/cfn/builder/one_controller.rb +53 -0
- data/lib/jets/cfn/{builders/parent_builder → builder/parent}/stagger.rb +1 -1
- data/lib/jets/cfn/{builders/parent_builder.rb → builder/parent.rb} +54 -54
- data/lib/jets/cfn/builder/post_process.rb +25 -0
- data/lib/jets/cfn/{builders/rule_builder.rb → builder/rule.rb} +4 -8
- data/lib/jets/cfn/{builders/shared_builder.rb → builder/shared.rb} +4 -3
- data/lib/jets/cfn/{builders → builder}/util/source.rb +1 -1
- data/lib/jets/{commands/build.rb → cfn/builder.rb} +50 -78
- data/lib/jets/cfn/deployment.rb +45 -0
- data/lib/jets/cfn/download.rb +39 -0
- data/lib/jets/cfn/params/api/base.rb +39 -0
- data/lib/jets/cfn/params/api/cors.rb +10 -0
- data/lib/jets/cfn/params/api/methods.rb +69 -0
- data/lib/jets/cfn/params/api/resources.rb +28 -0
- data/lib/jets/{resource/child_stack/common_parameters.rb → cfn/params/common.rb} +3 -3
- data/lib/jets/{resource → cfn/resource}/api_gateway/authorizer.rb +21 -21
- data/lib/jets/cfn/resource/api_gateway/base_path/function.rb +57 -0
- data/lib/jets/{resource → cfn/resource}/api_gateway/base_path/mapping.rb +13 -12
- data/lib/jets/cfn/resource/api_gateway/base_path/role.rb +70 -0
- data/lib/jets/{resource → cfn/resource}/api_gateway/deployment.rb +13 -20
- data/lib/jets/{resource → cfn/resource}/api_gateway/domain_name.rb +11 -11
- data/lib/jets/{resource → cfn/resource}/api_gateway/method/authorization.rb +1 -1
- data/lib/jets/cfn/resource/api_gateway/method.rb +92 -0
- data/lib/jets/{resource → cfn/resource}/api_gateway/resource.rb +14 -10
- data/lib/jets/cfn/resource/api_gateway/resource_id.rb +25 -0
- data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/change_detection.rb +1 -1
- data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/logical_id/message.rb +1 -1
- data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/logical_id.rb +1 -1
- data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/routes/change/base.rb +4 -3
- data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/routes/change/media_types.rb +2 -2
- data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/routes/change/page.rb +5 -5
- data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/routes/change/to.rb +8 -3
- data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/routes/change/variable.rb +2 -2
- data/lib/jets/cfn/resource/api_gateway/rest_api/routes/change.rb +21 -0
- data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/routes/collision/variable_exception.rb +1 -1
- data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/routes/collision.rb +1 -1
- data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/routes.rb +1 -1
- data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api.rb +12 -12
- data/lib/jets/{resource → cfn/resource}/associated.rb +1 -1
- data/lib/jets/{resource → cfn/resource}/config/config_rule.rb +18 -18
- data/lib/jets/{resource → cfn/resource}/config/managed_rule.rb +5 -5
- data/lib/jets/{resource → cfn/resource}/events/rule.rb +10 -10
- data/lib/jets/{resource → cfn/resource}/iam/application_role.rb +4 -4
- data/lib/jets/{resource → cfn/resource}/iam/base_role_definition.rb +15 -15
- data/lib/jets/{resource → cfn/resource}/iam/class_role.rb +5 -5
- data/lib/jets/{resource → cfn/resource}/iam/function_role.rb +6 -6
- data/lib/jets/{resource → cfn/resource}/iam/managed_policy.rb +1 -1
- data/lib/jets/{resource → cfn/resource}/iam/policy.rb +8 -8
- data/lib/jets/{resource → cfn/resource}/iam/policy_document.rb +10 -9
- data/lib/jets/{resource → cfn/resource}/iot/topic_rule.rb +10 -10
- data/lib/jets/{resource → cfn/resource}/lambda/event_source_mapping.rb +9 -9
- data/lib/jets/cfn/resource/lambda/function/controller.rb +21 -0
- data/lib/jets/{resource → cfn/resource}/lambda/function/environment.rb +4 -5
- data/lib/jets/cfn/resource/lambda/function.rb +266 -0
- data/lib/jets/{resource → cfn/resource}/lambda/gem_layer.rb +2 -2
- data/lib/jets/{resource → cfn/resource}/lambda/layer_version.rb +10 -10
- data/lib/jets/cfn/resource/lambda/permission.rb +51 -0
- data/lib/jets/cfn/resource/logs/subscription_filter.rb +31 -0
- data/lib/jets/cfn/resource/nested/api/base.rb +4 -0
- data/lib/jets/cfn/resource/nested/api/deployment.rb +53 -0
- data/lib/jets/cfn/resource/nested/api/gateway.rb +15 -0
- data/lib/jets/cfn/resource/nested/api/mapping.rb +33 -0
- data/lib/jets/cfn/resource/nested/api/methods.rb +30 -0
- data/lib/jets/cfn/resource/nested/api/page.rb +8 -0
- data/lib/jets/cfn/resource/nested/api/resources.rb +22 -0
- data/lib/jets/{resource/child_stack → cfn/resource/nested}/app_class.rb +15 -48
- data/lib/jets/{resource/child_stack → cfn/resource/nested}/authorizer.rb +8 -14
- data/lib/jets/cfn/resource/nested/base.rb +38 -0
- data/lib/jets/cfn/resource/nested/one_controller.rb +48 -0
- data/lib/jets/{resource/child_stack → cfn/resource/nested}/shared.rb +10 -16
- data/lib/jets/cfn/resource/one/function.rb +66 -0
- data/lib/jets/cfn/resource/one/permission.rb +17 -0
- data/lib/jets/{resource → cfn/resource}/replacer.rb +26 -27
- data/lib/jets/{resource → cfn/resource}/route53/record_set.rb +18 -18
- data/lib/jets/{resource → cfn/resource}/s3/bucket.rb +4 -4
- data/lib/jets/cfn/resource/s3/jets_bucket.rb +68 -0
- data/lib/jets/{resource → cfn/resource}/sns/subscription.rb +8 -8
- data/lib/jets/{resource → cfn/resource}/sns/topic.rb +10 -10
- data/lib/jets/{resource → cfn/resource}/sns/topic_policy.rb +13 -13
- data/lib/jets/{resource → cfn/resource}/sqs/queue.rb +5 -5
- data/lib/jets/{resource → cfn/resource}/standardizer.rb +8 -9
- data/lib/jets/cfn/resource.rb +8 -0
- data/lib/jets/cfn/ship.rb +20 -19
- data/lib/jets/cfn/template.rb +89 -0
- data/lib/jets/cfn/upload.rb +40 -37
- data/lib/jets/cli.rb +28 -210
- data/lib/jets/command/actions.rb +49 -0
- data/lib/jets/command/api_helpers.rb +41 -0
- data/lib/jets/command/aws_helpers.rb +26 -0
- data/lib/jets/command/base.rb +204 -0
- data/lib/jets/command/behavior.rb +83 -0
- data/lib/jets/command/environment_argument.rb +42 -0
- data/lib/jets/command/help/call.md +48 -0
- data/lib/jets/{commands → command}/help/deploy.md +1 -1
- data/lib/jets/command/help/logs.md +21 -0
- data/lib/jets/{commands → command}/help/new.md +3 -4
- data/lib/jets/command/help/projects.md +6 -0
- data/lib/jets/command/help/releases.md +37 -0
- data/lib/jets/command/help/rollback.md +5 -0
- data/lib/jets/command/help/routes.md +15 -0
- data/lib/jets/command/help/stacks.md +6 -0
- data/lib/jets/command/help.rb +17 -0
- data/lib/jets/command/helpers/editor.rb +35 -0
- data/lib/jets/command.rb +133 -0
- data/lib/jets/commands/application/application_command.rb +40 -0
- data/lib/jets/commands/build/build_command.rb +33 -0
- data/lib/jets/commands/call/anonymous_guesser.rb +1 -1
- data/lib/jets/commands/call/autoload_guesser.rb +2 -2
- data/lib/jets/commands/call/base_guesser.rb +4 -4
- data/lib/jets/commands/call/call_command.rb +27 -0
- data/lib/jets/commands/call/caller.rb +184 -0
- data/lib/jets/commands/call/guesser.rb +1 -1
- data/lib/jets/commands/clean/base.rb +1 -1
- data/lib/jets/commands/clean/build.rb +1 -1
- data/lib/jets/commands/clean/clean_command.rb +15 -0
- data/lib/jets/commands/clean/log.rb +1 -1
- data/lib/jets/commands/configure/configure_command.rb +9 -0
- data/lib/jets/commands/console/console_command.rb +38 -0
- data/lib/jets/commands/credentials/USAGE +103 -0
- data/lib/jets/commands/credentials/credentials_command/diffing.rb +51 -0
- data/lib/jets/commands/credentials/credentials_command.rb +139 -0
- data/lib/jets/commands/db/system/change/change_command.rb +24 -0
- data/lib/jets/commands/dbconsole/dbconsole_command.rb +184 -0
- data/lib/jets/commands/degenerate/degenerate_command.rb +21 -0
- data/lib/jets/commands/delete/delete_command.rb +155 -0
- data/lib/jets/commands/{deploy.rb → deploy/deploy_command.rb} +28 -47
- data/lib/jets/commands/dev/dev_command.rb +19 -0
- data/lib/jets/commands/{dotenv.rb → dotenv/dotenv_command.rb} +2 -2
- data/lib/jets/commands/encrypted/USAGE +46 -0
- data/lib/jets/commands/encrypted/encrypted_command.rb +87 -0
- data/lib/jets/commands/gems/gems_command.rb +14 -0
- data/lib/jets/commands/generate/generate_command.rb +95 -0
- data/lib/jets/commands/help/USAGE +20 -0
- data/lib/jets/commands/help/help_command.rb +15 -0
- data/lib/jets/commands/initializers/initializers_command.rb +19 -0
- data/lib/jets/commands/logs/logs_command.rb +45 -0
- data/lib/jets/commands/new/new_command.rb +19 -0
- data/lib/jets/commands/notes/notes_command.rb +30 -0
- data/lib/jets/commands/plugin/plugin_command.rb +45 -0
- data/lib/jets/commands/projects/projects_command.rb +30 -0
- data/lib/jets/commands/rake/rake_command.rb +59 -0
- data/lib/jets/commands/releases/releases_command.rb +72 -0
- data/lib/jets/commands/rollback/rollback_command.rb +41 -0
- data/lib/jets/commands/routes/routes_command.rb +19 -0
- data/lib/jets/commands/runner/runner_command.rb +60 -0
- data/lib/jets/commands/server/server_command.rb +291 -0
- data/lib/jets/commands/stacks/stacks_command.rb +39 -0
- data/lib/jets/commands/status/status_command.rb +9 -0
- data/lib/jets/commands/{url.rb → url/url_command.rb} +37 -14
- data/lib/jets/commands/version/version_command.rb +11 -0
- data/lib/jets/commands.rb +17 -0
- data/lib/jets/configuration.rb +166 -0
- data/lib/jets/controller/base.rb +105 -183
- data/lib/jets/controller/compat/abstract_controller/base.rb +126 -0
- data/lib/jets/controller/compat/action_controller/metal.rb +99 -0
- data/lib/jets/controller/compat/caching.rb +13 -0
- data/lib/jets/controller/compat/future.rb +13 -0
- data/lib/jets/controller/compat/route_set.rb +47 -0
- data/lib/jets/controller/decorate/apigw_stage.rb +39 -0
- data/lib/jets/controller/{authorization.rb → decorate/authorization.rb} +1 -1
- data/lib/jets/controller/decorate/logging.rb +90 -0
- data/lib/jets/controller/decorate/redirecting.rb +16 -0
- data/lib/jets/controller/decorate/url_for.rb +10 -0
- data/lib/jets/controller/{rack/adapter.rb → handler/apigw.rb} +36 -37
- data/lib/jets/controller/handler.rb +41 -0
- data/lib/jets/controller/middleware/main.rb +16 -8
- data/lib/jets/controller/middleware/{local/api_gateway.rb → mimic/apigw.rb} +40 -15
- data/lib/jets/controller/middleware/mimic/lambda_context.rb +44 -0
- data/lib/jets/controller/middleware/{local.rb → mimic.rb} +36 -51
- data/lib/jets/controller/rack_adapter/action.rb +35 -0
- data/lib/jets/controller/{rack → rack_adapter}/env.rb +39 -24
- data/lib/jets/controller/request/compat/params.rb +144 -0
- data/lib/jets/controller/request/compat/request.rb +125 -0
- data/lib/jets/controller/request.rb +35 -18
- data/lib/jets/controller/response/compat/response.rb +67 -0
- data/lib/jets/controller/response.rb +91 -8
- data/lib/jets/core.rb +136 -51
- data/lib/jets/core_ext/kernel.rb +2 -2
- data/lib/jets/core_ext/symbol.rb +5 -0
- data/lib/jets/core_ext.rb +4 -0
- data/lib/jets/dev_caching.rb +44 -0
- data/lib/jets/dotenv/ssm.rb +2 -2
- data/lib/jets/dotenv.rb +2 -1
- data/lib/jets/engine/configuration.rb +96 -0
- data/lib/jets/engine/turbines.rb +23 -0
- data/lib/jets/engine.rb +380 -0
- data/lib/jets/exception_reporting.rb +43 -0
- data/lib/jets/generators/job/job_generator.rb +41 -0
- data/lib/jets/generators/job/templates/event_types/dynamodb.rb.tt +8 -0
- data/lib/jets/generators/job/templates/event_types/iot.rb.tt +8 -0
- data/lib/jets/generators/job/templates/event_types/kinesis.rb.tt +9 -0
- data/lib/jets/generators/job/templates/event_types/log.rb.tt +9 -0
- data/lib/jets/generators/job/templates/event_types/rule.rb.tt +23 -0
- data/lib/jets/generators/job/templates/event_types/s3.rb.tt +11 -0
- data/lib/jets/{generator/templates/active_job/job/templates/job.rb.tt → generators/job/templates/event_types/scheduled.rb.tt} +3 -3
- data/lib/jets/generators/job/templates/event_types/sns.rb.tt +9 -0
- data/lib/jets/generators/job/templates/event_types/sqs.rb.tt +9 -0
- data/lib/jets/generators/overrides/app/USAGE +38 -0
- data/lib/jets/generators/overrides/app/app_generator.rb +148 -0
- data/lib/jets/generators/overrides/app/helpers.rb +143 -0
- data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/.gitignore +2 -1
- data/lib/jets/generators/overrides/app/templates/Gemfile.tt +25 -0
- data/lib/jets/generators/overrides/app/templates/Rakefile +2 -0
- data/lib/jets/generators/overrides/app/templates/app/assets/config/manifest.js +3 -0
- data/lib/jets/generators/overrides/app/templates/app/assets/stylesheets/application.css +15 -0
- data/lib/jets/generators/overrides/app/templates/app/javascript/application.js +5 -0
- data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/app/models/application_record.rb +1 -1
- data/lib/jets/generators/overrides/app/templates/app/views/layouts/application.html.erb.tt +30 -0
- data/lib/jets/generators/overrides/app/templates/bin/jets +3 -0
- data/lib/jets/generators/overrides/app/templates/config/application.rb.tt +15 -0
- data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/config/database.yml.tt +1 -1
- data/lib/jets/generators/overrides/app/templates/config/environments/development.rb.tt +29 -0
- data/lib/jets/generators/overrides/app/templates/config/environments/production.rb.tt +19 -0
- data/lib/jets/generators/overrides/app/templates/config/environments/test.rb.tt +23 -0
- data/lib/jets/generators/overrides/app/templates/config/initializers/content_security_policy.rb +31 -0
- data/lib/jets/generators/overrides/app/templates/config/initializers/filter_parameter_logging.rb +8 -0
- data/lib/jets/generators/overrides/app/templates/config/initializers/permissions_policy.rb +11 -0
- data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/config/routes.rb +5 -1
- data/lib/jets/generators/overrides/app/templates/db/.gitkeep +0 -0
- data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/public/404.html +6 -6
- data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/public/422.html +6 -6
- data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/public/500.html +6 -6
- data/lib/jets/generators/overrides/templates/erb/scaffold/index.html.erb +22 -0
- data/lib/jets/generators/overrides/templates/erb/scaffold/partial.html.erb +8 -0
- data/lib/jets/{generator/templates/rails/scaffold_controller/api_controller.rb → generators/overrides/templates/rails/scaffold_controller/api_controller.rb.tt} +5 -9
- data/lib/jets/generators/overrides/templates/rails/scaffold_controller/controller.rb.tt +67 -0
- data/lib/jets/generators.rb +112 -0
- data/lib/jets/info.rb +116 -0
- data/lib/jets/initializable.rb +95 -0
- data/lib/jets/job/base.rb +3 -2
- data/lib/jets/job/dsl/dynamodb_event.rb +19 -9
- data/lib/jets/job/dsl/event_source_mapping.rb +1 -1
- data/lib/jets/job/dsl/iot_event.rb +6 -6
- data/lib/jets/job/dsl/kinesis_event.rb +5 -5
- data/lib/jets/job/dsl/log_event.rb +2 -2
- data/lib/jets/job/dsl/rule_event.rb +7 -4
- data/lib/jets/job/dsl/s3_event.rb +1 -1
- data/lib/jets/job/dsl/sns_event.rb +6 -6
- data/lib/jets/job/dsl/sqs_event.rb +11 -11
- data/lib/jets/klass.rb +5 -6
- data/lib/jets/lambda/definition.rb +118 -0
- data/lib/jets/lambda/dsl/warnings.rb +57 -0
- data/lib/jets/lambda/dsl.rb +64 -53
- data/lib/jets/lambda/function.rb +3 -3
- data/lib/jets/lambda/function_constructor.rb +6 -6
- data/lib/jets/lambda/functions.rb +36 -1
- data/lib/jets/mega/request/source.rb +1 -2
- data/lib/jets/mega/request.rb +4 -4
- data/lib/jets/names.rb +31 -15
- data/lib/jets/overrides/dummy/rails.rb +11 -0
- data/lib/jets/overrides/lambda/marshaller.rb +10 -0
- data/lib/jets/overrides/puma.rb +10 -0
- data/lib/jets/paths.rb +243 -0
- data/lib/jets/{poly_fun → poly}/base_executor.rb +13 -13
- data/lib/jets/{poly_fun → poly}/lambda_executor.rb +2 -2
- data/lib/jets/{poly_fun → poly}/node_error.rb +1 -1
- data/lib/jets/{poly_fun → poly}/node_executor.rb +4 -4
- data/lib/jets/{poly_fun → poly}/python_error.rb +1 -1
- data/lib/jets/{poly_fun → poly}/python_executor.rb +2 -2
- data/lib/jets/{poly_fun.rb → poly.rb} +12 -12
- data/lib/jets/preheat.rb +12 -25
- data/lib/jets/processors/deducer.rb +2 -2
- data/lib/jets/processors/main_processor.rb +6 -13
- data/lib/jets/rack/logger.rb +77 -0
- data/lib/jets/router/compat/route_set.rb +177 -0
- data/lib/jets/router/dsl/mount.rb +40 -6
- data/lib/jets/router/dsl.rb +125 -105
- data/lib/jets/router/engine_mount.rb +36 -0
- data/lib/jets/router/help.rb +130 -0
- data/lib/jets/router/helpers/named_routes/add_full_url.rb +13 -0
- data/lib/jets/router/helpers/named_routes/generated.rb +197 -0
- data/lib/jets/router/helpers/named_routes/proxy.rb +66 -0
- data/lib/jets/router/matcher.rb +135 -16
- data/lib/jets/router/resources/options.rb +6 -4
- data/lib/jets/router/route/after_initialize.rb +64 -0
- data/lib/jets/router/route/as.rb +93 -0
- data/lib/jets/router/route/authorizer.rb +1 -0
- data/lib/jets/router/route/compat.rb +45 -0
- data/lib/jets/router/route/info.rb +74 -0
- data/lib/jets/router/route/node.rb +137 -0
- data/lib/jets/router/route/path.rb +93 -0
- data/lib/jets/router/route.rb +109 -106
- data/lib/jets/router/route_set.rb +214 -0
- data/lib/jets/router/scope.rb +204 -69
- data/lib/jets/router/state.rb +36 -16
- data/lib/jets/router/util.rb +1 -31
- data/lib/jets/router.rb +64 -162
- data/lib/jets/ruby_version_check.rb +15 -0
- data/lib/jets/rule/base.rb +1 -0
- data/lib/jets/rule/dsl.rb +7 -7
- data/lib/jets/secrets.rb +110 -0
- data/lib/jets/spec_helpers/controllers/request.rb +22 -16
- data/lib/jets/spec_helpers/controllers.rb +32 -24
- data/lib/jets/spec_helpers.rb +0 -6
- data/lib/jets/stack/builder.rb +3 -2
- data/lib/jets/stack/definition.rb +1 -4
- data/lib/jets/stack/function.rb +2 -2
- data/lib/jets/stack/main/dsl/cloudwatch.rb +4 -4
- data/lib/jets/stack/main/dsl/kinesis.rb +2 -2
- data/lib/jets/stack/main/dsl/lambda.rb +26 -20
- data/lib/jets/stack/main/dsl/sqs.rb +2 -2
- data/lib/jets/stack/output/lookup.rb +1 -1
- data/lib/jets/stack/output.rb +2 -2
- data/lib/jets/stack/parameter.rb +2 -2
- data/lib/jets/stack/resource.rb +3 -3
- data/lib/jets/stack/s3_event.rb +51 -37
- data/lib/jets/stack.rb +1 -1
- data/lib/jets/tasks/engine.rake +85 -0
- data/lib/jets/tasks/framework.rake +66 -0
- data/lib/jets/tasks/log.rake +41 -0
- data/lib/jets/tasks/middleware.rake +9 -0
- data/lib/jets/tasks/misc.rake +81 -0
- data/lib/jets/tasks/statistics.rake +37 -0
- data/lib/jets/tasks/tmp.rake +51 -0
- data/lib/jets/tasks/yarn.rake +29 -0
- data/lib/jets/tasks/zeitwerk.rake +61 -0
- data/lib/jets/tasks.rb +18 -0
- data/lib/jets/turbine/configurable.rb +36 -0
- data/lib/jets/turbine/configuration.rb +101 -0
- data/lib/jets/turbine.rb +164 -20
- data/lib/jets/util/camelize.rb +24 -0
- data/lib/jets/version.rb +1 -1
- data/lib/jets.rb +7 -16
- metadata +410 -362
- data/bin/release +0 -9
- data/lib/jets/application/defaults.rb +0 -230
- data/lib/jets/builders/reconfigure_rails/config/initializers/jets.rb +0 -16
- data/lib/jets/builders/reconfigure_rails.rb +0 -114
- data/lib/jets/cfn/builders/api_resources_builder.rb +0 -44
- data/lib/jets/cfn/builders/base_child_builder.rb +0 -88
- data/lib/jets/cfn/builders/controller_builder.rb +0 -50
- data/lib/jets/cfn/builders/function_builder.rb +0 -14
- data/lib/jets/cfn/builders/job_builder.rb +0 -14
- data/lib/jets/cfn/builders/page_builder.rb +0 -80
- data/lib/jets/cfn/built_template.rb +0 -15
- data/lib/jets/cfn/template_source.rb +0 -64
- data/lib/jets/commands/base.rb +0 -145
- data/lib/jets/commands/call.rb +0 -185
- data/lib/jets/commands/clean.rb +0 -19
- data/lib/jets/commands/configure.rb +0 -51
- data/lib/jets/commands/console.rb +0 -18
- data/lib/jets/commands/db/environment-task.rake +0 -3
- data/lib/jets/commands/db/tasks/dummy/app.rb +0 -25
- data/lib/jets/commands/db/tasks/dummy/config.rb +0 -14
- data/lib/jets/commands/db/tasks.rb +0 -34
- data/lib/jets/commands/db.rb +0 -13
- data/lib/jets/commands/dbconsole.rb +0 -134
- data/lib/jets/commands/delete.rb +0 -136
- data/lib/jets/commands/dynamodb/migrate.rb +0 -9
- data/lib/jets/commands/dynamodb/migrator.rb +0 -36
- data/lib/jets/commands/dynamodb.rb +0 -19
- data/lib/jets/commands/gems.rb +0 -13
- data/lib/jets/commands/help/call.md +0 -69
- data/lib/jets/commands/help/dynamodb/generate.md +0 -52
- data/lib/jets/commands/help/dynamodb/migrate.md +0 -4
- data/lib/jets/commands/help/routes.md +0 -16
- data/lib/jets/commands/help.rb +0 -9
- data/lib/jets/commands/import/base.rb +0 -49
- data/lib/jets/commands/import/cheatsheet.rb +0 -35
- data/lib/jets/commands/import/rack.rb +0 -16
- data/lib/jets/commands/import/rails.rb +0 -74
- data/lib/jets/commands/import/sequence.rb +0 -90
- data/lib/jets/commands/import/templates/config/database.yml +0 -30
- data/lib/jets/commands/import/templates/submodules-cheatsheet.md +0 -89
- data/lib/jets/commands/import.rb +0 -12
- data/lib/jets/commands/main.rb +0 -169
- data/lib/jets/commands/markdown/creator.rb +0 -58
- data/lib/jets/commands/markdown/index.rb +0 -27
- data/lib/jets/commands/markdown/page.rb +0 -125
- data/lib/jets/commands/markdown/shell.rb +0 -11
- data/lib/jets/commands/new.rb +0 -173
- data/lib/jets/commands/rake_command.rb +0 -61
- data/lib/jets/commands/rake_tasks.rb +0 -50
- data/lib/jets/commands/runner.rb +0 -16
- data/lib/jets/commands/sequence.rb +0 -104
- data/lib/jets/commands/stack_info.rb +0 -30
- data/lib/jets/commands/templates/skeleton/.env.development.tt +0 -3
- data/lib/jets/commands/templates/skeleton/.env.test +0 -3
- data/lib/jets/commands/templates/skeleton/.env.tt +0 -3
- data/lib/jets/commands/templates/skeleton/.jetskeep +0 -1
- data/lib/jets/commands/templates/skeleton/Gemfile.tt +0 -40
- data/lib/jets/commands/templates/skeleton/Procfile +0 -7
- data/lib/jets/commands/templates/skeleton/Rakefile +0 -2
- data/lib/jets/commands/templates/skeleton/app/models/application_item.rb +0 -2
- data/lib/jets/commands/templates/skeleton/app/views/layouts/application.html.erb.tt +0 -26
- data/lib/jets/commands/templates/skeleton/config/application.rb.tt +0 -72
- data/lib/jets/commands/templates/skeleton/config/dynamodb.yml +0 -22
- data/lib/jets/commands/templates/skeleton/config/environments/development.rb +0 -7
- data/lib/jets/commands/templates/skeleton/config/environments/production.rb +0 -9
- data/lib/jets/commands/templates/skeleton/config/environments/test.rb +0 -7
- data/lib/jets/commands/templates/webpacker/app/javascript/packs/application.js.tt +0 -23
- data/lib/jets/commands/templates/webpacker/app/javascript/packs/theme.scss.tt +0 -24
- data/lib/jets/commands/upgrade/templates/bin/webpack +0 -20
- data/lib/jets/commands/upgrade/templates/bin/webpack-dev-server +0 -19
- data/lib/jets/commands/upgrade/version1.rb +0 -136
- data/lib/jets/commands/upgrade.rb +0 -105
- data/lib/jets/commands/webpacker_template.rb +0 -18
- data/lib/jets/controller/callbacks.rb +0 -73
- data/lib/jets/controller/cookies/jar.rb +0 -269
- data/lib/jets/controller/cookies.rb +0 -38
- data/lib/jets/controller/error/invalid_authenticity_token.rb +0 -6
- data/lib/jets/controller/error.rb +0 -4
- data/lib/jets/controller/forgery_protection.rb +0 -43
- data/lib/jets/controller/layout.rb +0 -17
- data/lib/jets/controller/middleware/cors.rb +0 -60
- data/lib/jets/controller/middleware/local/mimic_aws_call.rb +0 -38
- data/lib/jets/controller/middleware/local/route_matcher.rb +0 -22
- data/lib/jets/controller/middleware/reloader.rb +0 -15
- data/lib/jets/controller/parameters_filter.rb +0 -29
- data/lib/jets/controller/params.rb +0 -117
- data/lib/jets/controller/redirection.rb +0 -61
- data/lib/jets/controller/rendering/rack_renderer.rb +0 -267
- data/lib/jets/controller/rendering.rb +0 -96
- data/lib/jets/controller/stage.rb +0 -34
- data/lib/jets/controller.rb +0 -3
- data/lib/jets/db.rb +0 -15
- data/lib/jets/generator/templates/erb/controller/view.html.erb +0 -2
- data/lib/jets/generator/templates/erb/scaffold/index.html.erb +0 -29
- data/lib/jets/generator/templates/rails/controller/controller.rb +0 -13
- data/lib/jets/generator/templates/rails/helper/helper.rb +0 -4
- data/lib/jets/generator/templates/rails/scaffold_controller/controller.rb +0 -67
- data/lib/jets/generator.rb +0 -112
- data/lib/jets/internal/app/controllers/jets/bare_controller.rb +0 -16
- data/lib/jets/internal/app/controllers/jets/rack_controller.rb +0 -12
- data/lib/jets/internal/app/helpers/jets/mailers_helper.rb +0 -9
- data/lib/jets/internal/app/jobs/jets/preheat_job.rb +0 -52
- data/lib/jets/internal/app/views/jets/mailers/index.html.erb +0 -8
- data/lib/jets/internal/app/views/jets/mailers/mailer.html.erb +0 -6
- data/lib/jets/internal/turbines/jets/mailer.rb +0 -52
- data/lib/jets/lambda/task.rb +0 -111
- data/lib/jets/logger.rb +0 -21
- data/lib/jets/middleware/configurator.rb +0 -84
- data/lib/jets/middleware/default_stack.rb +0 -53
- data/lib/jets/middleware/layer.rb +0 -34
- data/lib/jets/middleware/stack.rb +0 -77
- data/lib/jets/middleware.rb +0 -33
- data/lib/jets/overrides/rails/action_controller.rb +0 -13
- data/lib/jets/overrides/rails/asset_tag_helper.rb +0 -114
- data/lib/jets/overrides/rails/common_methods.rb +0 -13
- data/lib/jets/overrides/rails/migration_checker.rb +0 -34
- data/lib/jets/overrides/rails/rendering_helper.rb +0 -27
- data/lib/jets/overrides/rails/url_helper.rb +0 -88
- data/lib/jets/overrides/rails.rb +0 -6
- data/lib/jets/rack_server.rb +0 -86
- data/lib/jets/resource/api_gateway/base_path/function.rb +0 -49
- data/lib/jets/resource/api_gateway/base_path/role.rb +0 -76
- data/lib/jets/resource/api_gateway/cors.rb +0 -61
- data/lib/jets/resource/api_gateway/method.rb +0 -102
- data/lib/jets/resource/api_gateway/rest_api/routes/change.rb +0 -16
- data/lib/jets/resource/base.rb +0 -28
- data/lib/jets/resource/child_stack/api_deployment.rb +0 -58
- data/lib/jets/resource/child_stack/api_gateway.rb +0 -23
- data/lib/jets/resource/child_stack/api_resource/page.rb +0 -20
- data/lib/jets/resource/child_stack/api_resource.rb +0 -54
- data/lib/jets/resource/child_stack/base.rb +0 -24
- data/lib/jets/resource/lambda/function.rb +0 -221
- data/lib/jets/resource/logs/subscription_filter.rb +0 -31
- data/lib/jets/resource/permission.rb +0 -45
- data/lib/jets/resource.rb +0 -71
- data/lib/jets/router/error.rb +0 -4
- data/lib/jets/router/finder.rb +0 -47
- data/lib/jets/router/helpers/core_helper.rb +0 -27
- data/lib/jets/router/helpers/named_routes_helper.rb +0 -8
- data/lib/jets/router/helpers.rb +0 -4
- data/lib/jets/router/method_creator/code.rb +0 -99
- data/lib/jets/router/method_creator/edit.rb +0 -12
- data/lib/jets/router/method_creator/generic.rb +0 -11
- data/lib/jets/router/method_creator/index.rb +0 -48
- data/lib/jets/router/method_creator/new.rb +0 -12
- data/lib/jets/router/method_creator/root.rb +0 -15
- data/lib/jets/router/method_creator/show.rb +0 -12
- data/lib/jets/router/method_creator.rb +0 -50
- data/lib/jets/turbo/database_yaml.rb +0 -41
- data/lib/jets/turbo/project/.gitignore +0 -12
- data/lib/jets/turbo/project/.jetskeep +0 -1
- data/lib/jets/turbo/project/Gemfile +0 -16
- data/lib/jets/turbo/project/Rakefile +0 -2
- data/lib/jets/turbo/project/app/controllers/application_controller.rb +0 -2
- data/lib/jets/turbo/project/app/helpers/application_helper.rb +0 -2
- data/lib/jets/turbo/project/app/jobs/application_job.rb +0 -4
- data/lib/jets/turbo/project/config/application.rb +0 -5
- data/lib/jets/turbo/project/config/routes.rb +0 -4
- data/lib/jets/turbo/project/config.ru +0 -5
- data/lib/jets/turbo/rails.rb +0 -127
- data/lib/jets/turbo/templates/config/database.yml +0 -30
- data/lib/jets/turbo.rb +0 -56
- data/readme/prerelease.md +0 -6
- data/readme/testing.md +0 -60
- /data/{lib/jets → engines}/internal/app/shared/functions/jets/s3_bucket_config.rb +0 -0
- /data/lib/jets/{commands → command}/help/build.md +0 -0
- /data/lib/jets/{commands → command}/help/clean/build.md +0 -0
- /data/lib/jets/{commands → command}/help/clean/log.md +0 -0
- /data/lib/jets/{commands → command}/help/console.md +0 -0
- /data/lib/jets/{commands → command}/help/db/generate.md +0 -0
- /data/lib/jets/{commands → command}/help/dbconsole.md +0 -0
- /data/lib/jets/{commands → command}/help/degenerate.md +0 -0
- /data/lib/jets/{commands → command}/help/delete.md +0 -0
- /data/lib/jets/{commands → command}/help/gems/check.md +0 -0
- /data/lib/jets/{commands → command}/help/generate.md +0 -0
- /data/lib/jets/{commands → command}/help/import/rack.md +0 -0
- /data/lib/jets/{commands → command}/help/import/rails.md +0 -0
- /data/lib/jets/{commands → command}/help/runner.md +0 -0
- /data/lib/jets/{commands → command}/help/server.md +0 -0
- /data/lib/jets/{commands → command}/help/status.md +0 -0
- /data/lib/jets/{commands → command}/help/upgrade.md +0 -0
- /data/lib/jets/{commands → command}/help/url.md +0 -0
- /data/lib/jets/{generator/templates/active_job → generators}/job/templates/application_job.rb.tt +0 -0
- /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/.rspec +0 -0
- /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/README.md +0 -0
- /data/{.gitmodules → lib/jets/generators/overrides/app/templates/app/assets/images/.keep} +0 -0
- /data/lib/jets/{commands/templates/skeleton/db/.gitkeep → generators/overrides/app/templates/app/assets/javascripts/.keep} +0 -0
- /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/app/controllers/application_controller.rb +0 -0
- /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/app/helpers/application_helper.rb +0 -0
- /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/app/jobs/application_job.rb +0 -0
- /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/config.ru +0 -0
- /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/public/favicon.ico +0 -0
- /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/spec/controllers/posts_controller_spec.rb +0 -0
- /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/spec/fixtures/payloads/posts-index.json +0 -0
- /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/spec/fixtures/payloads/posts-show.json +0 -0
- /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/spec/spec_helper.rb.tt +0 -0
- /data/lib/jets/{generator → generators/overrides}/templates/erb/scaffold/_form.html.erb +0 -0
- /data/lib/jets/{generator → generators/overrides}/templates/erb/scaffold/edit.html.erb +0 -0
- /data/lib/jets/{generator → generators/overrides}/templates/erb/scaffold/new.html.erb +0 -0
- /data/lib/jets/{generator → generators/overrides}/templates/erb/scaffold/show.html.erb +0 -0
- /data/lib/jets/{generator → generators/overrides}/templates/rails/assets/javascript.js +0 -0
- /data/lib/jets/{generator → generators/overrides}/templates/rails/assets/stylesheet.css +0 -0
- /data/lib/jets/{generator → generators/overrides}/templates/rails/scaffold/scaffold.css +0 -0
|
@@ -30,8 +30,8 @@ module Jets::Builders
|
|
|
30
30
|
cache_check_message
|
|
31
31
|
|
|
32
32
|
clean_start
|
|
33
|
-
|
|
34
|
-
|
|
33
|
+
assets_precompile
|
|
34
|
+
run_webpack # easier to do before we copy the project because node and yarn has been likely setup in the that dir
|
|
35
35
|
copy_project
|
|
36
36
|
copy_ruby_version_file
|
|
37
37
|
Dir.chdir("#{stage_area}/code") do
|
|
@@ -95,7 +95,6 @@ module Jets::Builders
|
|
|
95
95
|
# Reconfigure code
|
|
96
96
|
store_s3_base_url
|
|
97
97
|
disable_webpacker_middleware
|
|
98
|
-
copy_internal_jets_code
|
|
99
98
|
|
|
100
99
|
# Code prep and zipping
|
|
101
100
|
check_code_size!
|
|
@@ -117,32 +116,6 @@ module Jets::Builders
|
|
|
117
116
|
CodeSize.check!
|
|
118
117
|
end
|
|
119
118
|
|
|
120
|
-
# Materialized internal code into actually user Jets app as part of the deploy process.
|
|
121
|
-
# Examples of things that we might materialize:
|
|
122
|
-
#
|
|
123
|
-
# Views
|
|
124
|
-
# Simple Functions
|
|
125
|
-
#
|
|
126
|
-
# For functions, We copy the files into the project because we cannot require
|
|
127
|
-
# simple functions directly since they are wrapped by an anonymous class.
|
|
128
|
-
def copy_internal_jets_code
|
|
129
|
-
files = []
|
|
130
|
-
|
|
131
|
-
mailers_controller = Jets::Router.has_controller?("Jets::MailersController")
|
|
132
|
-
if mailers_controller
|
|
133
|
-
files << "app/controllers/jets/mailers_controller.rb"
|
|
134
|
-
files << "app/views/jets/mailers"
|
|
135
|
-
files << "app/helpers/jets/mailers_helper.rb"
|
|
136
|
-
end
|
|
137
|
-
|
|
138
|
-
files.each do |relative_path|
|
|
139
|
-
src = File.expand_path("../internal/#{relative_path}", File.dirname(__FILE__))
|
|
140
|
-
dest = "#{"#{stage_area}/code"}/#{relative_path}"
|
|
141
|
-
FileUtils.mkdir_p(File.dirname(dest))
|
|
142
|
-
FileUtils.cp_r(src, dest)
|
|
143
|
-
end
|
|
144
|
-
end
|
|
145
|
-
|
|
146
119
|
# Thanks https://stackoverflow.com/questions/9354595/recursively-getting-the-size-of-a-directory
|
|
147
120
|
# Seems to overestimate a little bit but close enough.
|
|
148
121
|
def dir_size(folder)
|
|
@@ -157,8 +130,8 @@ module Jets::Builders
|
|
|
157
130
|
# At this point the minimal stack exists, so we can grab it with the AWS API.
|
|
158
131
|
# We do not want to grab this as part of the live request because it is slow.
|
|
159
132
|
def store_s3_base_url
|
|
133
|
+
return if Jets.config.mode == "job"
|
|
160
134
|
write_s3_base_url("#{stage_area}/code/config/s3_base_url.txt")
|
|
161
|
-
write_s3_base_url("#{stage_area}/rack/config/s3_base_url.txt") if Jets.rack?
|
|
162
135
|
end
|
|
163
136
|
|
|
164
137
|
def write_s3_base_url(full_path)
|
|
@@ -175,12 +148,11 @@ module Jets::Builders
|
|
|
175
148
|
#
|
|
176
149
|
return Jets.config.assets.base_url if Jets.config.assets.base_url
|
|
177
150
|
|
|
151
|
+
# Note: subdomain form works with CORs but the subfolder form does not. Using subfolder form.
|
|
178
152
|
region = Jets.aws.region
|
|
179
|
-
|
|
180
153
|
asset_base_url = region == 'us-east-1' ?
|
|
181
|
-
"https
|
|
182
|
-
"https
|
|
183
|
-
"#{asset_base_url}/#{s3_bucket}/jets" # s3_base_url
|
|
154
|
+
"https://#{s3_bucket}.s3.amazonaws.com/jets" :
|
|
155
|
+
"https://#{s3_bucket}.s3-#{region}.amazonaws.com/jets"
|
|
184
156
|
end
|
|
185
157
|
|
|
186
158
|
def s3_bucket
|
|
@@ -193,50 +165,58 @@ module Jets::Builders
|
|
|
193
165
|
FileUtils.touch(full_path)
|
|
194
166
|
end
|
|
195
167
|
|
|
168
|
+
def assets_precompile
|
|
169
|
+
return if skip_assets?
|
|
170
|
+
return unless gemfile_include?("sprockets-jets")
|
|
171
|
+
sh "jets assets:precompile"
|
|
172
|
+
end
|
|
173
|
+
|
|
196
174
|
# This happens in the current app directory not the tmp code for simplicity.
|
|
197
175
|
# This is because the node and yarn has likely been set up correctly there.
|
|
198
|
-
def
|
|
199
|
-
if
|
|
200
|
-
|
|
201
|
-
return
|
|
202
|
-
end
|
|
176
|
+
def run_webpack
|
|
177
|
+
return if skip_assets?
|
|
178
|
+
return unless gemfile_include?("jetpacker")
|
|
203
179
|
|
|
204
180
|
headline "Compling assets in current project directory"
|
|
205
|
-
return unless webpacker_included?
|
|
206
|
-
|
|
207
181
|
sh("yarn install")
|
|
208
182
|
|
|
209
|
-
ENV['WEBPACKER_ASSET_HOST'] =
|
|
183
|
+
ENV['WEBPACKER_ASSET_HOST'] = asset_host if Jets.config.assets.base_url
|
|
210
184
|
webpack_command = File.exist?("#{Jets.root}/bin/webpack") ?
|
|
211
185
|
"bin/webpack" :
|
|
212
186
|
`which webpack`.strip
|
|
213
187
|
sh "JETS_ENV=#{Jets.env} #{webpack_command}"
|
|
214
188
|
end
|
|
215
189
|
|
|
190
|
+
def skip_assets?
|
|
191
|
+
if ENV['JETS_SKIP_ASSETS']
|
|
192
|
+
puts "Skip compiling assets".color(:yellow) # useful for debugging
|
|
193
|
+
return true
|
|
194
|
+
end
|
|
195
|
+
return true if Jets.config.mode == "job"
|
|
196
|
+
return true unless Jets.config.respond_to?(:assets)
|
|
197
|
+
Jets.config.assets.enable_webpack
|
|
198
|
+
end
|
|
199
|
+
|
|
216
200
|
# Different url for these. Examples:
|
|
217
201
|
#
|
|
218
|
-
#
|
|
219
|
-
# s3_base_url
|
|
202
|
+
# asset_host https://demo-dev-s3bucket-lw5vq7ht8ip4.s3.us-west-2.amazonaws.com/jets/public/packs/media/images/boltops-0dd1c6bd.png
|
|
203
|
+
# s3_base_url https://s3-us-west-2.amazonaws.com/demo-dev-s3bucket-lw5vq7ht8ip4/jets/packs/media/images/boltops-0dd1c6bd.png
|
|
220
204
|
#
|
|
221
|
-
# Interesting:
|
|
205
|
+
# Interesting: asset_host works but s3_base_url does not for CORs. IE: reactjs or vuejs requests
|
|
222
206
|
# Thinking AWS configures the non-subdomain url endpoint to be more restrictive.
|
|
223
207
|
#
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
208
|
+
# Allow user to set assets.asset_host
|
|
209
|
+
#
|
|
210
|
+
# Jets.application.configure do
|
|
211
|
+
# config.assets.asset_host = "https://cloudfront.com/my/base/path"
|
|
212
|
+
# end
|
|
213
|
+
#
|
|
214
|
+
def asset_host
|
|
231
215
|
assets = Jets.config.assets
|
|
232
|
-
return assets.
|
|
233
|
-
return assets.base_url if assets.base_url
|
|
216
|
+
return assets.base_url if assets.base_url && assets.base_url != "s3_endpoint"
|
|
234
217
|
|
|
235
218
|
# By default, will use the s3 url endpoint directly by convention
|
|
236
|
-
return unless assets.webpacker_asset_host == "s3_endpoint"
|
|
237
|
-
|
|
238
219
|
region = Jets.aws.region
|
|
239
|
-
|
|
240
220
|
asset_base_url = region == 'us-east-1' ?
|
|
241
221
|
"https://#{s3_bucket}.s3.amazonaws.com" :
|
|
242
222
|
"https://#{s3_bucket}.s3.#{region}.amazonaws.com"
|
|
@@ -244,7 +224,7 @@ module Jets::Builders
|
|
|
244
224
|
"#{asset_base_url}/jets/public" # s3_base_url
|
|
245
225
|
end
|
|
246
226
|
|
|
247
|
-
def
|
|
227
|
+
def gemfile_include?(name)
|
|
248
228
|
# Old code, leaving around for now:
|
|
249
229
|
# Thanks: https://stackoverflow.com/questions/4195735/get-list-of-gems-being-used-by-a-bundler-project
|
|
250
230
|
# webpacker_loaded = Gem.loaded_specs.keys.include?("webpacker")
|
|
@@ -253,56 +233,7 @@ module Jets::Builders
|
|
|
253
233
|
# Checking this way because when using jets standalone for Afterburner mode we don't want to run into
|
|
254
234
|
# bundler gem collisions. TODO: figure out the a better way to handle the collisions.
|
|
255
235
|
lines = IO.readlines("#{Jets.root}/Gemfile")
|
|
256
|
-
lines.detect { |l| l =~ /
|
|
257
|
-
end
|
|
258
|
-
|
|
259
|
-
# This happens in the current app directory not the tmp code for simplicity
|
|
260
|
-
# This is because the node likely been set up correctly there.
|
|
261
|
-
def compile_rails_assets
|
|
262
|
-
return unless Jets.rack? && rails? && !rails_api?
|
|
263
|
-
|
|
264
|
-
if ENV['JETS_SKIP_ASSETS']
|
|
265
|
-
puts "Skip compiling rack assets".color(:yellow) # useful for debugging
|
|
266
|
-
return
|
|
267
|
-
end
|
|
268
|
-
|
|
269
|
-
# Need to capture JETS_ROOT since can be changed by Turbo mode
|
|
270
|
-
jets_root = Jets.root
|
|
271
|
-
Bundler.with_unbundled_env do
|
|
272
|
-
# Switch gemfile for Afterburner mode
|
|
273
|
-
gemfile = ENV['BUNDLE_GEMFILE']
|
|
274
|
-
ENV['BUNDLE_GEMFILE'] = "#{jets_root}/rack/Gemfile"
|
|
275
|
-
sh "cd #{jets_root} && bundle install"
|
|
276
|
-
ENV['BUNDLE_GEMFILE'] = gemfile
|
|
277
|
-
|
|
278
|
-
rails_assets(:clobber, jets_root: jets_root)
|
|
279
|
-
rails_assets(:precompile, jets_root: jets_root)
|
|
280
|
-
end
|
|
281
|
-
end
|
|
282
|
-
|
|
283
|
-
def rails_assets(cmd, jets_root:)
|
|
284
|
-
# rake is available in both rails 4 and 5. rails command only in 5
|
|
285
|
-
command = "bundle exec rake assets:#{cmd} --trace"
|
|
286
|
-
command = "RAILS_ENV=#{Jets.env} #{command}" unless Jets.env.development?
|
|
287
|
-
sh("cd #{jets_root}/rack && #{command}")
|
|
288
|
-
end
|
|
289
|
-
|
|
290
|
-
# Rudimentary rails detection
|
|
291
|
-
# Duplicated in builders/reconfigure_rails.rb
|
|
292
|
-
def rails?
|
|
293
|
-
config_ru = "#{Jets.root}/rack/config.ru"
|
|
294
|
-
return false unless File.exist?(config_ru)
|
|
295
|
-
!IO.readlines(config_ru).grep(/Rails.application/).empty?
|
|
296
|
-
end
|
|
297
|
-
|
|
298
|
-
# Rudimentary rails api detection
|
|
299
|
-
# Duplicated in builders/reconfigure_rails.rb
|
|
300
|
-
# Another way of checking is loading a rails console and checking Rails.application.config.api_only
|
|
301
|
-
# Using this way for simplicity.
|
|
302
|
-
def rails_api?
|
|
303
|
-
config_app = "#{Jets.root}/rack/config/application.rb"
|
|
304
|
-
return false unless File.exist?(config_app)
|
|
305
|
-
!IO.readlines(config_app).grep(/config.api_only.*=.*true/).empty?
|
|
236
|
+
lines.detect { |l| l =~ /#{name}/ }
|
|
306
237
|
end
|
|
307
238
|
|
|
308
239
|
# Cleans out non-cached files like code-*.zip in Jets.build_root
|
|
@@ -326,7 +257,6 @@ module Jets::Builders
|
|
|
326
257
|
FileUtils.rm_rf("#{stage_area}/code") # remove current code folder
|
|
327
258
|
move_node_modules(Jets.root, Jets.build_root)
|
|
328
259
|
begin
|
|
329
|
-
# puts "cp -r #{@full_project_path} #{"#{stage_area}/code"}".color(:yellow) # uncomment to debug
|
|
330
260
|
Jets::Util.cp_r(@full_project_path, "#{stage_area}/code")
|
|
331
261
|
ensure
|
|
332
262
|
move_node_modules(Jets.build_root, Jets.root) # move node_modules directory back
|
|
@@ -372,11 +302,14 @@ module Jets::Builders
|
|
|
372
302
|
memoize :rack_packager
|
|
373
303
|
|
|
374
304
|
def package_ruby
|
|
305
|
+
if ENV['JETS_SKIP_PACKAGE']
|
|
306
|
+
puts "Skip packaging ruby".color(:yellow) # useful for developing handlers
|
|
307
|
+
return
|
|
308
|
+
end
|
|
375
309
|
return if Jets.poly_only?
|
|
376
310
|
|
|
377
311
|
check_agree
|
|
378
312
|
ruby_packager.install
|
|
379
|
-
reconfigure_rails # call here after "#{stage_area}/code" is available
|
|
380
313
|
rack_packager.install
|
|
381
314
|
ruby_packager.finish # by this time we have a /tmp/jets/demo/stage/code/vendor/gems
|
|
382
315
|
rack_packager.finish
|
|
@@ -385,7 +318,7 @@ module Jets::Builders
|
|
|
385
318
|
end
|
|
386
319
|
|
|
387
320
|
def check_agree
|
|
388
|
-
agree = Jets::
|
|
321
|
+
agree = Jets::Api::Agree.new
|
|
389
322
|
agree.prompt
|
|
390
323
|
end
|
|
391
324
|
|
|
@@ -395,11 +328,6 @@ module Jets::Builders
|
|
|
395
328
|
lambda_layer.build
|
|
396
329
|
end
|
|
397
330
|
|
|
398
|
-
# TODO: Move logic into plugin instead
|
|
399
|
-
def reconfigure_rails
|
|
400
|
-
ReconfigureRails.new("#{"#{stage_area}/code"}/rack").run
|
|
401
|
-
end
|
|
402
|
-
|
|
403
331
|
def cache_check_message
|
|
404
332
|
if File.exist?("#{Jets.build_root}/cache")
|
|
405
333
|
puts "The #{Jets.build_root}/cache folder exists. Incrementally re-building the jets using the cache. To clear the cache: rm -rf #{Jets.build_root}/cache"
|
|
@@ -414,7 +342,7 @@ module Jets::Builders
|
|
|
414
342
|
|
|
415
343
|
# Group all the path settings together here
|
|
416
344
|
def self.tmp_code
|
|
417
|
-
Jets::
|
|
345
|
+
Jets::Cfn::Builder.tmp_code
|
|
418
346
|
end
|
|
419
347
|
|
|
420
348
|
def tmp_code
|
|
@@ -2,15 +2,14 @@ module Jets::Builders
|
|
|
2
2
|
class GemReplacer
|
|
3
3
|
extend Memoist
|
|
4
4
|
include Util
|
|
5
|
-
|
|
5
|
+
|
|
6
6
|
def initialize(options)
|
|
7
7
|
@options = options
|
|
8
8
|
end
|
|
9
9
|
|
|
10
10
|
def run
|
|
11
11
|
# use_gemspec to resolve http-parser gem issue
|
|
12
|
-
|
|
13
|
-
check = Jets::Gems::Check.new(use_gemspec: use_gemspec)
|
|
12
|
+
check = Jets::Api::Gems::Check.new(use_gemspec: true)
|
|
14
13
|
if Jets.config.lambda.layers.empty?
|
|
15
14
|
found_gems = check.run! # exits early if missing gems found
|
|
16
15
|
else
|
|
@@ -20,7 +19,7 @@ module Jets::Builders
|
|
|
20
19
|
|
|
21
20
|
# found gems will only have gems that were found
|
|
22
21
|
found_gems.each do |gem_name|
|
|
23
|
-
gem_extractor = Jets::Gems::Extract::Gem.new(gem_name, @options)
|
|
22
|
+
gem_extractor = Jets::Api::Gems::Extract::Gem.new(gem_name, @options)
|
|
24
23
|
gem_extractor.run
|
|
25
24
|
rename_gem(gem_name)
|
|
26
25
|
end
|
|
@@ -29,7 +28,7 @@ module Jets::Builders
|
|
|
29
28
|
end
|
|
30
29
|
|
|
31
30
|
def rename_gem(gem_name)
|
|
32
|
-
ruby_folder = "#{Jets.build_root}/stage/opt/ruby/gems/#{Jets::Gems.ruby_folder}"
|
|
31
|
+
ruby_folder = "#{Jets.build_root}/stage/opt/ruby/gems/#{Jets::Api::Gems.ruby_folder}"
|
|
33
32
|
gems_folder = "#{ruby_folder}/gems"
|
|
34
33
|
expr = "#{gems_folder}/#{gem_name}-x*-{darwin,linux}"
|
|
35
34
|
src = Dir.glob(expr).first
|
|
@@ -40,7 +39,7 @@ module Jets::Builders
|
|
|
40
39
|
end
|
|
41
40
|
|
|
42
41
|
def ruby_folder
|
|
43
|
-
Jets::Gems.ruby_folder
|
|
42
|
+
Jets::Api::Gems.ruby_folder
|
|
44
43
|
end
|
|
45
44
|
|
|
46
45
|
# remove unnecessary files to reduce package size
|
|
@@ -47,6 +47,32 @@ module Jets::Builders
|
|
|
47
47
|
end
|
|
48
48
|
end
|
|
49
49
|
|
|
50
|
+
def generate_handler(vars)
|
|
51
|
+
template = handler_template(vars)
|
|
52
|
+
result = evaluate_template(template, vars)
|
|
53
|
+
dest = "#{tmp_code}/#{vars.dest_path}"
|
|
54
|
+
|
|
55
|
+
# Dont generate handles for all controllers if one_lambda_for_all_controllers
|
|
56
|
+
# Instead generate the same handler and use it. Writing to the same file
|
|
57
|
+
# multiple times but this is a simple way to implement this.
|
|
58
|
+
# It also keeps the logical in one spot.
|
|
59
|
+
if Jets.config.cfn.build.controllers == 'one_lambda_for_all_controllers' &&
|
|
60
|
+
dest.include?('handlers/controllers')
|
|
61
|
+
dest = "handlers/controller.rb"
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
FileUtils.mkdir_p(File.dirname(dest))
|
|
65
|
+
IO.write(dest, result)
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
def handler_template(vars)
|
|
69
|
+
if vars.process_type == "controller"
|
|
70
|
+
Jets.config.cfn.build.controllers + ".rb" # IE: templates/handlers/one_lambda_for_all_controllers.rb
|
|
71
|
+
else # job, rule, etc
|
|
72
|
+
"one_lambda_per_method.rb"
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
|
|
50
76
|
# source_path: app/functions/simple.rb
|
|
51
77
|
def copy_simple_function(source_path)
|
|
52
78
|
# Handler: handlers/controllers/posts_controller.handle
|
|
@@ -56,7 +82,7 @@ module Jets::Builders
|
|
|
56
82
|
end
|
|
57
83
|
|
|
58
84
|
def app_files
|
|
59
|
-
Jets::
|
|
85
|
+
Jets::Cfn::Builder.app_files
|
|
60
86
|
end
|
|
61
87
|
|
|
62
88
|
def poly_shims
|
|
@@ -64,7 +90,7 @@ module Jets::Builders
|
|
|
64
90
|
|
|
65
91
|
app_files.each do |path|
|
|
66
92
|
vars = Jets::Builders::ShimVars::App.new(path)
|
|
67
|
-
poly_tasks = vars.klass.
|
|
93
|
+
poly_tasks = vars.klass.definitions.select { |d| d.lang != :ruby }
|
|
68
94
|
poly_tasks.each do |task|
|
|
69
95
|
source_path = get_source_path(path, task)
|
|
70
96
|
if File.exist?(source_path)
|
|
@@ -100,7 +126,8 @@ module Jets::Builders
|
|
|
100
126
|
end
|
|
101
127
|
|
|
102
128
|
def jets_base_path
|
|
103
|
-
copy_function_template("functions/jets/base_path.rb", stage_name: Jets::Resource::ApiGateway::Deployment.stage_name)
|
|
129
|
+
copy_function_template("functions/jets/base_path.rb", stage_name: Jets::Cfn::Resource::ApiGateway::Deployment.stage_name)
|
|
130
|
+
copy_function_template("functions/jets/base_path_mapping.rb")
|
|
104
131
|
end
|
|
105
132
|
|
|
106
133
|
def s3_bucket_config
|
|
@@ -109,8 +136,8 @@ module Jets::Builders
|
|
|
109
136
|
|
|
110
137
|
# Copy code from internal folder to materialized app code
|
|
111
138
|
def copy_function_template(path, vars={})
|
|
112
|
-
|
|
113
|
-
src = "#{
|
|
139
|
+
engines_internal_path = File.expand_path("../../../engines/internal", __dir__)
|
|
140
|
+
src = "#{engines_internal_path}/app/#{path}"
|
|
114
141
|
result = Jets::Erb.result(src, vars)
|
|
115
142
|
dest = "#{tmp_code}/handlers/#{path}"
|
|
116
143
|
FileUtils.mkdir_p(File.dirname(dest))
|
|
@@ -124,7 +151,7 @@ module Jets::Builders
|
|
|
124
151
|
source_path = fun.source_file
|
|
125
152
|
unless source_path
|
|
126
153
|
attributes = fun.template.values.first
|
|
127
|
-
function_name = attributes[
|
|
154
|
+
function_name = attributes[:Properties][:FunctionName]
|
|
128
155
|
puts "WARN: missing source file for: '#{function_name}' function".color(:yellow)
|
|
129
156
|
return
|
|
130
157
|
end
|
|
@@ -166,15 +193,8 @@ module Jets::Builders
|
|
|
166
193
|
IO.write(dest, result)
|
|
167
194
|
end
|
|
168
195
|
|
|
169
|
-
def generate_handler(vars)
|
|
170
|
-
result = evaluate_template("handler.rb", vars)
|
|
171
|
-
dest = "#{tmp_code}/#{vars.dest_path}"
|
|
172
|
-
FileUtils.mkdir_p(File.dirname(dest))
|
|
173
|
-
IO.write(dest, result)
|
|
174
|
-
end
|
|
175
|
-
|
|
176
196
|
def evaluate_template(template_file, vars)
|
|
177
|
-
template_path = File.expand_path("../templates/#{template_file}", __FILE__)
|
|
197
|
+
template_path = File.expand_path("../templates/handlers/#{template_file}", __FILE__)
|
|
178
198
|
Jets::Erb.result(template_path, vars: vars)
|
|
179
199
|
end
|
|
180
200
|
|
|
@@ -7,7 +7,7 @@ module Jets::Builders
|
|
|
7
7
|
# Then replace the binary gems.
|
|
8
8
|
def build
|
|
9
9
|
consolidate_gems_to_opt
|
|
10
|
-
replace_compiled_gems unless Jets.config.
|
|
10
|
+
replace_compiled_gems unless Jets.config.pro.disable
|
|
11
11
|
end
|
|
12
12
|
|
|
13
13
|
# Also restructure the folder from:
|
|
@@ -20,11 +20,6 @@ module Jets::Builders
|
|
|
20
20
|
src = "#{stage_area}/code/vendor/gems/ruby/#{Jets.ruby_folder}"
|
|
21
21
|
dest = "#{stage_area}/opt/ruby/gems/#{Jets.ruby_folder}"
|
|
22
22
|
rsync_and_link(src, dest)
|
|
23
|
-
|
|
24
|
-
return unless Jets.rack?
|
|
25
|
-
|
|
26
|
-
src = "#{stage_area}/rack/vendor/gems/ruby/#{Jets.ruby_folder}"
|
|
27
|
-
rsync_and_link(src, dest)
|
|
28
23
|
end
|
|
29
24
|
|
|
30
25
|
def rsync_and_link(src, dest)
|
|
@@ -36,7 +31,7 @@ module Jets::Builders
|
|
|
36
31
|
|
|
37
32
|
# Create symlink that will point to the gems in the Lambda Layer:
|
|
38
33
|
# stage/opt/ruby/gems/2.5.0 -> /opt/ruby/gems/2.5.0
|
|
39
|
-
FileUtils.ln_sf("/opt/ruby/gems/#{Jets::Gems.ruby_folder}", src)
|
|
34
|
+
FileUtils.ln_sf("/opt/ruby/gems/#{Jets::Api::Gems.ruby_folder}", src)
|
|
40
35
|
end
|
|
41
36
|
|
|
42
37
|
# replace_compiled_gems:
|
data/lib/jets/builders/purger.rb
CHANGED
|
@@ -11,7 +11,7 @@ module Jets::Builders
|
|
|
11
11
|
end
|
|
12
12
|
|
|
13
13
|
def symlink_gems
|
|
14
|
-
ruby_folder = Jets::Gems.ruby_folder
|
|
14
|
+
ruby_folder = Jets::Api::Gems.ruby_folder
|
|
15
15
|
# IE: @full_app_root: /tmp/jets/demo/stage/code/rack
|
|
16
16
|
dest = "#{@full_app_root}/vendor/gems/ruby/#{ruby_folder}"
|
|
17
17
|
FileUtils.mkdir_p(File.dirname(dest))
|
|
@@ -4,7 +4,7 @@ module Jets::Builders
|
|
|
4
4
|
class RubyPackager
|
|
5
5
|
include Util
|
|
6
6
|
|
|
7
|
-
GEM_REGEXP = /-(arm|x)\d+.*-(darwin|linux
|
|
7
|
+
GEM_REGEXP = /-(arm|x)\d+.*-(darwin|linux)/
|
|
8
8
|
|
|
9
9
|
attr_reader :full_app_root
|
|
10
10
|
def initialize(relative_app_root)
|
|
@@ -49,6 +49,7 @@ module Jets::Builders
|
|
|
49
49
|
|
|
50
50
|
copy_gemfiles(full_project_path)
|
|
51
51
|
copy_bundled_gems(full_project_path)
|
|
52
|
+
run_prebundle_copy
|
|
52
53
|
|
|
53
54
|
# Uncomment out to always remove the cache/vendor/gems to debug
|
|
54
55
|
# FileUtils.rm_rf("#{cache_area}/vendor/gems")
|
|
@@ -76,7 +77,7 @@ module Jets::Builders
|
|
|
76
77
|
# For example we add the jets-rails to the Gemfile.
|
|
77
78
|
copy_back_gemfile_lock
|
|
78
79
|
|
|
79
|
-
puts
|
|
80
|
+
puts 'Bundle install completed'
|
|
80
81
|
end
|
|
81
82
|
|
|
82
83
|
# Example `bundle check` error:
|
|
@@ -91,7 +92,7 @@ module Jets::Builders
|
|
|
91
92
|
# The Gemfile's dependencies are satisfied
|
|
92
93
|
#
|
|
93
94
|
def bundle_check
|
|
94
|
-
out =
|
|
95
|
+
out = ''
|
|
95
96
|
Bundler.with_unbundled_env do
|
|
96
97
|
out = `cd #{cache_area} && bundle check 2>&1`
|
|
97
98
|
end
|
|
@@ -123,7 +124,7 @@ module Jets::Builders
|
|
|
123
124
|
puts "Tidying project: removing ignored files to reduce package size."
|
|
124
125
|
tidy_project(@full_app_root)
|
|
125
126
|
# The rack sub project has it's own gitignore.
|
|
126
|
-
tidy_project(@full_app_root
|
|
127
|
+
tidy_project(@full_app_root+"/rack")
|
|
127
128
|
end
|
|
128
129
|
|
|
129
130
|
def tidy_project(path)
|
|
@@ -157,19 +158,13 @@ module Jets::Builders
|
|
|
157
158
|
|
|
158
159
|
# IE: /tmp/jets/demo/cache/vendor/gems/ruby/2.5.0/bundler/gems/webpacker-a8c46614c675
|
|
159
160
|
Dir.glob("#{cache_area}/vendor/gems/ruby/2.5.0/bundler/gems/*").each do |path|
|
|
160
|
-
sha = path.split(
|
|
161
|
+
sha = path.split('-').last[0..6] # only first 7 chars of the git sha
|
|
161
162
|
unless git_shas.include?(sha)
|
|
162
|
-
# puts "Removing old submoduled gem: #{path}" # uncomment to see and debug
|
|
163
163
|
FileUtils.rm_rf(path) # REMOVE old submodule directory
|
|
164
164
|
end
|
|
165
165
|
end
|
|
166
166
|
end
|
|
167
167
|
|
|
168
|
-
def copy_bundled_gems(full_project_path)
|
|
169
|
-
src = "#{full_project_path}/bundled_gems"
|
|
170
|
-
return unless File.exist?(src)
|
|
171
|
-
Jets::Util.cp_r(src, "#{cache_area}/bundled_gems")
|
|
172
|
-
end
|
|
173
168
|
|
|
174
169
|
def copy_gemfiles(full_project_path)
|
|
175
170
|
FileUtils.mkdir_p(cache_area)
|
|
@@ -182,6 +177,22 @@ module Jets::Builders
|
|
|
182
177
|
FileUtils.cp(gemfile_lock, dest)
|
|
183
178
|
end
|
|
184
179
|
|
|
180
|
+
def copy_bundled_gems(full_project_path)
|
|
181
|
+
src = "#{full_project_path}/bundled_gems"
|
|
182
|
+
return unless File.exist?(src)
|
|
183
|
+
Jets::Util.cp_r(src, "#{cache_area}/bundled_gems")
|
|
184
|
+
end
|
|
185
|
+
|
|
186
|
+
def run_prebundle_copy
|
|
187
|
+
paths = Jets.config.build.prebundle_copy
|
|
188
|
+
paths = Array(paths)
|
|
189
|
+
paths.each do |path|
|
|
190
|
+
src = "#{@full_app_root}/#{path}"
|
|
191
|
+
return unless File.exist?(src)
|
|
192
|
+
Jets::Util.cp_r(src, "#{cache_area}/#{path}")
|
|
193
|
+
end
|
|
194
|
+
end
|
|
195
|
+
|
|
185
196
|
# Remove the BUNDLED WITH line since we don't control the bundler gem version on AWS Lambda
|
|
186
197
|
# And this can cause issues with require 'bundler/setup'
|
|
187
198
|
def rewrite_gemfile_lock(gemfile_lock)
|
|
@@ -191,7 +202,7 @@ module Jets::Builders
|
|
|
191
202
|
# amount is the number of lines to remove
|
|
192
203
|
new_lines, capture, count, amount = [], true, 0, 2
|
|
193
204
|
lines.each do |l|
|
|
194
|
-
capture = false if l.include?(
|
|
205
|
+
capture = false if l.include?('BUNDLED WITH')
|
|
195
206
|
if capture
|
|
196
207
|
new_lines << l
|
|
197
208
|
end
|
|
@@ -204,7 +215,7 @@ module Jets::Builders
|
|
|
204
215
|
# Replace things like nokogiri (1.11.1-x86_64-darwin) => nokogiri (1.11.1)
|
|
205
216
|
lines, new_lines = new_lines, []
|
|
206
217
|
lines.each do |l|
|
|
207
|
-
l.sub!(GEM_REGEXP,
|
|
218
|
+
l.sub!(GEM_REGEXP, '') if l =~ GEM_REGEXP
|
|
208
219
|
new_lines << l
|
|
209
220
|
end
|
|
210
221
|
|
|
@@ -225,11 +236,11 @@ module Jets::Builders
|
|
|
225
236
|
next
|
|
226
237
|
end
|
|
227
238
|
|
|
228
|
-
in_platforms_section = l.include?(
|
|
239
|
+
in_platforms_section = l.include?('PLATFORMS')
|
|
229
240
|
new_lines << l
|
|
230
241
|
end
|
|
231
242
|
|
|
232
|
-
content = new_lines.join(
|
|
243
|
+
content = new_lines.join('')
|
|
233
244
|
IO.write(gemfile_lock, content)
|
|
234
245
|
end
|
|
235
246
|
|
|
@@ -250,12 +261,12 @@ module Jets::Builders
|
|
|
250
261
|
# Dont know why this is the case.
|
|
251
262
|
def create_bundle_config(frozen: false)
|
|
252
263
|
FileUtils.rm_rf("#{cache_area}/.bundle")
|
|
253
|
-
frozen_line = %
|
|
254
|
-
text
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
264
|
+
frozen_line = %Q|BUNDLE_FROZEN: "true"\n| if frozen
|
|
265
|
+
text =<<-EOL
|
|
266
|
+
---
|
|
267
|
+
#{frozen_line}BUNDLE_PATH: "vendor/gems"
|
|
268
|
+
BUNDLE_WITHOUT: "development:test"
|
|
269
|
+
EOL
|
|
259
270
|
bundle_config = "#{cache_area}/.bundle/config"
|
|
260
271
|
FileUtils.mkdir_p(File.dirname(bundle_config))
|
|
261
272
|
IO.write(bundle_config, text)
|
|
@@ -57,22 +57,26 @@ module Jets::Builders::ShimVars
|
|
|
57
57
|
end
|
|
58
58
|
|
|
59
59
|
def lang(meth)
|
|
60
|
-
klass.
|
|
60
|
+
klass.definitions.find
|
|
61
61
|
end
|
|
62
62
|
|
|
63
63
|
# This gets called in the node shim js template
|
|
64
|
-
#
|
|
64
|
+
# Example: handlers/controllers/posts_controller.index
|
|
65
65
|
def handler_for(meth)
|
|
66
|
+
"#{handler_base}.#{meth}"
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
# Base portion of handler path.
|
|
70
|
+
# Example: handlers/controllers/posts_controller
|
|
71
|
+
def handler_base
|
|
66
72
|
# possibly not include _function
|
|
67
73
|
underscored_name = @relative_path.sub(%r{app/(\w+)/},'').sub('.rb','')
|
|
68
|
-
"handlers/#{process_type.pluralize}/#{underscored_name}
|
|
74
|
+
"handlers/#{process_type.pluralize}/#{underscored_name}"
|
|
69
75
|
end
|
|
70
76
|
|
|
71
77
|
# Example return: "handlers/controllers/posts.js"
|
|
72
|
-
# TODO: rename this to dest_path or something better now since using native ruby
|
|
73
78
|
def dest_path
|
|
74
|
-
@relative_path
|
|
75
|
-
.sub("app", "handlers")
|
|
79
|
+
@relative_path.sub("app", "handlers")
|
|
76
80
|
end
|
|
77
81
|
end
|
|
78
82
|
end
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
require "bundler/setup"
|
|
2
|
+
require "jets"
|
|
3
|
+
Jets.once # runs once in lambda execution context
|
|
4
|
+
|
|
5
|
+
def lambda_handler(event:, context:)
|
|
6
|
+
if event['_prewarm']
|
|
7
|
+
Jets.process(event, context, nil)
|
|
8
|
+
return
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
<% if @vars.process_type == "controller" -%>
|
|
12
|
+
route = Jets::Router.find_route_by_event(event)
|
|
13
|
+
controller = route.controller_name
|
|
14
|
+
action = route.action_name
|
|
15
|
+
if Jets.config.cfn.build.routes == "one_apigw_method_for_all_routes"
|
|
16
|
+
event["pathParameters"] = route.rebuild_path_parameters(event) # override
|
|
17
|
+
end
|
|
18
|
+
<% end -%>
|
|
19
|
+
Jets.process(event, context, "handlers/controllers/#{controller}.#{action}")
|
|
20
|
+
end
|
|
21
|
+
<% if ENV['JETS_DEBUG_HANDLER'] %>
|
|
22
|
+
<%# JETS_DEBUG_HANDLER=1 jets build %>
|
|
23
|
+
if __FILE__ == $0
|
|
24
|
+
event = {
|
|
25
|
+
"path" => "/posts",
|
|
26
|
+
"httpMethod" => "GET",
|
|
27
|
+
"headers" => {
|
|
28
|
+
"Host" => "localhost:8888",
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
lambda_handler(event: event, context: {})
|
|
32
|
+
end
|
|
33
|
+
<% end %>
|