MCPcopy Create free account
hub / github.com/TanStack/cli / createWorkerCreate

Function createWorkerCreate

packages/create/src/worker.ts:98–309  ·  view source on GitHub ↗
(
  manifestLoader: WorkerManifestLoader,
)

Source from the content-addressed store, hash-verified

96}
97
98export function createWorkerCreate(
99 manifestLoader: WorkerManifestLoader,
100): WorkerCreateAPI {
101 let frameworksPromise: Promise<Array<Framework>> | undefined
102 const frameworkChunks = new Map<string, Promise<ManifestFrameworkChunk>>()
103 const addOnChunks = new Map<string, Promise<ManifestAddOnChunk>>()
104 const loadedRendererChunks = new Map<string, Array<ManifestTemplateModule>>()
105 const addOnFrameworkIds = new WeakMap<AddOn, string>()
106
107 function getRendererChunks(frameworkId: string) {
108 const chunks = loadedRendererChunks.get(frameworkId)
109 if (chunks) {
110 return chunks
111 }
112
113 const nextChunks: Array<ManifestTemplateModule> = []
114 loadedRendererChunks.set(frameworkId, nextChunks)
115 return nextChunks
116 }
117
118 function registerRendererChunk(
119 frameworkId: string,
120 chunk: ManifestTemplateModule,
121 ) {
122 const chunks = getRendererChunks(frameworkId)
123 if (!chunks.includes(chunk)) {
124 chunks.push(chunk)
125 }
126 }
127
128 function getRenderer(frameworkId: string) {
129 return createChunkRenderer(() => getRendererChunks(frameworkId))
130 }
131
132 async function loadFrameworkChunk(frameworkId: string) {
133 let promise = frameworkChunks.get(frameworkId)
134 if (!promise) {
135 promise = manifestLoader
136 .loadFramework(frameworkId)
137 .then((chunk) => {
138 registerRendererChunk(frameworkId, chunk)
139 return chunk
140 })
141 .catch((error: unknown) => {
142 frameworkChunks.delete(frameworkId)
143 throw error
144 })
145 frameworkChunks.set(frameworkId, promise)
146 }
147
148 return promise
149 }
150
151 async function loadAddOnChunk(frameworkId: string, addOnId: string) {
152 const key = `${frameworkId}:${addOnId}`
153 let promise = addOnChunks.get(key)
154 if (!promise) {
155 promise = manifestLoader

Callers 1

Calls

no outgoing calls

Tested by

no test coverage detected