UNPKG

pmarket-cli

Version:
70 lines 2.7 kB
import { ListStrategy } from "./list-strategy.js"; import { BuyStrategy } from "./buy-strategy.js"; import { SellStrategy } from "./sell-strategy.js"; import { AllowanceStrategy } from "./allowance-strategy.js"; import { OrderBookStrategy } from "./order-book-strategy.js"; import { CancelAllStrategy } from "./cancel-all-strategy.js"; import { ApiKeysStrategy } from "./api-keys-strategy.js"; import { RefreshStrategy } from "./refresh-strategy.js"; import { InitStrategy } from "./init-strategy.js"; import { PositionsStrategy } from "./positions-strategy.js"; import { RedeemStrategy } from "./redeem-strategy.js"; export class Context { polymarketService; contractService; cacheService; configService; strategy; constructor(polymarketService, contractService, cacheService, configService) { this.polymarketService = polymarketService; this.contractService = contractService; this.cacheService = cacheService; this.configService = configService; } setStrategy = (strategy) => { this.strategy = strategy; }; executeStrategy = async (options) => { if (this.strategy) { await this.strategy.execute(options); } }; determineStrategy = (options) => { // Init should be checked first - it works without a valid private key if (options.init) { return new InitStrategy(this.configService); } if (options.list) { return new ListStrategy(this.cacheService); } if (options.refresh) { return new RefreshStrategy(this.polymarketService, this.cacheService); } if (options.buy && Array.isArray(options.buy) && options.buy.length === 3) { return new BuyStrategy(this.polymarketService); } if (options.sell && Array.isArray(options.sell) && options.sell.length === 3) { return new SellStrategy(this.polymarketService); } if (options.positions) { return new PositionsStrategy(this.polymarketService); } if (options.allowance) { return new AllowanceStrategy(this.contractService); } if (options.orderBook) { return new OrderBookStrategy(this.polymarketService); } if (options.cancelAll) { return new CancelAllStrategy(this.polymarketService); } if (options.keys) { return new ApiKeysStrategy(this.polymarketService); } if (options.redeem) { return new RedeemStrategy(this.polymarketService, this.contractService); } return undefined; }; } //# sourceMappingURL=context.js.map