utils.ts — astro Source File
Architecture documentation for utils.ts, a typescript file in the astro codebase. 5 imports, 0 dependents.
Entity Profile
Dependency Diagram
graph LR 03adf6e8_1b4c_5a09_95c9_bf2254d6bf4b["utils.ts"] e6591dc4_f998_7dbc_3c66_06ac5ec7fba0["../../core/session/types.js"] 03adf6e8_1b4c_5a09_95c9_bf2254d6bf4b --> e6591dc4_f998_7dbc_3c66_06ac5ec7fba0 a4f2698c_5256_262a_ba7c_f72b51878d10["../core/app/types.js"] 03adf6e8_1b4c_5a09_95c9_bf2254d6bf4b --> a4f2698c_5256_262a_ba7c_f72b51878d10 baa53824_73a3_1e03_2043_4d0c058ecca5["../types/public/index.js"] 03adf6e8_1b4c_5a09_95c9_bf2254d6bf4b --> baa53824_73a3_1e03_2043_4d0c058ecca5 a56f5589_e3c3_ced2_bdd4_5ad39a3cb093["unstorage"] 03adf6e8_1b4c_5a09_95c9_bf2254d6bf4b --> a56f5589_e3c3_ced2_bdd4_5ad39a3cb093 d9a92db9_c95e_9165_13ac_24b3d859d946["node:url"] 03adf6e8_1b4c_5a09_95c9_bf2254d6bf4b --> d9a92db9_c95e_9165_13ac_24b3d859d946 style 03adf6e8_1b4c_5a09_95c9_bf2254d6bf4b fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
import { builtinDrivers } from 'unstorage';
import type { NormalizedSessionDriverConfig, SessionDriverConfig } from './types.js';
import type { SSRManifestSession } from '../app/types.js';
import type { AstroConfig } from '../../types/public/index.js';
import { fileURLToPath } from 'node:url';
function isUnstorageDriver(driver: string): driver is keyof typeof builtinDrivers {
return driver in builtinDrivers;
}
export function normalizeSessionDriverConfig(
driver: string | SessionDriverConfig,
/** @deprecated */
options?: Record<string, any>,
): NormalizedSessionDriverConfig {
if (typeof driver !== 'string') {
return {
entrypoint:
driver.entrypoint instanceof URL ? fileURLToPath(driver.entrypoint) : driver.entrypoint,
config: driver.config,
};
}
// The fs driver cannot be bundled so we special case it
if (['fs', 'fs-lite', 'fsLite'].includes(driver)) {
return {
entrypoint: builtinDrivers.fsLite,
config: {
base: '.astro/session',
...options,
},
};
}
if (isUnstorageDriver(driver)) {
return {
entrypoint: builtinDrivers[driver],
config: options,
};
}
return {
entrypoint: driver,
config: options,
};
}
export function sessionConfigToManifest(
config: AstroConfig['session'],
): SSRManifestSession | undefined {
const sessionDriver = config?.driver;
if (!config || !sessionDriver) {
return undefined;
}
const driver = normalizeSessionDriverConfig(sessionDriver);
return {
driver: driver.entrypoint,
options: driver.config,
cookie: config.cookie,
ttl: config.ttl,
};
}
Domain
Subdomains
Dependencies
- ../../core/session/types.js
- ../core/app/types.js
- ../types/public/index.js
- node:url
- unstorage
Source
Frequently Asked Questions
What does utils.ts do?
utils.ts is a source file in the astro codebase, written in typescript. It belongs to the CoreAstro domain, RenderingEngine subdomain.
What functions are defined in utils.ts?
utils.ts defines 3 function(s): isUnstorageDriver, normalizeSessionDriverConfig, sessionConfigToManifest.
What does utils.ts depend on?
utils.ts imports 5 module(s): ../../core/session/types.js, ../core/app/types.js, ../types/public/index.js, node:url, unstorage.
Where is utils.ts in the architecture?
utils.ts is located at packages/astro/src/core/session/utils.ts (domain: CoreAstro, subdomain: RenderingEngine, directory: packages/astro/src/core/session).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free