Initial Commit

This commit is contained in:
2026-05-27 23:47:53 +01:00
parent fbc70f96e6
commit 9b28db724f
18103 changed files with 1600554 additions and 0 deletions

View File

@@ -0,0 +1,59 @@
import type {
PackedResourceLoadOptions,
StreamLoadEntry,
} from "../loader/loader-stream.types.js";
import type { PackedResourceManager } from "./manager.js";
import type { PackedResourceLoadCallOptions } from "./manager.types.js";
import type { ManagerStreamedEntry } from "./manager-stream.types.js";
/**
* Implementation of `PackedResourceManager.loadStream`. Builds the
* loader-side options bundle, drives the loader's streaming iterator,
* and inserts each entry into the manager's cache + emits a `load`
* event before yielding to the caller.
*
* Kept as a free function so `manager.ts` stays under the 300-line
* hard cap (CLAUDE.md §3).
*/
export async function* managerLoadStream(
manager: PackedResourceManager,
opts: PackedResourceLoadCallOptions,
inputs: ReadonlyArray<string | StreamLoadEntry>
): AsyncIterableIterator<ManagerStreamedEntry> {
manager._checkAbortedExt(opts.signal);
const loadOpts = buildLoaderOptions(manager, opts);
for await (const entry of manager
.getLoader()
.loadStream(inputs, loadOpts)) {
manager._streamInsert(
entry.inputUrl,
opts.verifyKey,
entry.blob,
entry.url,
entry.metadata
);
yield {
url: entry.url,
inputUrl: entry.inputUrl,
metadata: entry.metadata,
};
}
}
function buildLoaderOptions(
manager: PackedResourceManager,
opts: PackedResourceLoadCallOptions
): PackedResourceLoadOptions {
const loadOpts: PackedResourceLoadOptions = {};
if (opts.verifyChecksum !== undefined)
loadOpts.verifyChecksum = opts.verifyChecksum;
if (opts.verifyKey !== undefined) loadOpts.verifyKey = opts.verifyKey;
if (opts.signal !== undefined) loadOpts.signal = opts.signal;
if (opts.retryConfig !== undefined) loadOpts.retryConfig = opts.retryConfig;
if (opts.allowedMimePrefixes !== undefined)
loadOpts.allowedMimePrefixes = opts.allowedMimePrefixes;
if (opts.keyring !== undefined) loadOpts.keyring = opts.keyring;
const resolver = manager._getDefaultResolver();
if (resolver !== undefined) loadOpts.messageResolver = resolver;
return loadOpts;
}