jskelet 0.2.5 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +132 -132
- package/CHANGELOG.md +403 -383
- package/LICENSE +21 -21
- package/bin/jskelet.mjs +103 -103
- package/docs/01-baslangic.md +285 -285
- package/docs/02-mimari.md +293 -287
- package/docs/03-routing.md +486 -480
- package/docs/04-render-ve-sablonlar.md +490 -490
- package/docs/05-islands.md +482 -482
- package/docs/06-cache.md +1231 -1209
- package/docs/07-yapilandirma.md +44 -21
- package/docs/08-build.md +366 -366
- package/docs/09-dev-araclari.md +335 -335
- package/docs/10-dagitim.md +329 -329
- package/docs/11-tasima.md +1 -0
- package/docs/12-panel-ve-oturum.md +384 -384
- package/docs/README.md +105 -105
- package/docs/en/01-getting-started.md +292 -292
- package/docs/en/02-architecture.md +311 -305
- package/docs/en/03-routing.md +503 -497
- package/docs/en/04-rendering.md +504 -504
- package/docs/en/05-islands.md +492 -492
- package/docs/en/06-caching.md +1197 -1198
- package/docs/en/07-configuration.md +1009 -986
- package/docs/en/08-build.md +383 -383
- package/docs/en/09-dev-tools.md +342 -342
- package/docs/en/10-deployment.md +332 -332
- package/docs/en/11-migration.md +360 -359
- package/docs/en/12-dashboards-and-sessions.md +392 -392
- package/docs/en/README.md +112 -112
- package/package.json +102 -102
- package/src/build/ensure-build.mjs +15 -15
- package/src/build/paths.mjs +143 -143
- package/src/build/resolve-peer.mjs +36 -36
- package/src/build/tasks/client.mjs +268 -268
- package/src/build/tasks/css.mjs +124 -124
- package/src/build/tasks/fonts.mjs +146 -146
- package/src/build/tasks/icons.mjs +224 -224
- package/src/build/tasks/images.mjs +244 -244
- package/src/build/tasks/precompress.mjs +78 -78
- package/src/client/{cache-panel → admin}/i18n.js +756 -670
- package/src/client/{cache-panel → admin}/login.html +74 -74
- package/src/client/{cache-panel → admin}/panel.css +804 -756
- package/src/client/admin/panel.html +486 -0
- package/src/client/{cache-panel → admin}/panel.js +1242 -915
- package/src/client/devtools/report.html +185 -185
- package/src/client/devtools/report.js +725 -725
- package/src/client/dom.js +95 -95
- package/src/client/form.js +192 -192
- package/src/client/index.js +35 -35
- package/src/client/registry.js +297 -297
- package/src/client/safe-image.js +91 -91
- package/src/client/store.js +36 -36
- package/src/client/swap.js +188 -188
- package/src/config/defaults.js +16 -7
- package/src/config/index.js +38 -22
- package/src/config/pattern.js +107 -107
- package/src/http/control-flow.js +71 -71
- package/src/http/cookies.js +257 -257
- package/src/http/request-cache.js +46 -46
- package/src/http/request-context.js +162 -162
- package/src/index.js +83 -83
- package/src/init.mjs +221 -221
- package/src/log.mjs +58 -0
- package/src/runtime/alias-hooks.mjs +119 -119
- package/src/runtime/register.mjs +4 -4
- package/src/server/admin/actions.js +229 -0
- package/src/server/admin/auth.js +125 -0
- package/src/server/admin/event-log.js +151 -0
- package/src/server/admin/gate.js +209 -0
- package/src/server/admin/inventory.js +188 -0
- package/src/server/admin/mount.js +56 -0
- package/src/server/admin/router.js +216 -0
- package/src/server/admin/snapshot.js +126 -0
- package/src/server/assets.js +147 -147
- package/src/server/cache-deps.js +42 -42
- package/src/server/cloudflare.js +607 -607
- package/src/server/create-app.js +295 -291
- package/src/server/data-cache.js +462 -462
- package/src/server/dev/report.js +369 -369
- package/src/server/dev/socket.js +170 -170
- package/src/server/dev/version-check.mjs +139 -139
- package/src/server/html-cache.js +817 -817
- package/src/server/metadata.js +102 -102
- package/src/server/middleware/compression.js +205 -205
- package/src/server/middleware/csrf.js +134 -134
- package/src/server/middleware/dev-gate.js +62 -62
- package/src/server/middleware/headers.js +37 -37
- package/src/server/middleware/redirects.js +32 -32
- package/src/server/middleware/static-precompressed.js +100 -100
- package/src/server/middleware/trailing-slash.js +53 -0
- package/src/server/middleware/upstream-proxy.js +141 -141
- package/src/server/prewarm.js +601 -601
- package/src/server/redis.js +569 -569
- package/src/server/router.js +128 -128
- package/src/server/status-page.js +164 -164
- package/src/server/upstream-limiter.js +376 -376
- package/src/server/upstream-tracking.js +166 -166
- package/src/start.mjs +7 -7
- package/src/templates/layout.ejs +44 -44
- package/src/version.mjs +31 -31
- package/src/views/components/loader.js +85 -85
- package/src/views/helpers/html.js +102 -102
- package/src/views/helpers/tags.js +245 -245
- package/src/client/cache-panel/panel.html +0 -308
- package/src/server/cache-panel.js +0 -759
package/src/server/cache-deps.js
CHANGED
|
@@ -1,42 +1,42 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Bir render'ın hangi veri anahtarlarını okuduğunu kaydeder.
|
|
3
|
-
*
|
|
4
|
-
* `request-cache.js` ile aynı desen: `AsyncLocalStorage`, bağlam yoksa her şey
|
|
5
|
-
* sessizce devre dışı. Script'ten, cron'dan ya da istek dışı bir yerden yapılan
|
|
6
|
-
* `withDataCache` çağrıları hiçbir şeye yazılmaz.
|
|
7
|
-
*
|
|
8
|
-
* Neden gerekli: HTML önbelleğinin elinde "bu sayfa şu içerikten etkilenir"
|
|
9
|
-
* bilgisi yoktu, dolayısıyla bir içerik güncellendiğinde tek seçenek TTL'i
|
|
10
|
-
* beklemek ya da tüm önbelleği boşaltmaktı. Bağımlılığı uygulamanın elle
|
|
11
|
-
* bildirmesi (tag'lemek) ise en sık yapılan hatayı davet ediyor: detay
|
|
12
|
-
* sayfasını işaretleyip aynı içeriği listeleyen ana sayfayı unutmak.
|
|
13
|
-
*
|
|
14
|
-
* Burada bildirim yok, **gözlem** var: render sırasında fiilen okunan anahtarlar
|
|
15
|
-
* kaydedilir. Ana sayfa o veriyi okuduysa listede olur, okumadıysa olmaz.
|
|
16
|
-
*/
|
|
17
|
-
import { AsyncLocalStorage } from "node:async_hooks";
|
|
18
|
-
|
|
19
|
-
/** @type {AsyncLocalStorage<Set<string>>} */
|
|
20
|
-
const storage = new AsyncLocalStorage();
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* `run`'ı, içindeki `recordDependency()` çağrılarının `deps`'e yazacağı bir
|
|
24
|
-
* bağlamda çalıştırır.
|
|
25
|
-
*
|
|
26
|
-
* @template T
|
|
27
|
-
* @param {Set<string>} deps
|
|
28
|
-
* @param {() => T} run
|
|
29
|
-
* @returns {T}
|
|
30
|
-
*/
|
|
31
|
-
export function collectDependencies(deps, run) {
|
|
32
|
-
return storage.run(deps, run);
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* Bu render'ın bir veri anahtarını okuduğunu bildirir. Bağlam yoksa no-op.
|
|
37
|
-
*
|
|
38
|
-
* @param {string} key
|
|
39
|
-
*/
|
|
40
|
-
export function recordDependency(key) {
|
|
41
|
-
storage.getStore()?.add(key);
|
|
42
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* Bir render'ın hangi veri anahtarlarını okuduğunu kaydeder.
|
|
3
|
+
*
|
|
4
|
+
* `request-cache.js` ile aynı desen: `AsyncLocalStorage`, bağlam yoksa her şey
|
|
5
|
+
* sessizce devre dışı. Script'ten, cron'dan ya da istek dışı bir yerden yapılan
|
|
6
|
+
* `withDataCache` çağrıları hiçbir şeye yazılmaz.
|
|
7
|
+
*
|
|
8
|
+
* Neden gerekli: HTML önbelleğinin elinde "bu sayfa şu içerikten etkilenir"
|
|
9
|
+
* bilgisi yoktu, dolayısıyla bir içerik güncellendiğinde tek seçenek TTL'i
|
|
10
|
+
* beklemek ya da tüm önbelleği boşaltmaktı. Bağımlılığı uygulamanın elle
|
|
11
|
+
* bildirmesi (tag'lemek) ise en sık yapılan hatayı davet ediyor: detay
|
|
12
|
+
* sayfasını işaretleyip aynı içeriği listeleyen ana sayfayı unutmak.
|
|
13
|
+
*
|
|
14
|
+
* Burada bildirim yok, **gözlem** var: render sırasında fiilen okunan anahtarlar
|
|
15
|
+
* kaydedilir. Ana sayfa o veriyi okuduysa listede olur, okumadıysa olmaz.
|
|
16
|
+
*/
|
|
17
|
+
import { AsyncLocalStorage } from "node:async_hooks";
|
|
18
|
+
|
|
19
|
+
/** @type {AsyncLocalStorage<Set<string>>} */
|
|
20
|
+
const storage = new AsyncLocalStorage();
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* `run`'ı, içindeki `recordDependency()` çağrılarının `deps`'e yazacağı bir
|
|
24
|
+
* bağlamda çalıştırır.
|
|
25
|
+
*
|
|
26
|
+
* @template T
|
|
27
|
+
* @param {Set<string>} deps
|
|
28
|
+
* @param {() => T} run
|
|
29
|
+
* @returns {T}
|
|
30
|
+
*/
|
|
31
|
+
export function collectDependencies(deps, run) {
|
|
32
|
+
return storage.run(deps, run);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Bu render'ın bir veri anahtarını okuduğunu bildirir. Bağlam yoksa no-op.
|
|
37
|
+
*
|
|
38
|
+
* @param {string} key
|
|
39
|
+
*/
|
|
40
|
+
export function recordDependency(key) {
|
|
41
|
+
storage.getStore()?.add(key);
|
|
42
|
+
}
|