24 lines
		
	
	
		
			710 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			24 lines
		
	
	
		
			710 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 
								 | 
							
								"use strict";
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Object.defineProperty(exports, "__esModule", {
							 | 
						||
| 
								 | 
							
								  value: true
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								exports.default = stringTemplate;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var _options = require("./options");
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var _parse = _interopRequireDefault(require("./parse"));
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var _populate = _interopRequireDefault(require("./populate"));
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function stringTemplate(formatter, code, opts) {
							 | 
						||
| 
								 | 
							
								  code = formatter.code(code);
							 | 
						||
| 
								 | 
							
								  let metadata;
							 | 
						||
| 
								 | 
							
								  return arg => {
							 | 
						||
| 
								 | 
							
								    const replacements = (0, _options.normalizeReplacements)(arg);
							 | 
						||
| 
								 | 
							
								    if (!metadata) metadata = (0, _parse.default)(formatter, code, opts);
							 | 
						||
| 
								 | 
							
								    return formatter.unwrap((0, _populate.default)(metadata, replacements));
							 | 
						||
| 
								 | 
							
								  };
							 | 
						||
| 
								 | 
							
								}
							 |