pmarket-cli
Version:
CLI tool to trade on Polymarket
70 lines • 2.7 kB
JavaScript
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