UNPKG

@chocolateboy/uncommonjs

Version:

A minimum viable shim for module.exports

2 lines (1 loc) 1.3 kB
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).UnCommonJS=t()}(this,(function(){"use strict";const{assign:e,defineProperty:t,is:r,keys:n}=Object,{get:o,ownKeys:u}=Reflect,i=()=>!1,s={}.toString,f=e=>e&&"[object Object]"===s.call(e)&&(e.constructor||Object)===Object,l=(e,t,n)=>{let o;if("symbol"==typeof t)o=t;else for(let u,i=0;o=t+(0===i?"":`_${i}`),u=e.hasOwnProperty(o)&&e[o],u;++i)if(n.get===u.get&&r(n.value,u.value))return!0;return e[o]=n,!0},c=e=>{throw new Error(`Can't require ${e}: require is not implemented`)};return(r={})=>{let s=r.require||c;const a={},p=new Proxy(a,{defineProperty:l,get(e,t,r){if(!e.hasOwnProperty(t))return o(e,t);const{get:n,value:u}=e[t];return n?n.call(r):u},preventExtensions:i,set:(e,t,r)=>l(e,t,{value:r,configurable:!0,enumerable:!0,writable:!0}),setPrototypeOf:i}),d=function require(e){return s(e)},y={get exported(){return u(a).reduce(((r,n)=>t(r,n,e({},a[n],{enumerable:!0}))),{})},get exports(){return p},set exports(e){if(f(e))for(const t of n(e))p[t]=e[t];const t="function"==typeof e&&e.name?e.name:"default";p[t]=e},get require(){return d},set require(e){s=e}};return{exports:p,module:y,require:d}}}));