@jsenv/plugin-commonjs 0.3.3 → 1.0.1

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jsenv/plugin-commonjs",
3
- "version": "0.3.3",
3
+ "version": "1.0.1",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",
@@ -13,8 +13,8 @@
13
13
  "type": "module",
14
14
  "main": "./main.js",
15
15
  "dependencies": {
16
- "@jsenv/filesystem": "4.1.1",
17
- "@jsenv/log": "3.1.0",
16
+ "@jsenv/filesystem": "4.1.3",
17
+ "@jsenv/log": "3.2.0",
18
18
  "@jsenv/url-meta": "7.0.0",
19
19
  "@jsenv/urls": "1.2.7",
20
20
  "@rollup/plugin-commonjs": "22.0.1",
@@ -24,9 +24,9 @@
24
24
  "cjs-module-lexer": "1.2.2",
25
25
  "is-valid-identifier": "2.0.2",
26
26
  "resolve": "1.22.1",
27
- "rollup": "2.76.0",
27
+ "rollup": "2.77.2",
28
28
  "rollup-plugin-node-globals": "1.4.0",
29
- "rollup-plugin-polyfill-node": "0.10.1",
29
+ "rollup-plugin-polyfill-node": "0.10.2",
30
30
  "vm2": "3.9.10"
31
31
  },
