ts-pkgx
Version:
A library & CLI for managing packages
81 lines • 4.26 kB
TypeScript
import { aliases } from './packages/aliases';
import type { FetchProjectsOptions, PackageFetchOptions, PkgxPackage, ProjectFolder } from './types';
export declare function savePackageAsTypeScript(outputDir: string, domainName: string, packageInfo: PkgxPackage): string;
/**
* Checks if a cached package exists and is still valid
* @param packageName Name of the package to check
* @param options Cache options
* @returns The cached package data if valid, null otherwise
*/
export declare function getValidCachedPackage(packageName: string, options?: PackageFetchOptions): { packageInfo: PkgxPackage, filePath: string } | null;
/**
* Saves package data to the cache
* @param packageName Name of the package
* @param packageInfo Package data to cache
* @param options Cache options
* @returns Path to the cached file
*/
export declare function saveToCacheAndOutput(packageName: string, packageInfo: PkgxPackage, options?: PackageFetchOptions): { cachePath: string, outputPath: string };
/**
* Ensures all browser resources are properly closed
*/
export declare function cleanupBrowserResources(): Promise<void>;
/**
* Fetches project folder names from the pkgxdev pantry repository using GitHub API
* @param options Optional configuration
* @returns Promise resolving to an array of project folders
*/
export declare function fetchPkgxProjects(options?: FetchProjectsOptions): Promise<ProjectFolder[]>;
/**
* Fetches package information from pkgx.dev using Playwright
* @param packageName The name of the package to fetch
* @param options Optional configuration
* @returns Promise resolving to package information with original name and full domain name
*/
export declare function fetchPantryPackage(packageName: string, options?: PackageFetchOptions): Promise<{ packageInfo: PkgxPackage, originalName: string, fullDomainName: string }>;
/**
* Sets up process exit handlers to ensure proper cleanup
*/
export declare function setupCleanupHandlers(): void;
// Start a periodic cleanup task
export declare function startPeriodicCleanup(): void;
/**
* Fetches and saves all packages using the local pantry as source of truth
*/
export declare function fetchAndSaveAllPackages(options?: PackageFetchOptions): Promise<string[]>;
/**
* Fetch and save a single package with improved handling for problematic packages
* @param packageName The name of the package to fetch
* @param outputDir Directory to save package data
* @param timeout Timeout in milliseconds
* @param saveAsJson Whether to save as JSON (true) or TypeScript (false)
* @param retryNumber Current retry attempt number
* @param maxRetries Maximum number of retry attempts
* @param debug Whether to enable debug mode
* @param options Additional options
* @returns Promise with result information
*/
export declare function fetchAndSavePackage(packageName: string, outputDir: string, timeout: number, saveAsJson?: any, retryNumber?: any, maxRetries?: any, debug?: any, options?: PackageFetchOptions): Promise<{ success: boolean, fullDomainName?: string, aliases?: string[], filePath?: string }>;
/**
* Check if a package has meaningful data and should be saved
*/
/**
* Scans the local pantry directory and extracts all available packages
* @param pantryDir Path to the pantry directory (default: 'src/pantry')
* @returns Array of package names found in the pantry
*/
export declare function scanPantryPackages(pantryDir?: any): Promise<string[]>;
/**
* Reads package.yml file and extracts basic package information
* @param packageName The package name (e.g., 'github.com/user/repo')
* @param pantryDir Path to the pantry directory
* @returns Basic package information from package.yml
*/
export declare function readPantryPackageInfo(packageName: string, pantryDir?: any): Promise<Partial<PkgxPackage> | null>;
/**
* Combines pantry package data with additional metadata from pkgx.dev
* @param packageName The package name (e.g., 'github.com/user/repo')
* @param options Fetch options including pantry directory
* @returns Complete package information
*/
export declare function fetchPantryPackageWithMetadata(packageName: string, options?: PackageFetchOptions): Promise<{ packageInfo: PkgxPackage, originalName: string, fullDomainName: string } | null>;