esbuild-jest
Advanced tools
Comparing version 0.3.0-beta.1 to 0.3.0-beta.2
@@ -1,2 +0,14 @@ | ||
declare function process(content: string, filename: string): { | ||
import { Loader } from 'esbuild'; | ||
interface Options { | ||
jsxFactory?: string; | ||
jsxFragment?: string; | ||
sourcemap?: boolean | 'inline' | 'external'; | ||
loaders?: { | ||
[ext: string]: Loader; | ||
}; | ||
target?: string; | ||
format?: string; | ||
} | ||
declare function process(content: string, filename: string, config: any): { | ||
code: string; | ||
@@ -6,2 +18,2 @@ map: any; | ||
export { process }; | ||
export { Options, process }; |
import { transformSync } from 'esbuild'; | ||
import { extname } from 'path'; | ||
import path2, { extname } from 'path'; | ||
function process(content, filename) { | ||
const getExt = (str) => { | ||
const basename = path2.basename(str); | ||
const firstDot = basename.indexOf("."); | ||
const lastDot = basename.lastIndexOf("."); | ||
const extname2 = path2.extname(basename).replace(/(\.[a-z0-9]+).*/i, "$1"); | ||
if (firstDot === lastDot) | ||
return extname2; | ||
return basename.slice(firstDot, lastDot) + extname2; | ||
}; | ||
const getOptions = (config) => { | ||
let options = {}; | ||
for (let i = 0; i < config.transform.length; i++) { | ||
options = config.transform[i][2]; | ||
} | ||
return options; | ||
}; | ||
function process(content, filename, config) { | ||
const options = getOptions(config); | ||
const ext = getExt(filename); | ||
const loader = (options == null ? void 0 : options.loaders) && (options == null ? void 0 : options.loaders[ext]) ? options.loaders[ext] : extname(filename).slice(1); | ||
const sourcemaps = (options == null ? void 0 : options.sourcemap) ? {sourcemap: true, sourcefile: filename} : {}; | ||
const result = transformSync(content, { | ||
loader: extname(filename).slice(1), | ||
sourcefile: filename, | ||
sourcemap: true, | ||
format: "cjs", | ||
target: "es2018" | ||
loader, | ||
format: (options == null ? void 0 : options.format) || "cjs", | ||
target: (options == null ? void 0 : options.target) || "es2018", | ||
...(options == null ? void 0 : options.jsxFactory) ? {jsxFactory: options.jsxFactory} : {}, | ||
...(options == null ? void 0 : options.jsxFragment) ? {jsxFragment: options.jsxFragment} : {}, | ||
...sourcemaps | ||
}); | ||
return { | ||
code: result.code, | ||
map: { | ||
map: (result == null ? void 0 : result.map) ? { | ||
...JSON.parse(result.map), | ||
sourcesContent: null | ||
} | ||
} : "" | ||
}; | ||
@@ -19,0 +40,0 @@ } |
@@ -6,18 +6,43 @@ 'use strict'; | ||
var esbuild = require('esbuild'); | ||
var path = require('path'); | ||
var path2 = require('path'); | ||
function process(content, filename) { | ||
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } | ||
var path2__default = /*#__PURE__*/_interopDefaultLegacy(path2); | ||
const getExt = (str) => { | ||
const basename = path2__default['default'].basename(str); | ||
const firstDot = basename.indexOf("."); | ||
const lastDot = basename.lastIndexOf("."); | ||
const extname2 = path2__default['default'].extname(basename).replace(/(\.[a-z0-9]+).*/i, "$1"); | ||
if (firstDot === lastDot) | ||
return extname2; | ||
return basename.slice(firstDot, lastDot) + extname2; | ||
}; | ||
const getOptions = (config) => { | ||
let options = {}; | ||
for (let i = 0; i < config.transform.length; i++) { | ||
options = config.transform[i][2]; | ||
} | ||
return options; | ||
}; | ||
function process(content, filename, config) { | ||
const options = getOptions(config); | ||
const ext = getExt(filename); | ||
const loader = (options == null ? void 0 : options.loaders) && (options == null ? void 0 : options.loaders[ext]) ? options.loaders[ext] : path2.extname(filename).slice(1); | ||
const sourcemaps = (options == null ? void 0 : options.sourcemap) ? {sourcemap: true, sourcefile: filename} : {}; | ||
const result = esbuild.transformSync(content, { | ||
loader: path.extname(filename).slice(1), | ||
sourcefile: filename, | ||
sourcemap: true, | ||
format: "cjs", | ||
target: "es2018" | ||
loader, | ||
format: (options == null ? void 0 : options.format) || "cjs", | ||
target: (options == null ? void 0 : options.target) || "es2018", | ||
...(options == null ? void 0 : options.jsxFactory) ? {jsxFactory: options.jsxFactory} : {}, | ||
...(options == null ? void 0 : options.jsxFragment) ? {jsxFragment: options.jsxFragment} : {}, | ||
...sourcemaps | ||
}); | ||
return { | ||
code: result.code, | ||
map: { | ||
map: (result == null ? void 0 : result.map) ? { | ||
...JSON.parse(result.map), | ||
sourcesContent: null | ||
} | ||
} : "" | ||
}; | ||
@@ -24,0 +49,0 @@ } |
{ | ||
"name": "esbuild-jest", | ||
"version": "0.3.0-beta.1", | ||
"version": "0.3.0-beta.2", | ||
"description": "Jest plugin to use esbuild for transformation", | ||
@@ -24,4 +24,4 @@ "main": "esbuild-jest.js", | ||
"peerDependencies": { | ||
"esbuild": ">=0.7.8" | ||
"esbuild": ">=0.8.16" | ||
} | ||
} |
@@ -25,1 +25,34 @@ # esbuild-jest | ||
``` | ||
#### Setting up Jest config file with transformOptions | ||
```typescript | ||
export interface Options { | ||
jsxFactory?: string | ||
jsxFragment?: string | ||
sourcemap?: boolean | 'inline' | 'external' | ||
loaders?: { | ||
[ext: string]: Loader | ||
}, | ||
target?: string | ||
format?: string | ||
} | ||
``` | ||
```js | ||
{ | ||
"transform": { | ||
"^.+\\.tsx?$": [ | ||
"esbuild-jest", | ||
{ | ||
sourcemap: false, | ||
loaders: { | ||
'.spec.ts': 'tsx' | ||
} | ||
} | ||
] | ||
} | ||
} | ||
``` | ||
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
5457
100
58