Home / File/ vite-plugin-db-client.ts — astro Source File

vite-plugin-db-client.ts — astro Source File

Architecture documentation for vite-plugin-db-client.ts, a typescript file in the astro codebase. 2 imports, 0 dependents.

File typescript CoreAstro CoreMiddleware 2 imports 3 functions

Entity Profile

Dependency Diagram

graph LR
  09de2174_d4e9_aa73_d61b_3762b75c4eaa["vite-plugin-db-client.ts"]
  eda9bb18_dc7e_2d22_8ac4_4f2697d51221["./consts.js"]
  09de2174_d4e9_aa73_d61b_3762b75c4eaa --> eda9bb18_dc7e_2d22_8ac4_4f2697d51221
  6ae6435e_1314_7d59_4826_25e9a2ada03f["./utils.js"]
  09de2174_d4e9_aa73_d61b_3762b75c4eaa --> 6ae6435e_1314_7d59_4826_25e9a2ada03f
  style 09de2174_d4e9_aa73_d61b_3762b75c4eaa fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import { DB_CLIENTS, VIRTUAL_CLIENT_MODULE_ID } from '../consts.js';
import type { VitePlugin } from '../utils.js';

type VitePluginDBClientParams = {
	connectToRemote: boolean;
	mode: 'node' | 'web';
};

function getRemoteClientModule(mode: 'node' | 'web') {
	switch (mode) {
		case 'web':
			return `export { createClient } from '${DB_CLIENTS.web}';`;
		case 'node':
		default:
			return `export { createClient } from '${DB_CLIENTS.node}';`;
	}
}

function getLocalClientModule(mode: 'node' | 'web') {
	switch (mode) {
		case 'node':
		case 'web':
		default:
			return `export { createClient } from '${DB_CLIENTS.local}';`;
	}
}

const resolved = '\0' + VIRTUAL_CLIENT_MODULE_ID;

export function vitePluginDbClient(params: VitePluginDBClientParams): VitePlugin {
	return {
		name: 'virtual:astro:db-client',
		enforce: 'pre',
		resolveId: {
			filter: {
				id: new RegExp(`^${VIRTUAL_CLIENT_MODULE_ID}$`),
			},
			handler() {
				return resolved;
			},
		},
		load: {
			filter: {
				id: new RegExp(`^${resolved}$`),
			},
			handler() {
				switch (params.connectToRemote) {
					case true:
						return getRemoteClientModule(params.mode);
					case false:
					default:
						// Local client is always available, even if not used.
						return getLocalClientModule(params.mode);
				}
			},
		},
	};
}

Domain

Subdomains

Dependencies

  • ./consts.js
  • ./utils.js

Frequently Asked Questions

What does vite-plugin-db-client.ts do?
vite-plugin-db-client.ts is a source file in the astro codebase, written in typescript. It belongs to the CoreAstro domain, CoreMiddleware subdomain.
What functions are defined in vite-plugin-db-client.ts?
vite-plugin-db-client.ts defines 3 function(s): getLocalClientModule, getRemoteClientModule, vitePluginDbClient.
What does vite-plugin-db-client.ts depend on?
vite-plugin-db-client.ts imports 2 module(s): ./consts.js, ./utils.js.
Where is vite-plugin-db-client.ts in the architecture?
vite-plugin-db-client.ts is located at packages/db/src/core/integration/vite-plugin-db-client.ts (domain: CoreAstro, subdomain: CoreMiddleware, directory: packages/db/src/core/integration).

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free