@fastly/compute-js-static-publish
Version:
Static Publisher for Fastly Compute JavaScript
40 lines • 2.27 kB
TypeScript
import { type KVStoreEntry } from 'fastly:kv-store';
import { type StaticPublishRc } from '../../models/config/static-publish-rc.js';
import { type PublisherServerConfigNormalized } from '../../models/config/publisher-server-config.js';
import { type ContentCompressionTypes } from '../../models/compression/index.js';
import { type KVAssetEntry, type KVAssetEntryMap, type KVAssetVariantMetadata } from '../../models/assets/kvstore-assets.js';
type KVAssetVariant = {
kvStoreEntry: KVStoreEntry;
} & KVAssetVariantMetadata;
export declare function buildHeadersSubset(responseHeaders: Headers, keys: Readonly<string[]>): Headers;
type AssetInit = {
status?: number;
headers?: Record<string, string>;
cache?: 'extended' | 'never' | null;
};
export declare class PublisherServer {
constructor(publishId: string, kvStoreName: string, defaultCollectionName: string);
static fromStaticPublishRc(config: StaticPublishRc): PublisherServer;
publishId: string;
kvStoreName: string;
defaultCollectionName: string;
activeCollectionName: string;
collectionNameHeader: string | null;
settingsCached: PublisherServerConfigNormalized | null | undefined;
kvAssetsIndex: KVAssetEntryMap | null | undefined;
setActiveCollectionName(collectionName: string): void;
setCollectionNameHeader(collectionHeader: string | null): void;
getServerConfig(): Promise<PublisherServerConfigNormalized | null>;
getStaticItems(): Promise<(string | RegExp)[]>;
getKvAssetsIndex(): Promise<KVAssetEntryMap | null>;
getMatchingAsset(assetKey: string, applyAuto?: boolean): Promise<KVAssetEntry | null>;
findAcceptEncodingsGroups(request: Request): Promise<ContentCompressionTypes[][]>;
testExtendedCache(pathname: string): Promise<boolean>;
handlePreconditions(request: Request, asset: KVAssetEntry, responseHeaders: Headers): Response | null;
loadKvAssetVariant(entry: KVAssetEntry, variant: ContentCompressionTypes | null): Promise<KVAssetVariant | null>;
private findKVAssetVariantForAcceptEncodingsGroups;
serveAsset(request: Request, asset: KVAssetEntry, init?: AssetInit): Promise<Response>;
serveRequest(request: Request): Promise<Response | null>;
}
export {};
//# sourceMappingURL=index.d.ts.map