Sha256: 0b0fa8db0b6e5243888e6e51832c9769565d85b1e5fc13ae9af3f01efa6f3fc1

Contents?: true

Size: 1.47 KB

Versions: 21

Compression:

Stored size: 1.47 KB

Contents

# frozen_string_literal: true

# Service to upload SourceMap files to Honeybadger during Heroku deployment
# process, once the bin/webpack step is completed.
module NeetoCommonsBackend
  class SourceMapPublishService
    def process!
      upload_all_js_source_maps
    end

    private

      def upload_all_js_source_maps
        file = File.open("public/packs/manifest.json")
        data = JSON.parse(file.read)
        file.close

        data.entries
          .filter { |file_name, _file_url| file_name.end_with?(".js") }
          .map { |_file_name, file_url| file_url }
          .each(&method(:upload_source_map))
      end

      def upload_source_map(file_url)
        relative_path = "public#{URI.parse(file_url).path}"
        minified_url = "https://*#{file_url}"
        Rails.logger.debug(
          revision: ENV["HEROKU_SLUG_COMMIT"],
          minified_url:,
          source_map: "#{relative_path}.map",
          minified_file: relative_path
        )
        begin
          Rails.logger.debug `
          curl https://api.honeybadger.io/v1/source_maps \
            -F api_key=#{ENV["HONEYBADGER_JS_API_KEY"] || ENV["HONEYBADGER_API_KEY"]} \
            -F revision=#{ENV["HEROKU_SLUG_COMMIT"]} \
            -F minified_url=#{minified_url} \
            -F source_map=@#{relative_path}.map \
            -F minified_file=@#{relative_path}
        `
        rescue RestClient::ExceptionWithResponse => e
          Rails.logger.debug e.response
        end
      end
  end
end

Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
neeto-commons-backend-1.0.109 app/services/neeto_commons_backend/source_map_publish_service.rb
neeto-commons-backend-1.0.108 app/services/neeto_commons_backend/source_map_publish_service.rb
neeto-commons-backend-1.0.107 app/services/neeto_commons_backend/source_map_publish_service.rb
neeto-commons-backend-1.0.106 app/services/neeto_commons_backend/source_map_publish_service.rb
neeto-commons-backend-1.0.105 app/services/neeto_commons_backend/source_map_publish_service.rb
neeto-commons-backend-1.0.104 app/services/neeto_commons_backend/source_map_publish_service.rb
neeto-commons-backend-1.0.103 app/services/neeto_commons_backend/source_map_publish_service.rb
neeto-commons-backend-1.0.102 app/services/neeto_commons_backend/source_map_publish_service.rb
neeto-commons-backend-1.0.101 app/services/neeto_commons_backend/source_map_publish_service.rb
neeto-commons-backend-1.0.100 app/services/neeto_commons_backend/source_map_publish_service.rb
neeto-commons-backend-1.0.99 app/services/neeto_commons_backend/source_map_publish_service.rb
neeto-commons-backend-1.0.98 app/services/neeto_commons_backend/source_map_publish_service.rb
neeto-commons-backend-1.0.97 app/services/neeto_commons_backend/source_map_publish_service.rb
neeto-commons-backend-1.0.96 app/services/neeto_commons_backend/source_map_publish_service.rb
neeto-commons-backend-1.0.95 app/services/neeto_commons_backend/source_map_publish_service.rb
neeto-commons-backend-1.0.94 app/services/neeto_commons_backend/source_map_publish_service.rb
neeto-commons-backend-1.0.93 app/services/neeto_commons_backend/source_map_publish_service.rb
neeto-commons-backend-1.0.92 app/services/neeto_commons_backend/source_map_publish_service.rb
neeto-commons-backend-1.0.91 app/services/neeto_commons_backend/source_map_publish_service.rb
neeto-commons-backend-1.0.90 app/services/neeto_commons_backend/source_map_publish_service.rb