32
32
  "devDependencies": {
@@ -7,15 +7,16 @@ export const commonJsToJsModuleRaw = async ({
7
7
  logLevel,
8
8
  sourceFileUrl,
9
9
 
10
- replaceGlobalObject = true,
11
- replaceGlobalFilename = true,
12
- replaceGlobalDirname = true,
13
- replaceProcessEnvNodeEnv = true,
14
- replaceProcess = true,
15
- replaceBuffer = true,
10
+ browsers = true,
11
+ replaceGlobalObject = browsers,
12
+ replaceGlobalFilename = browsers,
13
+ replaceGlobalDirname = browsers,
14
+ replaceProcessEnvNodeEnv = browsers,
15
+ replaceProcess = browsers,
16
+ replaceBuffer = browsers,
16
17
  processEnvNodeEnv = process.env.NODE_ENV,
17
18
  replaceMap = {},
18
- convertBuiltinsToBrowser = true,
19
+ convertBuiltinsToBrowser = browsers,
19
20
  external = [],
20
21
  sourcemapExcludeSources,
21
22
  } = {}) => {
@@ -31,14 +32,16 @@ export const commonJsToJsModuleRaw = async ({
31
32
 
32
33
  const { nodeResolve } = await import("@rollup/plugin-node-resolve")
33
34
  const nodeResolveRollupPlugin = nodeResolve({
34
- mainFields: [
35
- "browser:module",
36
- "module",
37
- "browser",
38
- "main:esnext",
39
- "jsnext:main",
40
- "main",
41
- ],
35
+ mainFields: browsers
36
+ ? [
37
+ "browser:module",
38
+ "module",
39
+ "browser",
40
+ "main:esnext",
41
+ "jsnext:main",
42
+ "main",
43
+ ]
44
+ : ["module", "main:esnext", "jsxnext:main", "main"],
42
45
  extensions: [".mjs", ".cjs", ".js", ".json"],
43
46
  preferBuiltins: false,
44
47
  exportConditions: [],
@@ -82,13 +85,6 @@ export const commonJsToJsModuleRaw = async ({
82
85
  const { default: createNodeGlobalRollupPlugin } = await import(
83
86
  "rollup-plugin-node-globals"
84
87
  )
85
- const nodeGlobalRollupPlugin = createNodeGlobalRollupPlugin({
86
- global: false, // handled by replaceMap
87
- dirname: false, // handled by replaceMap
88
- filename: false, // handled by replaceMap
89
- process: replaceProcess,
90
- buffer: replaceBuffer,
91
- })
92
88
 
93
89
  const commonJsNamedExportsRollupPlugin = rollupPluginCommonJsNamedExports({
94
90
  logger,
@@ -109,7 +105,17 @@ export const commonJsToJsModuleRaw = async ({
109
105
  replaceRollupPlugin,
110
106
  commonJsRollupPlugin,
111
107
  commonJsNamedExportsRollupPlugin,
112
- nodeGlobalRollupPlugin,
108
+ ...(replaceProcess || replaceBuffer
109
+ ? [
110
+ createNodeGlobalRollupPlugin({
111
+ global: false, // handled by replaceMap
112
+ dirname: false, // handled by replaceMap
113
+ filename: false, // handled by replaceMap
114
+ process: replaceProcess,
115
+ buffer: replaceBuffer,
116
+ }),
117
+ ]
118
+ : []),
113
119
  ...(convertBuiltinsToBrowser
114
120
  ? [
115
121
  rollupPluginNodePolyfills({
@@ -119,6 +125,13 @@ export const commonJsToJsModuleRaw = async ({
119
125
  : []),
120
126
  ],
121
127
  onwarn: (warning) => {
128
+ if (
129
+ warning.code === "UNRESOLVED_IMPORT" &&
130
+ warning.importer.endsWith("?commonjs-external")
131
+ ) {
132
+ return
133
+ }
134
+
122
135
  const { loc, message } = warning
123
136
  const logMessage = loc
124
137
  ? `${loc.file}:${loc.line}:${loc.column} ${message}`
@@ -9,7 +9,7 @@ import { validateCompileCache } from "./validate_compile_cache.js"
9
9
  import { createLockRegistry } from "./file_lock_registry.js"
10
10
  import { updateCompileCache } from "./update_compile_cache.js"
11
11
 
12
- const { lockForRessource } = createLockRegistry()
12
+ const { lockForResource } = createLockRegistry()
13
13
 
14
14
  export const reuseOrCreateCompiledFile = async ({
15
15
  logLevel,
@@ -165,7 +165,7 @@ const readCompileContextFile = ({ logger, compileContextJsonFileUrl }) => {
165
165
  }
166
166
 
167
167
  const startAsap = async (fn, { compiledFileUrl }) => {
168
- const unlockLocal = await lockForRessource(compiledFileUrl)
168
+ const unlockLocal = await lockForResource(compiledFileUrl)
169
169
  try {
170
170
  return await fn()
171
171
  } finally {
@@ -1,13 +1,13 @@
1
1
  export const createLockRegistry = () => {
2
2
  let lockArray = []
3
- const lockForRessource = async (ressource) => {
4
- const currentLock = lockArray.find((lock) => lock.ressource === ressource)
3
+ const lockForResource = async (resource) => {
4
+ const currentLock = lockArray.find((lock) => lock.resource === resource)
5
5
  let unlockResolve
6
6
  const unlocked = new Promise((resolve) => {
7
7
  unlockResolve = resolve
8
8
  })
9
9
  const lock = {
10
- ressource,
10
+ resource,
11
11
  unlocked,
12
12
  }
13
13
  lockArray = [...lockArray, lock]
@@ -20,5 +20,5 @@ export const createLockRegistry = () => {
20
20
  }
21
21
  return unlock
22
22
  }
23
- return { lockForRessource }
23
+ return { lockForResource }
24
24
  }
@@ -1,5 +1,5 @@
1
1
  import { URL_META } from "@jsenv/url-meta"
2
- import { injectQueryParams } from "@jsenv/urls"
2
+ import { injectQueryParams, urlToExtension } from "@jsenv/urls"
3
3
 
4
4
  import { commonJsToJsModule } from "./cjs_to_esm.js"
5
5
 
@@ -48,19 +48,28 @@ export const jsenvPluginCommonJs = ({
48
48
  if (!originalUrlInfo) {
49
49
  return null
50
50
  }
51
+ const nodeRuntimeEnabled = Object.keys(context.runtimeCompat).includes(
52
+ "node",
53
+ )
51
54
  const { content, sourcemap, isValid } = await commonJsToJsModule({
52
55
  logLevel,
53
56
  rootDirectoryUrl: context.rootDirectoryUrl,
54
57
  sourceFileUrl: originalUrlInfo.url,
55
- processEnvNodeEnv:
56
- context.scenario === "dev" || context.scenario === "test"
57
- ? "development"
58
- : "production",
58
+ browsers: !nodeRuntimeEnabled,
59
+ processEnvNodeEnv: context.scenarios.dev ? "development" : "production",
59
60
  ...urlInfo.data.commonjs,
60
61
  })
61
62
  if (isValid) {
62
63
  urlInfo.isValid = isValid
63
64
  }
65
+ const originalReference = context.reference.original
66
+ ? context.reference.original
67
+ : context.reference
68
+ const filename = originalReference.dependsOnPackageJson
69
+ ? `${originalReference.specifier}${urlToExtension(
70
+ originalReference.parentUrl,
71
+ )}`
72
+ : undefined
64
73
  return {
65
74
  content,
66
75
  contentType: "text/javascript",
@@ -68,6 +77,7 @@ export const jsenvPluginCommonJs = ({
68
77
  originalUrl: originalUrlInfo.originalUrl,
69
78
  originalContent: originalUrlInfo.originalContent,
70
79
  sourcemap,
80
+ filename,
71
81
  }
72
82
  },
73
83
  }
@@ -13,5 +13,5 @@ await startDevServer({
13
13
  }),
14
14
  ],
15
15
  clientAutoreload: false,
16
- htmlSupervisor: false,
16
+ supervisor: false,
17
17
  })
@@ -29,7 +29,7 @@ const devServer = await startDevServer({
29
29
  }),
30
30
  ],
31
31
  clientAutoreload: false,
32
- htmlSupervisor: false,
32
+ supervisor: false,
33
33
  })
34
34
  const browser = await chromium.launch({
35
35
  headless: !debug,