Migrate remaining legacy operator workflows
This commit is contained in:
@@ -117,6 +117,48 @@
|
||||
return 0;
|
||||
}
|
||||
|
||||
function tradingHaltIdentity(value) {
|
||||
const normalized = normalizeTradingHalt(value);
|
||||
return normalized ? `${normalized.market}\u0000${normalized.stockCode}` : "";
|
||||
}
|
||||
|
||||
function nextTradingHaltNameSort(direction) {
|
||||
return direction === "descending" ? "ascending" : "descending";
|
||||
}
|
||||
|
||||
function compareCanonicalText(left, right) {
|
||||
if (left < right) return -1;
|
||||
if (left > right) return 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
function sortTradingHaltsForDisplay(values, direction) {
|
||||
if (!Array.isArray(values)) throw new TypeError("Trading-halt display rows are required.");
|
||||
if (direction !== null && direction !== "ascending" && direction !== "descending") {
|
||||
throw new TypeError("Trading-halt name sort must be ascending, descending, or null.");
|
||||
}
|
||||
if (direction === null) return [...values];
|
||||
|
||||
const nameDirection = direction === "ascending" ? 1 : -1;
|
||||
return values.map((value, sourceIndex) => {
|
||||
const normalized = normalizeTradingHalt(value);
|
||||
if (!normalized) throw new TypeError("A valid trading-halt display row is required.");
|
||||
return { value, normalized, sourceIndex };
|
||||
}).sort((left, right) => {
|
||||
const nameOrder = compareCanonicalText(
|
||||
left.normalized.displayName,
|
||||
right.normalized.displayName);
|
||||
if (nameOrder !== 0) return nameOrder * nameDirection;
|
||||
|
||||
const marketOrder = compareCanonicalText(left.normalized.market, right.normalized.market);
|
||||
if (marketOrder !== 0) return marketOrder;
|
||||
const stockCodeOrder = compareCanonicalText(
|
||||
left.normalized.stockCode,
|
||||
right.normalized.stockCode);
|
||||
return stockCodeOrder !== 0 ? stockCodeOrder : left.sourceIndex - right.sourceIndex;
|
||||
}).map(item => item.value);
|
||||
}
|
||||
|
||||
function normalizeTradingHaltSearchResponse(value, expectedRequest) {
|
||||
if (!hasExactKeys(value, [
|
||||
"requestId", "query", "retrievedAt", "totalRowCount", "truncated", "results"
|
||||
@@ -349,6 +391,9 @@
|
||||
tradingHaltActions: actions,
|
||||
normalizeTradingHalt,
|
||||
normalizeTradingHaltResult: normalizeTradingHalt,
|
||||
tradingHaltIdentity,
|
||||
nextTradingHaltNameSort,
|
||||
sortTradingHaltsForDisplay,
|
||||
createTradingHaltSearchRequest,
|
||||
normalizeTradingHaltSearchResponse,
|
||||
normalizeTradingHaltError,
|
||||
|
||||
Reference in New Issue
Block a user