{"_id":"tsimportlib","_rev":"5-c5358fe536fe892ea8452c60dfd4699d","name":"tsimportlib","dist-tags":{"latest":"0.0.5"},"versions":{"0.0.1":{"name":"tsimportlib","version":"0.0.1","author":{"name":"Andrew Bradley","email":"cspotcode@gmail.com","url":"https://github.com/cspotcode"},"homepage":"https://github.com/cspotcode/tsimportlib","bugs":{"url":"https://github.com/cspotcode/tsimportlib/issues"},"keywords":["dynamic import","import","typescript","commonjs","esm","async","modules"],"gitHead":"56263c85e9ae7452d57944355df0e9897fb6c05f","description":"Node.js allows dynamic `import()` calls within CommonJS file.  TypeScript transforms `import()` into `require()` when targetting CommonJS.","_id":"tsimportlib@0.0.1","_nodeVersion":"16.2.0","_npmVersion":"7.14.0","dist":{"integrity":"sha512-tfoHpqKZL5iQOBhJl1lrElKhUsdVbqKxOMtvZVxsCYtAQQVt3L+mFH3JPopayY5yoVZZr0TWAHZ9AC+/NsWnZw==","shasum":"c084b179cd4d0c4fbcc54fc7c24d261233dd91e9","tarball":"https://registry.npmjs.org/tsimportlib/-/tsimportlib-0.0.1.tgz","fileCount":4,"unpackedSize":2124,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgu956CRA9TVsSAnZWagAAWKYP/injJzO3NsPBPg13FBrK\nwwJTEGr4v5F+uo+9QonOFFMS1C0ykpraRfddiLU/FlJf0dDXBptEFa/eFQwo\nylOH7nJp9Laqvc27Ko+Pe5ltIwnsVD4rnqHRxVRRdcp0sr3sTCcKWb0h+sNH\nMum3XPnJNbk0WAEu/OZ+Kx61uXBV074ldmm1COSBQCmDPVDg7VfGHJ8zMHmq\nN0/VmeMLRVc+YQFWEqUFbi+gbaI6mEbeKzBXEdX4aVxXAKpAxu+t+sH/JNvp\nKWwKO0erdvYcU0+fp1NIrzASckDjdiT4uPAOKzNT0OS01hG9OoOI0jPuc3f4\nzKVMNImY0oKbDWAOus0xIlus7qB4066I+ASlrrKdPGqe/6GldVVIOQXg9kfF\nAFz3qw002nlDaLmS8hPnioXfag6JdDWfBg1olWBEtghwRjSil6wFD2ySDKOL\n+vM8X+YM5c+duvRmJQOnI4KVcXDLfFbbOhuDobuNx89FC/LHn9cb/BXDrwZ/\nDhYYcYUm9X5QxMu7gbEsD8I5zjWSD+aW47FYbich3rRmBgX2htmguAMwkePO\nWUqTRChi5H4HH0UHwTZIUbDwUQg3Y7V61X3vi1iaKfY4xPRov0S0jjB4FI9o\nThMSeNeuphKFg95szKmSrutN2HoGyG9BTqNbsmxnZ6XAg0WmvBFg+NQNo/bj\nMPCW\r\n=q9C7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCID8yJX0QU99WOZ8fzGmHR1PHWQKlMEDDyZeJihqZt1InAiEAy/2dw6oEGuCaeEwYtJ6EnA95TdpgQPGb/9GrAbq7qXo="}]},"_npmUser":{"name":"cspotcode","email":"cspotcode@gmail.com"},"directories":{},"maintainers":[{"name":"cspotcode","email":"cspotcode@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tsimportlib_0.0.1_1622924922642_0.9737812306989737"},"_hasShrinkwrap":false},"0.0.2":{"name":"tsimportlib","version":"0.0.2","author":{"name":"Andrew Bradley","email":"cspotcode@gmail.com","url":"https://github.com/cspotcode"},"homepage":"https://github.com/cspotcode/tsimportlib","bugs":{"url":"https://github.com/cspotcode/tsimportlib/issues"},"keywords":["dynamic import","import","typescript","commonjs","esm","async","modules"],"gitHead":"c9c245cf2ddd8cd9894685d96014f8ab198dab7d","description":"> Currently an alpha-quality, best-effort implementation.","_id":"tsimportlib@0.0.2","_nodeVersion":"16.2.0","_npmVersion":"7.14.0","dist":{"integrity":"sha512-pm7WHANxly6+jNlAsqz844ib34PTDN3dy8fFJL3zXXD8C7HMISgJ5sErvgE9F6M9q7cNXjFV4wEBoeacRHs5kA==","shasum":"0b4cf5049f41b2c675115c050efeb1bfce6f323d","tarball":"https://registry.npmjs.org/tsimportlib/-/tsimportlib-0.0.2.tgz","fileCount":4,"unpackedSize":3083,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgu+nkCRA9TVsSAnZWagAAD7wP/1GlslFGQKYac6s9UcAc\nQbmJJQv+dBX1dxpLcwdqNQOkdCuaqfn7GP8u7G1s0b4Y6/LttHDdtHwBVF8S\n3yIWJouzdehQm4mRxgwQRadMf6nqbXVbHplKpFHWUyc4vm0+zaHAG+rWqqfg\nXgIqhpQQMkl8UndomXTMmVESoG1V3US9yyzEwp0fzSNA20UoE2iwfb4n/fZm\n6oAEhEpiZQS10TapbdmzfVFmUWcUVM9G0jyy5pR3vT+lflg/Jv24syVCeRjq\nqW8uwILq1WDhK3XiwzehILJpUA6KyNcsq883M+d/aI43BZz0qx5bSygzHXaO\n9PmWU7JyrQ3xdhTE8sF9MGp4wZgOUX6xdysUUPU//3h9slp1cMOpgkFNNNO/\nU6vQ0ccNTSp09/ddeuSC+Lq/BYHsQwaNkIHnnz5AfHZ3Oo80/EshUKgOMF61\nNuV4XEjtzsSsnd3xhhv7Ky1ZAGhVQdBKX+UzIe3Pfokia9yka14hfQPWKHxO\nCnWtXRr1+8kYPZishAQ3EGND/74xISWDWCaFJ4dGqHjfQ5bbiWJUQPlIDNnU\n1om+uHeLWOYgwd/tbYotC6xFVaRTsJwkZRhhhoblahMa4u0Q8RSyihib9HkJ\nMlRW7Kn5FWKhbOPe+/7hmaTXGMen7mjB2Qb6dzAuJSrciJVE3rSgWzfCrBZP\nNxxp\r\n=BDAo\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCN8ZVCBmxF063LWDgTWR7jO5sLgtG3dQ0fYNlgvfACBgIgFDDNxK4MivmdxEtLm8Sj+aPkdnJVIMKkAJv+wNVHloo="}]},"_npmUser":{"name":"cspotcode","email":"cspotcode@gmail.com"},"directories":{},"maintainers":[{"name":"cspotcode","email":"cspotcode@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tsimportlib_0.0.2_1622927844730_0.24644105218815926"},"_hasShrinkwrap":false},"0.0.3":{"name":"tsimportlib","version":"0.0.3","author":{"name":"Andrew Bradley","email":"cspotcode@gmail.com","url":"https://github.com/cspotcode"},"homepage":"https://github.com/cspotcode/tsimportlib","bugs":{"url":"https://github.com/cspotcode/tsimportlib/issues"},"keywords":["dynamic import","import","typescript","commonjs","esm","async","modules"],"gitHead":"27bce06ad488ce1a468be725f2981894df1e33c1","description":"> Currently an alpha-quality, best-effort implementation.","_id":"tsimportlib@0.0.3","_nodeVersion":"16.2.0","_npmVersion":"7.14.0","dist":{"integrity":"sha512-U9sW2/3D0P4IVRnhH2RCqjCP0sG66qvb4ahB0aQln5xGMphDjntz5rdk0rFZ6Fg+lW3L+i+gRnIl4VvNBvxiQw==","shasum":"008453c0f0eea6f736f2a4431171de240b21fc0d","tarball":"https://registry.npmjs.org/tsimportlib/-/tsimportlib-0.0.3.tgz","fileCount":4,"unpackedSize":3083,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgu+sTCRA9TVsSAnZWagAAlOsP/AtxiHTET2bMnDoNzRf8\ncI00TnPJdamFGKF+H3dMA/xqJung92Kgt/zKkaxcLQv1c2lzYUPpbU62I3O0\ntkdmCdIjwwXA6eHuDr5EW212XtRckkAW6Quic4eLhe0GgzcMx1nfOquAAWuz\nRDe/it0BxzCU3hY5pPic5qxdu0izS6H7GYXlbNFl5g1QGd04aple/kYYUv97\nFFGd2K3XZ6idPSh8ZoWzHaBHdPs73UJ4G/LpZB1b/bykhWe/QR8YMQc6B2Sp\n+qUaHdeZTzESOON4GaTPkUJnc4ubod2wdKbZWlI0IepJCWA6qqRtEYTJSBSd\ny32rolMVnkK3Pf0ZBSX+ZRAiM2aUahk8t0qNCagUyFFK+yUfbBRLxjwrd2je\nnPLWSYvFomEnd08UGc2+Dep5GH/sQEXvt/nitRITorQSCJbMXjj4m9FWm8Ac\n2GhkkkCRj3SHJ4xOHQufCcq/5jjgd4gtknFCndECAHFBtMbaXF0Fbh7jzlv2\nFaj6rRdBZJ379xpNe4JiiOEcyc7YglotKpPvWLvHbg9HT6iRXAMPXObUgXz9\ntx7ZKZbkf/1Xti4UlCD/3L22eicHFCO7m89xCyJyBsLyMn2RY2e2V6Hlu8pj\n37EtOASqB2PDkT5LvF3DiN3HhdbqpSLiHcsR7RvfnXYN6ueiw/ZfKQHQOZKm\nJwXv\r\n=ZOU4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCdme/eHuiyWvX11HnER1UjWnu2ZWhHvUVc0CApENIzBgIhALIepWLd8MgZx5iWBeSSYs70XvaoIdfCYX0w06WWND4f"}]},"_npmUser":{"name":"cspotcode","email":"cspotcode@gmail.com"},"directories":{},"maintainers":[{"name":"cspotcode","email":"cspotcode@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tsimportlib_0.0.3_1622928147790_0.7045645298414935"},"_hasShrinkwrap":false},"0.0.4":{"name":"tsimportlib","version":"0.0.4","author":{"name":"Andrew Bradley","email":"cspotcode@gmail.com","url":"https://github.com/cspotcode"},"homepage":"https://github.com/cspotcode/tsimportlib","bugs":{"url":"https://github.com/cspotcode/tsimportlib/issues"},"keywords":["dynamic import","import","typescript","commonjs","esm","async","modules"],"types":"./index.d.ts","gitHead":"0604abff02674254f640d90010d5bc833e3e944c","description":"> Currently an alpha-quality, best-effort implementation.   > May be unnecessary if you use TypeScript's `\"module\": \"NodeNext\", \"moduleResolution\": \"NodeNext\"`","_id":"tsimportlib@0.0.4","_nodeVersion":"18.9.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-oYmAdOJDoX5JGQEbbV5uH8iyotuOV9MV0hEHSruyFKiSwXZ3I4zCFshmuRMXCvZeHEeAw5Vdj26Z7E5CnAuHzA==","shasum":"90a70a091f8a7cd39c4e54500f287c8da68f2cd6","tarball":"https://registry.npmjs.org/tsimportlib/-/tsimportlib-0.0.4.tgz","fileCount":4,"unpackedSize":3196,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDR+XA4fIjQI9Rj8mXLSwyALFQuTSF1vKDcybgRR9QpiAiBiDxGr957thYMXSyMEuWnM10FXdjs7/xPBb7eUmfm8Hg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkQeWwACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr54g/7Bz8UZXAXp3aRayu7OEUPBQadfWzoxff5uI4UDPa7FzKg1b0r\r\nTn2yHI9kJ5L431F9/ggalOVta/wTahqIhHmYEXmTDuzOOO81lnZvXYBSfdp8\r\n97Fq1D5T4r5RF4lVJQjtWTPR8OvnfghSRTI92Q2jOC+knOz3imgiRSe5NRxs\r\nVQClhGViEWUawBMGE7yRulaitpgwTIeI+5Ed9YN1aH9Zd7ZsVtTAjTFfTmDp\r\nUgUwAU8eelJfZ1bi/MnMzsTj73mQsD7wqG+KKf93DVaz4KjqIikZpVDGeVGE\r\n0PWbVdclWKUEWxT7FgOg51/28IA/FdgTvsODm5SEp89f5NbQGxr3eFudzh2G\r\nJwSY1T/7t+mogTrlSXNarhAfL+R2kL4mH+trRk7jjKRDUECoI63c8b+8/AYk\r\nVcwQSECxCPaI5oYtnxsG6uAqm+eYEPEsBIjaNI0nLQPVdW8OX8hDm3JtSAF6\r\n2Hx6iVU0A0pSh3fCncu0j8hS30rZr0OGg9ng1C0MeAsg+L490FujxWDJ0wPG\r\nybmM2yBoHC+5kQS7Ij0XdEeHldklBQ5K5fJAQhkRMEroZTwXvHWfoDwTvnPp\r\nZDfa4wlZqWPjC4MdcrbLzmH9FXf6rFXZ6aizSwSqxUwOSIr6y8ZbhZrTRd2H\r\nqlzFyEP9ArANUd01Xb2rLC5jhsffqrw1Afw=\r\n=ho/+\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"cspotcode","email":"cspotcode@gmail.com"},"directories":{},"maintainers":[{"name":"cspotcode","email":"cspotcode@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tsimportlib_0.0.4_1682040240055_0.5207381837560647"},"_hasShrinkwrap":false},"0.0.5":{"name":"tsimportlib","version":"0.0.5","author":{"name":"Andrew Bradley","email":"cspotcode@gmail.com","url":"https://github.com/cspotcode"},"homepage":"https://github.com/cspotcode/tsimportlib","bugs":{"url":"https://github.com/cspotcode/tsimportlib/issues"},"keywords":["dynamic import","import","typescript","commonjs","esm","async","modules"],"types":"./index.d.ts","description":"> Currently an alpha-quality, best-effort implementation.   > May be unnecessary if you use TypeScript's `\"module\": \"NodeNext\", \"moduleResolution\": \"NodeNext\"`","_id":"tsimportlib@0.0.5","_integrity":"sha512-qWQv/C3YB4Pwj77Z2HlORfy5EsWHcSYt66VQlMM0xZiKXwtoe1SxfpzmHX62sdJgzU6esrBGtyRIlx6O2OFPrQ==","_resolved":"C:\\Users\\cspot\\Downloads\\tsimportlib-0.0.5.tgz","_from":"file:Downloads\\tsimportlib-0.0.5.tgz","_nodeVersion":"19.0.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-qWQv/C3YB4Pwj77Z2HlORfy5EsWHcSYt66VQlMM0xZiKXwtoe1SxfpzmHX62sdJgzU6esrBGtyRIlx6O2OFPrQ==","shasum":"6ba8497a19b7dd5a9198209d9b167c9eb84d7fb1","tarball":"https://registry.npmjs.org/tsimportlib/-/tsimportlib-0.0.5.tgz","fileCount":4,"unpackedSize":3313,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCthfb1lXZ0HTc4qUm1F2wK/CJBxHbFxuLj7RVBoFfyUgIgIrTWWDuElEPcSp/naOopXzGMxJWLWg1BPGciBC2nHKA="}]},"_npmUser":{"name":"cspotcode","email":"cspotcode@gmail.com"},"directories":{},"maintainers":[{"name":"cspotcode","email":"cspotcode@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tsimportlib_0.0.5_1684271221109_0.9711397456732327"},"_hasShrinkwrap":false}},"time":{"created":"2021-06-05T20:28:42.642Z","0.0.1":"2021-06-05T20:28:42.760Z","modified":"2023-05-16T21:07:01.421Z","0.0.2":"2021-06-05T21:17:24.837Z","0.0.3":"2021-06-05T21:22:27.937Z","0.0.4":"2023-04-21T01:24:00.221Z","0.0.5":"2023-05-16T21:07:01.285Z"},"maintainers":[{"name":"cspotcode","email":"cspotcode@gmail.com"}],"description":"> Currently an alpha-quality, best-effort implementation.   > May be unnecessary if you use TypeScript's `\"module\": \"NodeNext\", \"moduleResolution\": \"NodeNext\"`","homepage":"https://github.com/cspotcode/tsimportlib","keywords":["dynamic import","import","typescript","commonjs","esm","async","modules"],"author":{"name":"Andrew Bradley","email":"cspotcode@gmail.com","url":"https://github.com/cspotcode"},"bugs":{"url":"https://github.com/cspotcode/tsimportlib/issues"},"readme":"## Dynamic import within TS compiled to CommonJS\n\n> Currently an alpha-quality, best-effort implementation.  \n> May be unnecessary if you use TypeScript's `\"module\": \"NodeNext\", \"moduleResolution\": \"NodeNext\"`\n\nNode.js allows dynamic `import()` calls within CommonJS file.  TypeScript transforms `import()` into `require()` when targetting CommonJS.\n\nThis presents a problem when a `.ts` file compiled to CommonJS wants to do a truly async, dynamic import of a native ESM module.  How do we\navoid TypeScript's transformation from `import()` to `require()`?\n\nThis library implements a workaround.  Replace `import('lib')` with `dynamicImport('lib', module)`.\n\n```typescript\nimport {dynamicImport} from 'tsimportlib';\n\nasync function main() {\n    const dynamicallyImportedEsmModule = await dynamicImport('truly-esm-module', module) as typeof import('truly-esm-module');\n}\n\nasync function loadPlugin(name: string) {\n    // In this example, plugins may or may not be native ESM, so we use dynamic import to support both.\n    const dynamicallyImportedPlugin = await dynamicImport(name, module) as MyPluginInterface;\n}\n```\n\n### Limitations\n\nDue to Node.js limitations, we must use the CommonJS resolver to locate modules.\nThis should work well enough for third-party modules, but may not work for dual-mode modules\nor ones that suppress importing of their package.json file.  As a fallback you can pass an absolute path\nto the target module.","readmeFilename":"README.md"}