@esbuild-kit/cjs-loader 2.4.1 → 2.4.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # cjs-loader
2
2
 
3
- Node.js `require()` hook to instantaneously transform ESM & TypeScript to CommonJS on demand using [esbuild](https://esbuild.github.io/).
3
+ Node.js `require()` hook for loading ESM & TypeScript.
4
4
 
5
5
  ### Features
6
6
  - Transforms ESM & TypeScript to CommonJS on demand
@@ -10,11 +10,25 @@ Node.js `require()` hook to instantaneously transform ESM & TypeScript to Common
10
10
  - Handles `node:` import prefixes
11
11
  - Resolves `tsconfig.json` [`paths`](https://www.typescriptlang.org/tsconfig#paths)
12
12
 
13
- > **Tip:**
13
+ > **Protip:** use with _esm-loader_ or _tsx_
14
14
  >
15
- > _cjs-loader_ doesn't hook into dynamic `import()` calls.
15
+ > _cjs-loader_ only transforms CommonJS modules (`.cjs`/`.cts` or `.js` files in `commonjs` type packages).
16
16
  >
17
- > Use this with [esm-loader](https://github.com/esbuild-kit/esm-loader) for `import()` support. Alternatively, use [tsx](https://github.com/esbuild-kit/tsx) to handle them both automatically.
17
+ > To hook into `import()` calls or ES modules (`.mjs`/`.mts` extensions or `.js` files in `module` type packages), use this with [esm-loader](https://github.com/esbuild-kit/esm-loader).
18
+ >
19
+ > Alternatively, use [tsx](https://github.com/esbuild-kit/tsx) to handle them both automatically.
20
+
21
+ <br>
22
+
23
+ <p align="center">
24
+ <a href="https://privatenumber-sponsors.vercel.app/api/sponsor?tier=platinum">
25
+ <picture>
26
+ <source width="830" media="(prefers-color-scheme: dark)" srcset="https://privatenumber-sponsors.vercel.app/api/sponsor?tier=platinum&image=dark">
27
+ <source width="830" media="(prefers-color-scheme: light)" srcset="https://privatenumber-sponsors.vercel.app/api/sponsor?tier=platinum&image">
28
+ <img width="830" src="https://privatenumber-sponsors.vercel.app/api/sponsor?tier=platinum&image" alt="Premium sponsor banner">
29
+ </picture>
30
+ </a>
31
+ </p>
18
32
 
19
33
  ## Install
20
34
 
@@ -31,8 +45,14 @@ node -r @esbuild-kit/cjs-loader ./file.js
31
45
 
32
46
  ### TypeScript configuration
33
47
  The following properties are used from `tsconfig.json` in the working directory:
34
- - `jsxFactory`
35
- - `jsxFragmentFactory`
48
+ - [`strict`](https://www.typescriptlang.org/tsconfig#strict): Whether to transform to strict mode
49
+ - [`jsx`](https://esbuild.github.io/api/#jsx): Whether to transform JSX
50
+ > **Warning:** When set to `preserve`, the JSX syntax will remain untransformed. To prevent Node.js from throwing a syntax error, chain another Node.js loader that can transform JSX to JS.
51
+ - [`jsxFactory`](https://esbuild.github.io/api/#jsx-factory): How to transform JSX
52
+ - [`jsxFragmentFactory`](https://esbuild.github.io/api/#jsx-fragment): How to transform JSX Fragments
53
+ - [`jsxImportSource`](https://www.typescriptlang.org/tsconfig#jsxImportSource): Where to import JSX functions from
54
+ - [`allowJs`](https://www.typescriptlang.org/tsconfig#allowJs): Whether to apply the tsconfig to JS files
55
+ - [`paths`](https://www.typescriptlang.org/tsconfig#paths): For resolving aliases
36
56
 
37
57
  #### Custom `tsconfig.json` path
38
58
  By default, `tsconfig.json` will be detected from the current working directory.
@@ -43,6 +63,18 @@ To set a custom path, use the `ESBK_TSCONFIG_PATH` environment variable:
43
63
  ESBK_TSCONFIG_PATH=./path/to/tsconfig.custom.json node -r @esbuild-kit/cjs-loader ./file.js
44
64
  ```
45
65
 
66
+ <br>
67
+
68
+ <p align="center">
69
+ <a href="https://privatenumber-sponsors.vercel.app/api/sponsor?tier=gold">
70
+ <picture>
71
+ <source width="830" media="(prefers-color-scheme: dark)" srcset="https://privatenumber-sponsors.vercel.app/api/sponsor?tier=gold&image=dark">
72
+ <source width="830" media="(prefers-color-scheme: light)" srcset="https://privatenumber-sponsors.vercel.app/api/sponsor?tier=gold&image">
73
+ <img width="830" src="https://privatenumber-sponsors.vercel.app/api/sponsor?tier=gold&image" alt="Premium sponsor banner">
74
+ </picture>
75
+ </a>
76
+ </p>
77
+
46
78
  ### Cache
47
79
  Modules transformations are cached in the system cache directory ([`TMPDIR`](https://en.wikipedia.org/wiki/TMPDIR)). Transforms are cached by content hash so duplicate dependencies are not re-transformed.
48
80
 
@@ -57,3 +89,29 @@ ESBK_DISABLE_CACHE=1 node -r @esbuild-kit/cjs-loader ./file.js
57
89
  - [tsx](https://github.com/esbuild-kit/tsx) - Node.js runtime powered by esbuild using [`@esbuild-kit/cjs-loader`](https://github.com/esbuild-kit/cjs-loader) and [`@esbuild-kit/esm-loader`](https://github.com/esbuild-kit/esm-loader).
58
90
 
59
91
  - [@esbuild-kit/esm-loader](https://github.com/esbuild-kit/esm-loader) - TypeScript to ESM transpiler using the Node.js loader API.
92
+
93
+
94
+ ## Sponsors
95
+
96
+ <p align="center">
97
+ <a href="https://privatenumber-sponsors.vercel.app/api/sponsor?tier=silver1">
98
+ <picture>
99
+ <source width="410" media="(prefers-color-scheme: dark)" srcset="https://privatenumber-sponsors.vercel.app/api/sponsor?tier=silver1&image=dark">
100
+ <source width="410" media="(prefers-color-scheme: light)" srcset="https://privatenumber-sponsors.vercel.app/api/sponsor?tier=silver1&image">
101
+ <img width="410" src="https://privatenumber-sponsors.vercel.app/api/sponsor?tier=silver1&image" alt="Premium sponsor banner">
102
+ </picture>
103
+ </a>
104
+ <a href="https://privatenumber-sponsors.vercel.app/api/sponsor?tier=silver2">
105
+ <picture>
106
+ <source width="410" media="(prefers-color-scheme: dark)" srcset="https://privatenumber-sponsors.vercel.app/api/sponsor?tier=silver2&image=dark">
107
+ <source width="410" media="(prefers-color-scheme: light)" srcset="https://privatenumber-sponsors.vercel.app/api/sponsor?tier=silver2&image">
108
+ <img width="410" src="https://privatenumber-sponsors.vercel.app/api/sponsor?tier=silver2&image" alt="Premium sponsor banner">
109
+ </picture>
110
+ </a>
111
+ </p>
112
+
113
+ <p align="center">
114
+ <a href="https://github.com/sponsors/privatenumber">
115
+ <img src="https://cdn.jsdelivr.net/gh/privatenumber/sponsors/sponsorkit/sponsors.svg">
116
+ </a>
117
+ </p>
package/dist/index.cjs ADDED
@@ -0,0 +1 @@
1
+ "use strict";var j=require("path"),y=require("fs"),g=require("module"),r=require("@esbuild-kit/core-utils"),l=require("get-tsconfig");function f(s){return s&&typeof s=="object"&&"default"in s?s:{default:s}}var d=f(j),E=f(y),u=f(g);const x=/^\.{0,2}\//,O=/\.[cm]?tsx?$/,P=`${d.default.sep}node_modules${d.default.sep}`,i=process.env.ESBK_TSCONFIG_PATH?{path:d.default.resolve(process.env.ESBK_TSCONFIG_PATH),config:l.parseTsconfig(process.env.ESBK_TSCONFIG_PATH)}:l.getTsconfig(),h=i&&l.createFilesMatcher(i),T=i&&l.createPathsMatcher(i),F=r.installSourceMapSupport(),M=r.compareNodeVersion([13,2,0])>=0||r.compareNodeVersion([12,20,0])>=0&&r.compareNodeVersion([13,0,0])<0,m=u.default._extensions,A=m[".js"],b=[".js",".cjs",".cts",".mjs",".mts",".ts",".tsx",".jsx"];function N(s,e){if(!b.some(t=>e.endsWith(t)))return A(s,e);process.send&&process.send({type:"dependency",path:e});let o=E.default.readFileSync(e,"utf8");if(e.endsWith(".cjs")&&M){const t=r.transformDynamicImport(e,o);t&&(o=F(t,e))}else{const t=r.transformSync(o,e,{tsconfigRaw:h==null?void 0:h(e)});o=F(t,e)}s._compile(o,e)}[".js",".ts",".tsx",".jsx"].forEach(s=>{m[s]=N}),Object.defineProperty(m,".mjs",{value:N,enumerable:!1});const D=r.compareNodeVersion([16,0,0])>=0||r.compareNodeVersion([14,18,0])>=0,p=u.default._resolveFilename;u.default._resolveFilename=function(s,e,n,o){var t;if(!D&&s.startsWith("node:")&&(s=s.slice(5)),T&&!x.test(s)&&!((t=e==null?void 0:e.filename)!=null&&t.includes(P))){const a=T(s);for(const _ of a){const v=S.call(this,_,e,n,o);if(v)return v;try{return p.call(this,_,e,n,o)}catch{}}}const c=S.call(this,s,e,n,o);return c||p.call(this,s,e,n,o)};function S(s,e,n,o){const t=r.resolveTsPath(s);if(e!=null&&e.filename&&O.test(e.filename)&&t)try{return p.call(this,t,e,n,o)}catch(c){const{code:a}=c;if(a!=="MODULE_NOT_FOUND"&&a!=="ERR_PACKAGE_PATH_NOT_EXPORTED")throw c}}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@esbuild-kit/cjs-loader",
3
- "version": "2.4.1",
3
+ "version": "2.4.3",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -20,13 +20,14 @@
20
20
  "name": "Hiroki Osame",
21
21
  "email": "hiroki.osame@gmail.com"
22
22
  },
23
+ "type": "module",
23
24
  "files": [
24
25
  "dist"
25
26
  ],
26
- "main": "./dist/index.js",
27
- "exports": "./dist/index.js",
27
+ "main": "./dist/index.cjs",
28
+ "exports": "./dist/index.cjs",
28
29
  "dependencies": {
29
- "@esbuild-kit/core-utils": "^3.0.0",
30
- "get-tsconfig": "^4.2.0"
30
+ "@esbuild-kit/core-utils": "^3.2.3",
31
+ "get-tsconfig": "^4.7.0"
31
32
  }
32
33
  }
package/dist/index.js DELETED
@@ -1 +0,0 @@
1
- "use strict";var N=require("path"),S=require("fs"),y=require("module"),r=require("@esbuild-kit/core-utils"),i=require("get-tsconfig");function f(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var _=f(N),P=f(S),d=f(y);const E=/^\.{0,2}\//,O=/\.[cm]?tsx?$/,b=`${_.default.sep}node_modules${_.default.sep}`,l=process.env.ESBK_TSCONFIG_PATH?{path:process.env.ESBK_TSCONFIG_PATH,config:i.parseTsconfig(process.env.ESBK_TSCONFIG_PATH)}:i.getTsconfig(),j=l==null?void 0:l.config,v=l&&i.createPathsMatcher(l),h=r.installSourceMapSupport(),x=r.compareNodeVersion([13,2,0])>=0||r.compareNodeVersion([12,20,0])>=0&&r.compareNodeVersion([13,0,0])<0;function T(e,s){process.send&&process.send({type:"dependency",path:s});let t=P.default.readFileSync(s,"utf8");if(s.endsWith(".cjs")&&x){const o=r.transformDynamicImport(s,t);o&&(t=h(o,s))}else{const o=r.transformSync(t,s,{tsconfigRaw:j});t=h(o,s)}e._compile(t,s)}const g=d.default._extensions;[".js",".ts",".tsx",".jsx"].forEach(e=>{g[e]=T}),Object.defineProperty(g,".mjs",{value:T,enumerable:!1});const A=r.compareNodeVersion([16,0,0])>=0||r.compareNodeVersion([14,18,0])>=0,u=d.default._resolveFilename;d.default._resolveFilename=function(e,s,t,o){var n;if(!A&&e.startsWith("node:")&&(e=e.slice(5)),v&&!E.test(e)&&!((n=s==null?void 0:s.filename)!=null&&n.includes(b))){const a=v(e);for(const p of a){const m=F.call(this,p,s,t,o);if(m)return m;try{return u.call(this,p,s,t,o)}catch{}}}const c=F.call(this,e,s,t,o);return c||u.call(this,e,s,t,o)};function F(e,s,t,o){const n=r.resolveTsPath(e);if(s&&O.test(s.filename)&&n)try{return u.call(this,n,s,t,o)}catch(c){const{code:a}=c;if(a!=="MODULE_NOT_FOUND"&&a!=="ERR_PACKAGE_PATH_NOT_EXPORTED")throw c}}