You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							59 lines
						
					
					
						
							1.4 KiB
						
					
					
				
			
		
		
	
	
							59 lines
						
					
					
						
							1.4 KiB
						
					
					
				| "use strict";
 | |
| 
 | |
| exports.__esModule = true;
 | |
| exports.default = createMetaResolver;
 | |
| 
 | |
| var _utils = require("./utils");
 | |
| 
 | |
| const PossibleGlobalObjects = new Set(["global", "globalThis", "self", "window"]);
 | |
| 
 | |
| function createMetaResolver(polyfills) {
 | |
|   const {
 | |
|     static: staticP,
 | |
|     instance: instanceP,
 | |
|     global: globalP
 | |
|   } = polyfills;
 | |
|   return meta => {
 | |
|     if (meta.kind === "global" && globalP && (0, _utils.has)(globalP, meta.name)) {
 | |
|       return {
 | |
|         kind: "global",
 | |
|         desc: globalP[meta.name],
 | |
|         name: meta.name
 | |
|       };
 | |
|     }
 | |
| 
 | |
|     if (meta.kind === "property" || meta.kind === "in") {
 | |
|       const {
 | |
|         placement,
 | |
|         object,
 | |
|         key
 | |
|       } = meta;
 | |
| 
 | |
|       if (object && placement === "static") {
 | |
|         if (globalP && PossibleGlobalObjects.has(object) && (0, _utils.has)(globalP, key)) {
 | |
|           return {
 | |
|             kind: "global",
 | |
|             desc: globalP[key],
 | |
|             name: key
 | |
|           };
 | |
|         }
 | |
| 
 | |
|         if (staticP && (0, _utils.has)(staticP, object) && (0, _utils.has)(staticP[object], key)) {
 | |
|           return {
 | |
|             kind: "static",
 | |
|             desc: staticP[object][key],
 | |
|             name: `${object}$${key}`
 | |
|           };
 | |
|         }
 | |
|       }
 | |
| 
 | |
|       if (instanceP && (0, _utils.has)(instanceP, key)) {
 | |
|         return {
 | |
|           kind: "instance",
 | |
|           desc: instanceP[key],
 | |
|           name: `${key}`
 | |
|         };
 | |
|       }
 | |
|     }
 | |
|   };
 | |
| } |