MCPcopy
hub / github.com/vitejs/vite / createServerCloseFn

Function createServerCloseFn

packages/vite/src/node/server/index.ts:1122–1158  ·  packages/vite/src/node/server/index.ts::createServerCloseFn
(
  server: HttpServer | null,
)

Source from the content-addressed store, hash-verified

1120}
1121
1122export function createServerCloseFn(
1123 server: HttpServer | null,
1124): () => Promise<void> {
1125 if (!server) {
1126 return () => Promise.resolve()
1127 }
1128
1129 let hasListened = false
1130 const openSockets = new Set<net.Socket>()
1131
1132 server.on(class="st">'connection', (socket) => {
1133 openSockets.add(socket)
1134 socket.on(class="st">'close', () => {
1135 openSockets.delete(socket)
1136 })
1137 })
1138
1139 server.once(class="st">'listening', () => {
1140 hasListened = true
1141 })
1142
1143 return () =>
1144 new Promise<void>((resolve, reject) => {
1145 openSockets.forEach((s) => s.destroy())
1146 if (hasListened) {
1147 server.close((err) => {
1148 if (err) {
1149 reject(err)
1150 } else {
1151 resolve()
1152 }
1153 })
1154 } else {
1155 resolve()
1156 }
1157 })
1158}
1159
1160function resolvedAllowDir(root: string, dir: string): string {
1161 return normalizePath(path.resolve(root, dir))

Callers 2

previewFunction · 0.90
_createServerFunction · 0.85

Calls 6

addMethod · 0.80
deleteMethod · 0.80
resolveMethod · 0.65
onMethod · 0.65
closeMethod · 0.65
resolveFunction · 0.50

Tested by

no test coverage detected