-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathwp-critical-css-aws-lambda.php
executable file
·66 lines (53 loc) · 1.68 KB
/
wp-critical-css-aws-lambda.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
61
62
63
64
65
66
<?php
/**
* Plugin Name: AWS Lambda Critical CSS
* Description: Generates critical stylesheets for templates via AWS Lambda.
* Version: 3.0.0
* Author: Innocode
* Author URI: https://innocode.com
* Tested up to: 6.0.0
* License: GPLv2 or later
* License URI: http://www.gnu.org/licenses/gpl-2.0.html
*/
if ( file_exists( __DIR__ . '/vendor/autoload.php' ) ) {
require_once __DIR__ . '/vendor/autoload.php';
}
use Innocode\CriticalCSS;
define( 'INNOCODE_CRITICAL_CSS', __FILE__ );
if (
! defined( 'AWS_LAMBDA_CRITICAL_CSS_KEY' ) ||
! defined( 'AWS_LAMBDA_CRITICAL_CSS_SECRET' ) ||
! defined( 'AWS_LAMBDA_CRITICAL_CSS_REGION' )
) {
return;
}
$GLOBALS['critical_css'] = new CriticalCSS\Plugin(
AWS_LAMBDA_CRITICAL_CSS_KEY,
AWS_LAMBDA_CRITICAL_CSS_SECRET,
AWS_LAMBDA_CRITICAL_CSS_REGION
);
if ( ! defined( 'AWS_LAMBDA_CRITICAL_CSS_FUNCTION' ) ) {
define( 'AWS_LAMBDA_CRITICAL_CSS_FUNCTION', 'critical-css-production-processor' );
}
$GLOBALS['critical_css']
->get_lambda()
->set_function( AWS_LAMBDA_CRITICAL_CSS_FUNCTION );
if ( ! defined( 'AWS_LAMBDA_CRITICAL_CSS_DB_TABLE' ) ) {
define( 'AWS_LAMBDA_CRITICAL_CSS_DB_TABLE', 'innocode_critical_css' );
}
$GLOBALS['critical_css']
->get_db()
->set_table( AWS_LAMBDA_CRITICAL_CSS_DB_TABLE );
$GLOBALS['critical_css']->run();
if ( ! function_exists( 'innocode_critical_css' ) ) {
function innocode_critical_css() : CriticalCSS\Plugin {
global $critical_css;
if ( is_null( $critical_css ) ) {
trigger_error(
'Missing required constants or no styles included',
E_USER_ERROR
);
}
return $critical_css;
}
}