Sha256: b6c5d70cded9a088f3f6a2e25be84b948edc4a4f33fea135832b4273151eb73a
Contents?: true
Size: 1.27 KB
Versions: 14
Compression:
Stored size: 1.27 KB
Contents
require 'schmooze' module Sprockets module Commoner class Bundle < Schmooze::Base dependencies generator: 'babel-generator.default', babelHelpers: 'babel-helpers', t: 'babel-types' method :generate_helpers, <<-JS function(helpers) { if (helpers.length === 0) { return ''; } var declaration = t.variableDeclaration('var', helpers.map(function(helper) { return t.variableDeclarator(t.identifier('__commoner_helper__' + helper), babelHelpers.get(helper)); }) ); return generator(declaration).code; } JS PRELUDE = <<-JS.freeze !function() { var __commoner_initialize_module__ = function(f) { var module = {exports: {}}; f.call(module.exports, module, module.exports); return module.exports; }; var global = window; JS OUTRO = <<-JS.freeze }(); JS def self.instance(env) @instance ||= new(env.root) end def self.call(input) instance(input[:environment]).call(input) end def call(input) return unless input[:metadata][:commoner_enabled] used_helpers = input[:metadata][:commoner_used_helpers] helpers = generate_helpers(used_helpers.to_a) { data: "#{PRELUDE}#{helpers}\n#{input[:data]}#{OUTRO}" } end end end end
Version data entries
14 entries across 14 versions & 1 rubygems