You've already forked setup-python
							
							
				mirror of
				https://github.com/actions/setup-python.git
				synced 2025-10-31 15:16:23 +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; |