mirror of
				https://gitea.com/actions/setup-python.git
				synced 2025-10-31 17:18:07 +07:00 
			
		
		
		
	
		
			
				
	
	
		
			148 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			148 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 'use strict';
 | |
| 
 | |
| Object.defineProperty(exports, '__esModule', {
 | |
|   value: true
 | |
| });
 | |
| exports.printElementAsLeaf = exports.printElement = exports.printComment = exports.printText = exports.printChildren = exports.printProps = void 0;
 | |
| 
 | |
| var _escapeHTML = _interopRequireDefault(require('./escapeHTML'));
 | |
| 
 | |
| function _interopRequireDefault(obj) {
 | |
|   return obj && obj.__esModule ? obj : {default: obj};
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
 | |
|  *
 | |
|  * This source code is licensed under the MIT license found in the
 | |
|  * LICENSE file in the root directory of this source tree.
 | |
|  */
 | |
| // Return empty string if keys is empty.
 | |
| const printProps = (keys, props, config, indentation, depth, refs, printer) => {
 | |
|   const indentationNext = indentation + config.indent;
 | |
|   const colors = config.colors;
 | |
|   return keys
 | |
|     .map(key => {
 | |
|       const value = props[key];
 | |
|       let printed = printer(value, config, indentationNext, depth, refs);
 | |
| 
 | |
|       if (typeof value !== 'string') {
 | |
|         if (printed.indexOf('\n') !== -1) {
 | |
|           printed =
 | |
|             config.spacingOuter +
 | |
|             indentationNext +
 | |
|             printed +
 | |
|             config.spacingOuter +
 | |
|             indentation;
 | |
|         }
 | |
| 
 | |
|         printed = '{' + printed + '}';
 | |
|       }
 | |
| 
 | |
|       return (
 | |
|         config.spacingInner +
 | |
|         indentation +
 | |
|         colors.prop.open +
 | |
|         key +
 | |
|         colors.prop.close +
 | |
|         '=' +
 | |
|         colors.value.open +
 | |
|         printed +
 | |
|         colors.value.close
 | |
|       );
 | |
|     })
 | |
|     .join('');
 | |
| }; // Return empty string if children is empty.
 | |
| 
 | |
| exports.printProps = printProps;
 | |
| 
 | |
| const printChildren = (children, config, indentation, depth, refs, printer) =>
 | |
|   children
 | |
|     .map(
 | |
|       child =>
 | |
|         config.spacingOuter +
 | |
|         indentation +
 | |
|         (typeof child === 'string'
 | |
|           ? printText(child, config)
 | |
|           : printer(child, config, indentation, depth, refs))
 | |
|     )
 | |
|     .join('');
 | |
| 
 | |
| exports.printChildren = printChildren;
 | |
| 
 | |
| const printText = (text, config) => {
 | |
|   const contentColor = config.colors.content;
 | |
|   return (
 | |
|     contentColor.open + (0, _escapeHTML.default)(text) + contentColor.close
 | |
|   );
 | |
| };
 | |
| 
 | |
| exports.printText = printText;
 | |
| 
 | |
| const printComment = (comment, config) => {
 | |
|   const commentColor = config.colors.comment;
 | |
|   return (
 | |
|     commentColor.open +
 | |
|     '<!--' +
 | |
|     (0, _escapeHTML.default)(comment) +
 | |
|     '-->' +
 | |
|     commentColor.close
 | |
|   );
 | |
| }; // Separate the functions to format props, children, and element,
 | |
| // so a plugin could override a particular function, if needed.
 | |
| // Too bad, so sad: the traditional (but unnecessary) space
 | |
| // in a self-closing tagColor requires a second test of printedProps.
 | |
| 
 | |
| exports.printComment = printComment;
 | |
| 
 | |
| const printElement = (
 | |
|   type,
 | |
|   printedProps,
 | |
|   printedChildren,
 | |
|   config,
 | |
|   indentation
 | |
| ) => {
 | |
|   const tagColor = config.colors.tag;
 | |
|   return (
 | |
|     tagColor.open +
 | |
|     '<' +
 | |
|     type +
 | |
|     (printedProps &&
 | |
|       tagColor.close +
 | |
|         printedProps +
 | |
|         config.spacingOuter +
 | |
|         indentation +
 | |
|         tagColor.open) +
 | |
|     (printedChildren
 | |
|       ? '>' +
 | |
|         tagColor.close +
 | |
|         printedChildren +
 | |
|         config.spacingOuter +
 | |
|         indentation +
 | |
|         tagColor.open +
 | |
|         '</' +
 | |
|         type
 | |
|       : (printedProps && !config.min ? '' : ' ') + '/') +
 | |
|     '>' +
 | |
|     tagColor.close
 | |
|   );
 | |
| };
 | |
| 
 | |
| exports.printElement = printElement;
 | |
| 
 | |
| const printElementAsLeaf = (type, config) => {
 | |
|   const tagColor = config.colors.tag;
 | |
|   return (
 | |
|     tagColor.open +
 | |
|     '<' +
 | |
|     type +
 | |
|     tagColor.close +
 | |
|     ' …' +
 | |
|     tagColor.open +
 | |
|     ' />' +
 | |
|     tagColor.close
 | |
|   );
 | |
| };
 | |
| 
 | |
| exports.printElementAsLeaf = printElementAsLeaf;
 |