def compile(options)
      begin
        app_id = options.fetch(:app_id)
        asset_url_prefix = options.fetch(:assets_dir)
        name = options.fetch(:app_name)
      rescue KeyError => e
        raise ArgumentError, e.message
      end

      locale = options.fetch(:locale, 'en')

      source = manifest.iframe_only? ? nil : app_js
      app_class_name = "app-#{app_id}"
      # if no_template is an array, we still need the templates
      templates = manifest.no_template == true ? {} : compiled_templates(app_id, asset_url_prefix)

      SRC_TEMPLATE.result(
        name: name,
        version: manifest.version,
        source: source,
        app_class_properties: manifest.app_class_properties,
        asset_url_prefix: asset_url_prefix,
        logo_asset_hash: generate_logo_hash(manifest.products),
        location_icons: location_icons,
        app_class_name: app_class_name,
        author: manifest.author,
        translations: manifest.iframe_only? ? nil : runtime_translations(translations_for(locale)),
        framework_version: manifest.framework_version,
        templates: templates,
        modules: commonjs_modules,
        iframe_only: manifest.iframe_only?
      )
    end
def compile(options)
      begin
        app_id = options.fetch(:app_id)
        asset_url_prefix = options.fetch(:assets_dir)
        name = options.fetch(:app_name)
      rescue KeyError => e
        raise ArgumentError, e.message
      end

      locale = options.fetch(:locale, 'en')

      source = manifest.iframe_only? ? nil : app_js
      app_class_name = "app-#{app_id}"
      # if no_template is an array, we still need the templates
      templates = manifest.no_template == true ? {} : compiled_templates(app_id, asset_url_prefix)

      SRC_TEMPLATE.result(
        name: name,
        version: manifest.version,
        source: source,
        app_class_properties: manifest.app_class_properties,
        asset_url_prefix: asset_url_prefix,
        logo_asset_hash: generate_logo_hash(manifest.products),
        location_icons: location_icons,
        app_class_name: app_class_name,
        author: manifest.author,
        translations: manifest.iframe_only? ? nil : runtime_translations(translations_for(locale)),
        framework_version: manifest.framework_version,
        templates: templates,
        modules: commonjs_modules,
        iframe_only: manifest.iframe_only?
      )
    end
this is not really compile_js, it compiles the whole app including scss for v1 apps