All files / src/api economicsInvalidation.ts

88.23% Statements 15/17
100% Branches 0/0
100% Functions 0/0
88.23% Lines 15/17

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127                    103x     103x           103x             103x             103x         103x         235x           9x           9x                   6x                 15x           4x                                                   16x           4x           5x                
type CacheTag = string | { type: string; id: number | string };
 
type StudyScopedArg = {
  id: number | string;
};
 
type FlowsheetScopedArg = {
  flowsheet: number | string;
};
 
export const invalidatesEconomicsSchedulePlan = ["EconomicsSchedulePlan"];
 
// Scenario and MSS data shape the available schedule choices and saved plan validity.
export const invalidatesEconomicsScheduleInputs = [
  "EconomicsScheduleOptions",
  "EconomicsSchedulePlan",
];
 
// Persisted economics settings are calculation inputs for every study using them.
export const invalidatesEconomicsSettings = [
  "EconomicsSettingsProfiles",
  "EconomicsStudies",
  "EconomicsStudyComparison",
];
 
// New cost curves refresh the catalog and equipment option pickers.
export const invalidatesEconomicsCostCurveCatalog = [
  "EconomicsCostCurves",
  "EconomicsCostCurveEquipmentOptions",
  "EconomicsStudyComparison",
];
 
// Existing curve edits can change saved study calculations in addition to catalog state.
export const invalidatesExistingEconomicsCostCurveCalculations = [
  ...invalidatesEconomicsCostCurveCatalog,
  "EconomicsStudies",
];
 
export const invalidatesEconomicsCalculationInputs = ["EconomicsStudies"];
 
export function providesEconomicsStudiesForFlowsheet(
  arg: FlowsheetScopedArg,
): CacheTag[] {
  return ["EconomicsStudies", { type: "EconomicsStudies", id: arg.flowsheet }];
}
 
export function invalidatesEconomicsStudyCollectionForFlowsheet(
  arg: FlowsheetScopedArg,
): CacheTag[] {
  return providesEconomicsStudiesForFlowsheet(arg);
}
 
export function invalidatesAfterEconomicsStudyCreate(
  arg: FlowsheetScopedArg,
): CacheTag[] {
  return [
    ...invalidatesEconomicsStudyCollectionForFlowsheet(arg),
    "EconomicsSettingsProfiles",
    "FlowsheetList",
  ];
}
 
export function invalidatesEconomicsStudyUpdate(
  arg: StudyScopedArg,
): CacheTag[] {
  return [
    ...invalidatesEconomicsCalculationInputs,
    "EconomicsStudyConfiguration",
    "EconomicsStudyComparison",
    ...providesEconomicsSchedulePlan(arg),
  ];
}
 
export function providesEconomicsSchedulePlan(arg: StudyScopedArg): CacheTag[] {
  return [{ type: "EconomicsSchedulePlan", id: arg.id }];
}
 
export function invalidatesEconomicsSchedulePlanForStudy(
  arg: StudyScopedArg,
): CacheTag[] {
  return [
    ...providesEconomicsSchedulePlan(arg),
    "EconomicsStudies",
    "EconomicsStudyComparison",
  ];
}
 
export function providesEconomicsStudyConfiguration(
  arg: StudyScopedArg,
): CacheTag[] {
  return [{ type: "EconomicsStudyConfiguration", id: arg.id }];
}
 
export function invalidatesEconomicsStudyConfiguration(
  arg: StudyScopedArg,
): CacheTag[] {
  return [
    ...providesEconomicsStudyConfiguration(arg),
    ...invalidatesEconomicsCalculationInputs,
    "EconomicsStudyComparison",
  ];
}
 
export function providesEconomicsStudyComparison(
  arg: StudyScopedArg,
): CacheTag[] {
  return [{ type: "EconomicsStudyComparison", id: arg.id }];
}
 
export function invalidatesEconomicsStudyComparison(
  arg: StudyScopedArg,
): CacheTag[] {
  return providesEconomicsStudyComparison(arg);
}
 
export function invalidatesEconomicsRecalculation(
  arg: StudyScopedArg,
): CacheTag[] {
  return [
    "EconomicsStudies",
    ...providesEconomicsStudyComparison(arg),
    "EconomicsStudyComparison",
    "SimulationObjects",
    "properties",
  ];
}