You are here

js.module in JS Callback Handler 8.3

Same filename and directory in other branches
  1. 5.2 js.module
  2. 6 js.module
  3. 7.2 js.module
  4. 7 js.module

JS Callback Handler module.

File

js.module
View source
<?php

/**
 * @file
 * JS Callback Handler module.
 */
use Drupal\Core\Asset\AttachedAssetsInterface;

/**
 * Implements hook_element_info_alter().
 *
 * {@inheritdoc}
 */
function js_element_info_alter(array &$info) {
  foreach (array_keys($info) as $type) {
    if (!isset($info[$type]['#pre_render'])) {
      $info[$type]['#pre_render'] = [];
    }
    array_unshift($info[$type]['#pre_render'], 'js.callback:preRenderJsCallback');
    if (!isset($info[$type]['#process'])) {
      $info[$type]['#process'] = [];
    }
    array_unshift($info[$type]['#process'], '\\Drupal\\js\\Js::processJsCallback');
  }
}

/**
 * Implements hook_js_settings_build().
 *
 * {@inheritdoc}
 */
function js_js_settings_build(array &$settings, AttachedAssetsInterface $assets) {

  /** @var \Drupal\js\Js $js */
  $js = \Drupal::service('js.callback');
  $settings['js'] = [
    'endpoint' => $js
      ->getEndpoint(),
    'tokens' => $js
      ->getToken(),
  ];
}