flow-map.js 1.6 KB

12345678910111213141516171819202122232425
  1. "use strict";
  2. exports.__esModule = true;
  3. var flow_mapping_1 = require("../factories/flow-mapping");
  4. var flow_mapping_item_1 = require("../factories/flow-mapping-item");
  5. var extract_comments_1 = require("../utils/extract-comments");
  6. var get_flow_map_item_additional_ranges_1 = require("../utils/get-flow-map-item-additional-ranges");
  7. var get_last_1 = require("../utils/get-last");
  8. var group_cst_flow_collection_items_1 = require("../utils/group-cst-flow-collection-items");
  9. var pair_1 = require("./pair");
  10. function transformFlowMap(flowMap, context) {
  11. var cstItemsWithoutComments = extract_comments_1.extractComments(flowMap.cstNode.items, context);
  12. var groupedCstItems = group_cst_flow_collection_items_1.groupCstFlowCollectionItems(cstItemsWithoutComments);
  13. var flowMappingItems = flowMap.items.map(function (pair, index) {
  14. var cstNodes = groupedCstItems[index];
  15. var _a = get_flow_map_item_additional_ranges_1.getFlowMapItemAdditionalRanges(cstNodes), additionalKeyRange = _a.additionalKeyRange, additionalValueRange = _a.additionalValueRange;
  16. return pair_1.transformAstPair(pair, context, flow_mapping_item_1.createFlowMappingItem, additionalKeyRange, additionalValueRange);
  17. });
  18. var openMarker = cstItemsWithoutComments[0];
  19. var closeMarker = get_last_1.getLast(cstItemsWithoutComments);
  20. return flow_mapping_1.createFlowMapping(context.transformRange({
  21. origStart: openMarker.origOffset,
  22. origEnd: closeMarker.origOffset + 1
  23. }), context.transformContent(flowMap), flowMappingItems);
  24. }
  25. exports.transformFlowMap = transformFlowMap;