Sha256: 4b89b9a631342810453ca50ca1cf4f2f927ae55ffe66dc915e1f4cf1cbb2cc4e
Contents?: true
Size: 901 Bytes
Versions: 26
Compression:
Stored size: 901 Bytes
Contents
# frozen_string_literal: true require 'singleton' require 'terser' module CKEditor5::Rails::Assets class WebComponentBundle include ActionView::Helpers::TagHelper include Singleton WEBCOMPONENTS_PATH = File.join(__dir__, 'webcomponents') WEBCOMPONENTS_MODULES = [ 'utils.mjs', 'components/editable.mjs', 'components/ui-part.mjs', 'components/editor.mjs', 'components/context.mjs' ].freeze def source @source ||= compress_source(raw_source) end def to_html(nonce: nil) tag.script(source, type: 'module', nonce: nonce) end private def raw_source @raw_source ||= WEBCOMPONENTS_MODULES.map do |file| File.read(File.join(WEBCOMPONENTS_PATH, file)) end.join("\n") end def compress_source(code) Terser.new(compress: true, mangle: true).compile(code).html_safe end end end
Version data entries
26 entries across 26 versions & 2 rubygems