C:\xampp\htdocs\landing\wp-content\plugins\amp\src\Admin\RESTPreloader.php


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<?php
/**
 * Class RESTPreloader.
 *
 * @package AmpProject\AmpWP
 */

namespace AmpProject\AmpWP\Admin;

use 
AmpProject\AmpWP\Infrastructure\Service;

/**
 * Preloads REST responses for client-side applications to prevent having to call fetch on page load.
 *
 * @package AmpProject\AmpWP
 * @since 2.0
 * @internal
 */
final class RESTPreloader implements Service {

    
/**
     * Paths to preload.
     *
     * @var array
     */
    
private $paths = [];

    
/**
     * Adds a REST path to be preloaded.
     *
     * @param string $path A REST path to cache for apiFetch middleware.
     */
    
public function add_preloaded_path$path ) {
        
// Delay adding the preload_data action hook until after a path is added.
        
if ( empty( $this->paths ) ) {
            
add_action'admin_enqueue_scripts', [ $this'preload_data' ], 99 );
        }

        if ( ! 
in_array$path$this->pathstrue ) ) {
            
$this->paths[] = $path;
        }
    }

    
/**
     * Preloads data using apiFetch preloading middleware.
     */
    
public function preload_data() {
        if ( ! 
function_exists'rest_preload_api_request' ) ) { // Not available pre-5.0.
            
return;
        }

        
$preload_data array_reduce$this->paths'rest_preload_api_request', [] );

        
wp_add_inline_script(
            
'wp-api-fetch',
            
sprintf'wp.apiFetch.use( wp.apiFetch.createPreloadingMiddleware( %s ) );'wp_json_encode$preload_data ) ),
            
'after'
        
);
    }
}
x

Windows NT KPTV 6.2 build 9200 (Windows Server 2012 Datacenter Edition) i586