You are here

function advagg_font_libraries_info in Advanced CSS/JS Aggregation 7.2

Implements hook_libraries_info().

Related topics

File

advagg_font/advagg_font.module, line 221
Advanced aggregation font module.

Code

function advagg_font_libraries_info() {
  $libraries['fontfaceobserver'] = array(
    // Only used in administrative UI of Libraries API.
    'name' => 'fontfaceobserver',
    'vendor url' => 'https://github.com/bramstein/fontfaceobserver',
    'download url' => 'https://github.com/bramstein/fontfaceobserver/archive/master.zip',
    'version arguments' => array(
      'file' => 'package.json',
      // 1.50. : "version": "1.5.0".
      'pattern' => '/"version":\\s+"([0-9\\.]+)"/',
      'lines' => 100,
      'default_version' => '2.1.0',
    ),
    'remote' => array(
      'callback' => 'advagg_get_github_version_json',
      'url' => 'https://cdn.jsdelivr.net/gh/bramstein/fontfaceobserver@master/package.json',
    ),
    'files' => array(
      'js' => array(
        'fontfaceobserver.js' => array(
          'type' => 'file',
          'group' => JS_LIBRARY,
          'async' => TRUE,
          'defer' => TRUE,
        ),
      ),
    ),
    'variants' => array(),
  );

  // Get the latest tagged version for external file loading.
  $version = advagg_get_remote_libraries_version('fontfaceobserver', $libraries['fontfaceobserver']);
  $libraries['fontfaceobserver']['variants'] += array(
    'external' => array(
      'files' => array(
        'js' => array(
          "https://cdn.jsdelivr.net/gh/bramstein/fontfaceobserver@v{$version}/fontfaceobserver.js" => array(
            'type' => 'external',
            'data' => "https://cdn.jsdelivr.net/gh/bramstein/fontfaceobserver@v{$version}/fontfaceobserver.js",
            'async' => TRUE,
            'defer' => TRUE,
          ),
        ),
      ),
    ),
  );

  // Inline if local js is there.
  $libraries_paths = array();
  if (is_callable('libraries_get_libraries')) {
    $libraries_paths = libraries_get_libraries();
  }
  if (!empty($libraries_paths['fontfaceobserver']) && is_readable($libraries_paths['fontfaceobserver'] . '/fontfaceobserver.js')) {
    $libraries['fontfaceobserver']['variants'] += array(
      'inline' => array(
        'files' => array(
          'js' => array(
            'loadCSS_inline' => array(
              'type' => 'inline',
              'data' => (string) @advagg_file_get_contents($libraries_paths['fontfaceobserver'] . '/fontfaceobserver.js'),
              'no_defer' => TRUE,
            ),
          ),
        ),
      ),
    );
  }
  return $libraries;
}