astro-island.ts — astro Source File
Architecture documentation for astro-island.ts, a typescript file in the astro codebase.
Entity Profile
Relationship Graph
Source Code
// Note that this file is prebuilt to astro-island.prebuilt.ts
// Do not import this file directly, instead import the prebuilt one instead.
// pnpm --filter astro run prebuild
type directiveAstroKeys = 'load' | 'idle' | 'visible' | 'media' | 'only';
declare const Astro: {
[k in directiveAstroKeys]?: (
fn: () => Promise<() => void>,
opts: Record<string, any>,
root: HTMLElement,
) => unknown;
};
{
interface PropTypeSelector {
[k: string]: (value: any) => any;
}
const propTypes: PropTypeSelector = {
0: (value) => reviveObject(value),
1: (value) => reviveArray(value),
2: (value) => new RegExp(value),
3: (value) => new Date(value),
4: (value) => new Map(reviveArray(value)),
5: (value) => new Set(reviveArray(value)),
6: (value) => BigInt(value),
7: (value) => new URL(value),
8: (value) => new Uint8Array(value),
9: (value) => new Uint16Array(value),
10: (value) => new Uint32Array(value),
11: (value) => Infinity * value,
};
// Not using JSON.parse reviver because it's bottom-up but we want top-down
const reviveTuple = (raw: any): any => {
const [type, value] = raw;
return type in propTypes ? propTypes[type](value) : undefined;
};
const reviveArray = (raw: any): any => (raw as Array<any>).map(reviveTuple);
const reviveObject = (raw: any): any => {
if (typeof raw !== 'object' || raw === null) return raw;
return Object.fromEntries(Object.entries(raw).map(([key, value]) => [key, reviveTuple(value)]));
};
// 🌊🏝🌴
class AstroIsland extends HTMLElement {
public Component: any;
public hydrator: any;
static observedAttributes = ['props'];
disconnectedCallback() {
document.removeEventListener('astro:after-swap', this.unmount);
document.addEventListener('astro:after-swap', this.unmount, { once: true });
}
connectedCallback() {
if (
// ... (157 more lines)
Domain
Subdomains
Classes
Source
Frequently Asked Questions
What does astro-island.ts do?
astro-island.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 astro-island.ts?
astro-island.ts defines 4 function(s): reviveArray, reviveObject, reviveTuple, value.
Where is astro-island.ts in the architecture?
astro-island.ts is located at packages/astro/src/runtime/server/astro-island.ts (domain: CoreAstro, subdomain: RenderingEngine, directory: packages/astro/src/runtime/server).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free