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}` | 
						|
        }; | 
						|
      } | 
						|
    } | 
						|
  }; | 
						|
} |