Sha256: 693013b817ce4797e2a8d2587c6923c0c0fa70902ddfd48f044db09c7c81c5db
Contents?: true
Size: 1.82 KB
Versions: 1
Compression:
Stored size: 1.82 KB
Contents
require 'uri' module SewingKit module Webpack # Webpack manifest loading, caching & entry point retrieval class Manifest # Raised if we can't read our webpack manifest for whatever reason class ManifestLoadError < StandardError def initialize(message, orig) super "#{message} (original error #{orig})" end end # Raised if a supplied entry point does not exist in the webpack manifest class EntryPointMissingError < StandardError end class << self # :nodoc: def asset_paths(source) paths = manifest[source] if paths paths else raise EntryPointMissingError, "Can't find entry point '#{source}' in webpack manifest" end end def manifest if ::Rails.env.production? # Cache at class level, as JSON loading/parsing can be expensive. @manifest ||= load_manifest else # Cache if we're outside of production; manifest may change. load_manifest end end private def manifest_bundled? !manifest["errors"].any? { |error| error.include? "Module build failed" } end def load_manifest data = load_static_manifest JSON.parse(data) end def load_static_manifest File.read(static_manifest_path) rescue => e raise ManifestLoadError.new("Could not load compiled manifest from #{static_manifest_path} - have you run `rake sewing_kit:compile`?", e) end def static_manifest_path ::Rails.root.join( ::Rails.configuration.sewing_kit.webpack.manifest_dir, ::Rails.configuration.sewing_kit.webpack.manifest_filename ) end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
sewing_kit-0.4.6 | lib/sewing_kit/webpack/manifest.rb |