UNPKG

@lineai/gov-deals

Version:

Explore Federal contracts for government building renovations, city hall renovations, courthouse updates, library modernizations, federal building improvement contracts, base housing and facilities upgrades.

66 lines 3.36 kB
/** * Factory for creating data source instances */ import { SamApi } from '../clients/sam'; import { CsvApi } from './csv'; /** * Factory function to create appropriate data source */ export function createGovDealsApi(config) { switch (config.type) { case 'api': return createApiDataSource(config); case 'csv': return createCsvDataSource(config); default: throw new Error(`Unknown data source type: ${config.type}`); } } /** * Create SAM.gov API data source */ function createApiDataSource(config) { if (!config.apiKey) { throw new Error('API key is required for SAM.gov data source'); } const options = { apiKey: config.apiKey, baseUrl: config.baseUrl, timeout: config.timeout, debug: config.debug, }; return new SamApi(options); } /** * Create CSV data source */ function createCsvDataSource(config) { if (!config.csvPath) { throw new Error('CSV path is required for CSV data source'); } const options = { csvPath: config.csvPath, cacheResults: true, }; return new CsvApi(options); } /** * Configuration helper for historical data mode */ export function createHistoricalConfig(csvPath = './scratch/FY2025_opportunities.csv') { return { type: 'csv', csvPath, }; } /** * Configuration helper for production mode */ export function createProductionConfig(apiKey, baseUrl) { return { type: 'api', apiKey, baseUrl, }; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kYXRhc291cmNlcy9mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsT0FBTyxFQUFFLE1BQU0sRUFBaUIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsTUFBTSxFQUFpQixNQUFNLE9BQU8sQ0FBQztBQWU5Qzs7R0FFRztBQUNILE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxNQUF3QjtJQUN4RCxRQUFRLE1BQU0sQ0FBQyxJQUFJLEVBQUU7UUFDbkIsS0FBSyxLQUFLO1lBQ1IsT0FBTyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNyQyxLQUFLLEtBQUs7WUFDUixPQUFPLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JDO1lBQ0UsTUFBTSxJQUFJLEtBQUssQ0FBQyw2QkFBNkIsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7S0FDL0Q7QUFDSCxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFTLG1CQUFtQixDQUFDLE1BQXdCO0lBQ25ELElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBQ2xCLE1BQU0sSUFBSSxLQUFLLENBQUMsNkNBQTZDLENBQUMsQ0FBQztLQUNoRTtJQUVELE1BQU0sT0FBTyxHQUFrQjtRQUM3QixNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU07UUFDckIsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPO1FBQ3ZCLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTztRQUN2QixLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUs7S0FDcEIsQ0FBQztJQUVGLE9BQU8sSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDN0IsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBUyxtQkFBbUIsQ0FBQyxNQUF3QjtJQUNuRCxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRTtRQUNuQixNQUFNLElBQUksS0FBSyxDQUFDLDBDQUEwQyxDQUFDLENBQUM7S0FDN0Q7SUFFRCxNQUFNLE9BQU8sR0FBa0I7UUFDN0IsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPO1FBQ3ZCLFlBQVksRUFBRSxJQUFJO0tBQ25CLENBQUM7SUFFRixPQUFPLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQzdCLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxzQkFBc0IsQ0FBQyxVQUFrQixvQ0FBb0M7SUFDM0YsT0FBTztRQUNMLElBQUksRUFBRSxLQUFLO1FBQ1gsT0FBTztLQUNSLENBQUM7QUFDSixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsc0JBQXNCLENBQUMsTUFBYyxFQUFFLE9BQWdCO0lBQ3JFLE9BQU87UUFDTCxJQUFJLEVBQUUsS0FBSztRQUNYLE1BQU07UUFDTixPQUFPO0tBQ1IsQ0FBQztBQUNKLENBQUMifQ==