{"version":3,"file":"AggregationOption.js","sourceRoot":"","sources":["../../../src/view/AggregationOption.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,kCAAkC,EAClC,+BAA+B,EAC/B,qBAAqB,EACrB,sBAAsB,EACtB,eAAe,GAChB,MAAM,eAAe,CAAC;AAEvB,MAAM,CAAN,IAAY,eAOX;AAPD,WAAY,eAAe;IACzB,2DAAW,CAAA;IACX,qDAAQ,CAAA;IACR,mDAAO,CAAA;IACP,iEAAc,CAAA;IACd,+FAA6B,CAAA;IAC7B,uFAAyB,CAAA;AAC3B,CAAC,EAPW,eAAe,KAAf,eAAe,QAO1B;AA0CD,MAAM,UAAU,aAAa,CAAC,MAAyB;IACrD,QAAQ,MAAM,CAAC,IAAI,EAAE;QACnB,KAAK,eAAe,CAAC,OAAO;YAC1B,OAAO,mBAAmB,CAAC;QAC7B,KAAK,eAAe,CAAC,IAAI;YACvB,OAAO,gBAAgB,CAAC;QAC1B,KAAK,eAAe,CAAC,GAAG;YACtB,OAAO,eAAe,CAAC;QACzB,KAAK,eAAe,CAAC,UAAU;YAC7B,OAAO,sBAAsB,CAAC;QAChC,KAAK,eAAe,CAAC,qBAAqB,CAAC,CAAC;YAC1C,MAAM,SAAS,GAAG,MAA+C,CAAC;YAClE,OAAO,IAAI,+BAA+B,CACxC,SAAS,CAAC,OAAO,EAAE,OAAO,EAC1B,SAAS,CAAC,OAAO,EAAE,YAAY,CAChC,CAAC;SACH;QACD,KAAK,eAAe,CAAC,yBAAyB,CAAC,CAAC;YAC9C,MAAM,SAAS,GAAG,MAAoC,CAAC;YACvD,IAAI,SAAS,CAAC,OAAO,IAAI,IAAI,EAAE;gBAC7B,OAAO,qBAAqB,CAAC;aAC9B;iBAAM;gBACL,OAAO,IAAI,kCAAkC,CAC3C,SAAS,CAAC,OAAO,EAAE,UAAU,EAC7B,SAAS,CAAC,OAAO,EAAE,YAAY,CAChC,CAAC;aACH;SACF;QACD;YACE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;KAC9C;AACH,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nimport type { Aggregation } from './Aggregation';\nimport {\n  DEFAULT_AGGREGATION,\n  DROP_AGGREGATION,\n  ExplicitBucketHistogramAggregation,\n  ExponentialHistogramAggregation,\n  HISTOGRAM_AGGREGATION,\n  LAST_VALUE_AGGREGATION,\n  SUM_AGGREGATION,\n} from './Aggregation';\n\nexport enum AggregationType {\n  DEFAULT = 0,\n  DROP = 1,\n  SUM = 2,\n  LAST_VALUE = 3,\n  EXPLICIT_BUCKET_HISTOGRAM = 4,\n  EXPONENTIAL_HISTOGRAM = 5,\n}\n\nexport type SumAggregationOption = {\n  type: AggregationType.SUM;\n};\n\nexport type LastValueAggregationOption = {\n  type: AggregationType.LAST_VALUE;\n};\n\nexport type DropAggregationOption = {\n  type: AggregationType.DROP;\n};\n\nexport type DefaultAggregationOption = {\n  type: AggregationType.DEFAULT;\n};\n\nexport type HistogramAggregationOption = {\n  type: AggregationType.EXPLICIT_BUCKET_HISTOGRAM;\n  options?: {\n    recordMinMax?: boolean;\n    boundaries: number[];\n  };\n};\n\nexport type ExponentialHistogramAggregationOption = {\n  type: AggregationType.EXPONENTIAL_HISTOGRAM;\n  options?: {\n    recordMinMax?: boolean;\n    maxSize?: number;\n  };\n};\n\nexport type AggregationOption =\n  | ExponentialHistogramAggregationOption\n  | HistogramAggregationOption\n  | SumAggregationOption\n  | DropAggregationOption\n  | DefaultAggregationOption\n  | LastValueAggregationOption;\n\nexport function toAggregation(option: AggregationOption): Aggregation {\n  switch (option.type) {\n    case AggregationType.DEFAULT:\n      return DEFAULT_AGGREGATION;\n    case AggregationType.DROP:\n      return DROP_AGGREGATION;\n    case AggregationType.SUM:\n      return SUM_AGGREGATION;\n    case AggregationType.LAST_VALUE:\n      return LAST_VALUE_AGGREGATION;\n    case AggregationType.EXPONENTIAL_HISTOGRAM: {\n      const expOption = option as ExponentialHistogramAggregationOption;\n      return new ExponentialHistogramAggregation(\n        expOption.options?.maxSize,\n        expOption.options?.recordMinMax\n      );\n    }\n    case AggregationType.EXPLICIT_BUCKET_HISTOGRAM: {\n      const expOption = option as HistogramAggregationOption;\n      if (expOption.options == null) {\n        return HISTOGRAM_AGGREGATION;\n      } else {\n        return new ExplicitBucketHistogramAggregation(\n          expOption.options?.boundaries,\n          expOption.options?.recordMinMax\n        );\n      }\n    }\n    default:\n      throw new Error('Unsupported Aggregation');\n  }\n}\n"]}