Skip to content

Commit dd48f9c

Browse files
committed
fix(src): only majors with dependabot, speed up cookie script
1 parent e66bf4a commit dd48f9c

File tree

2 files changed

+92
-50
lines changed

2 files changed

+92
-50
lines changed

.github/dependabot.yml

Lines changed: 37 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,83 +1,93 @@
11
version: 2
22
updates:
3-
# Enable version updates for base npm
3+
# Base npm
44
- package-ecosystem: "npm"
55
directory: "/"
66
schedule:
77
interval: "weekly"
88
groups:
99
base-npm:
10-
patterns:
11-
- "*"
10+
patterns: ["*"]
1211
ignore:
1312
- dependency-name: "*"
14-
update-types: ["version-update:semver-patch"]
15-
# Enable version updates for GitHub Actions
13+
update-types:
14+
- "version-update:semver-minor"
15+
- "version-update:semver-patch"
16+
# GitHub Actions
1617
- package-ecosystem: "github-actions"
1718
directory: "/"
1819
schedule:
1920
interval: "weekly"
2021
groups:
2122
actions:
22-
patterns:
23-
- "*"
24-
# Enable version updates for automations uv
23+
patterns: ["*"]
24+
ignore:
25+
- dependency-name: "*"
26+
update-types:
27+
- "version-update:semver-minor"
28+
- "version-update:semver-patch"
29+
# Automations (uv)
2530
- package-ecosystem: "uv"
2631
directory: "/automations/"
2732
schedule:
2833
interval: "weekly"
2934
groups:
3035
automations-uv:
31-
patterns:
32-
- "*"
36+
patterns: ["*"]
3337
ignore:
3438
- dependency-name: "*"
35-
update-types: ["version-update:semver-patch"]
36-
# Enable version updates for examples uv
39+
update-types:
40+
- "version-update:semver-minor"
41+
- "version-update:semver-patch"
42+
# Examples (python / uv)
3743
- package-ecosystem: "uv"
3844
directory: "/examples/developer-hub-python/"
3945
schedule:
4046
interval: "weekly"
4147
groups:
4248
examples-uv:
43-
patterns:
44-
- "*"
49+
patterns: ["*"]
4550
ignore:
4651
- dependency-name: "*"
47-
update-types: ["version-update:semver-patch"]
48-
# Enable version updates for examples js
52+
update-types:
53+
- "version-update:semver-minor"
54+
- "version-update:semver-patch"
55+
# Examples (js / npm)
4956
- package-ecosystem: "npm"
5057
directory: "/examples/developer-hub-javascript/"
5158
schedule:
5259
interval: "weekly"
5360
groups:
5461
examples-js:
55-
patterns:
56-
- "*"
62+
patterns: ["*"]
5763
ignore:
5864
- dependency-name: "*"
59-
update-types: ["version-update:semver-patch"]
60-
# Enable version updates for examples go
65+
update-types:
66+
- "version-update:semver-minor"
67+
- "version-update:semver-patch"
68+
# Examples (go / gomod)
6169
- package-ecosystem: "gomod"
6270
directory: "/examples/developer-hub-go/"
6371
schedule:
6472
interval: "weekly"
6573
groups:
6674
examples-go:
67-
patterns:
68-
- "*"
75+
patterns: ["*"]
6976
ignore:
7077
- dependency-name: "*"
71-
update-types: ["version-update:semver-patch"]
72-
# Enable version updates for examples rust
78+
update-types:
79+
- "version-update:semver-minor"
80+
- "version-update:semver-patch"
81+
# Examples (rust / cargo)
7382
- package-ecosystem: "cargo"
7483
directory: "/examples/developer-hub-rust/"
7584
schedule:
7685
interval: "weekly"
7786
groups:
7887
examples-rust:
79-
patterns:
80-
- "*"
88+
patterns: ["*"]
8189
ignore:
8290
- dependency-name: "*"
83-
update-types: ["version-update:semver-patch"]
91+
update-types:
92+
- "version-update:semver-minor"
93+
- "version-update:semver-patch"

static/js/cookie-loader.js

Lines changed: 55 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,58 @@
1-
// Wait for the page to be fully loaded and interactive
2-
document.addEventListener("DOMContentLoaded", function () {
3-
// Check if we already have consent to avoid showing the banner unnecessarily
4-
if (document.cookie.indexOf("cookieyes-consent") !== -1) {
5-
// If we already have consent, load the CookieYes script immediately
6-
loadCookieScript();
7-
return;
1+
(function () {
2+
const COOKIEYES_ID = "cookieyes";
3+
const COOKIEYES_SRC =
4+
"https://cdn-cookieyes.com/client_data/dedcd40fe7e8316d7512b294/script.js";
5+
const FALLBACK_DELAY_MS = 2000;
6+
7+
function hasCookie(name) {
8+
const cookies = document.cookie ? document.cookie.split(";") : [];
9+
const prefix = `${encodeURIComponent(name)}=`;
10+
11+
for (const c of cookies) {
12+
const trimmed = c.trim();
13+
if (trimmed.startsWith(prefix)) return true;
14+
}
15+
return false;
816
}
917

10-
// If we don't have consent yet, delay loading the cookie banner
11-
// This ensures it doesn't compete with critical content
12-
setTimeout(function () {
13-
loadCookieScript();
14-
}, 2000); // 2-second delay to improve LCP
15-
});
16-
17-
// Function to load the CookieYes script
18-
function loadCookieScript() {
19-
const script = document.createElement("script");
20-
script.defer = true;
21-
script.id = "cookieyes";
22-
script.src =
23-
"https://cdn-cookieyes.com/client_data/dedcd40fe7e8316d7512b294/script.js";
18+
function alreadyInjected() {
19+
return (
20+
document.getElementById(COOKIEYES_ID) != null ||
21+
Array.from(document.scripts).some((s) => s.src === COOKIEYES_SRC)
22+
);
23+
}
24+
25+
function loadCookieScript() {
26+
if (alreadyInjected()) return;
27+
28+
const script = document.createElement("script");
29+
script.id = COOKIEYES_ID;
30+
script.src = COOKIEYES_SRC;
31+
script.async = true;
2432

25-
document.body.appendChild(script);
26-
}
33+
(document.head || document.documentElement).appendChild(script);
34+
}
35+
36+
function scheduleLoad() {
37+
if (hasCookie("cookieyes-consent")) {
38+
loadCookieScript();
39+
return;
40+
}
41+
42+
// Minimize impact on LCP/INP
43+
if (typeof window.requestIdleCallback === "function") {
44+
window.requestIdleCallback(() => loadCookieScript(), {
45+
timeout: FALLBACK_DELAY_MS,
46+
});
47+
} else {
48+
window.setTimeout(loadCookieScript, FALLBACK_DELAY_MS);
49+
}
50+
}
51+
52+
// Handle all states safely
53+
if (document.readyState === "loading") {
54+
document.addEventListener("DOMContentLoaded", scheduleLoad, { once: true });
55+
} else {
56+
scheduleLoad();
57+
}
58+
})();

0 commit comments

Comments
 (0)