@putout/engine-loader 17.0.1 → 17.0.2

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.
@@ -4,9 +4,12 @@ import module from 'node:module';
4
4
  import tryToCatch from 'try-to-catch';
5
5
  import {simpleImport as _simpleImport} from './simple-import.js';
6
6
 
7
- const {createRequire} = module;
7
+ const returns = (a) => () => a;
8
+ const noop = () => {};
8
9
 
10
+ const {createRequire = returns(noop)} = module;
9
11
  const require = createRequire(import.meta.url);
12
+
10
13
  const {assign} = Object;
11
14
  const stub = () => () => {};
12
15
 
@@ -22,9 +25,10 @@ export const createAsyncLoader = (type, overrides = {}) => {
22
25
  if (name.startsWith('import:')) {
23
26
  const shortName = name.replace('import:', '');
24
27
 
25
- return await cleverLoad([
26
- require.resolve(shortName),
27
- ], simpleImport);
28
+ return await cleverLoad([require.resolve(shortName)], {
29
+ simpleImport,
30
+ require,
31
+ });
28
32
  }
29
33
 
30
34
  const namesBase = [
@@ -39,16 +43,21 @@ export const createAsyncLoader = (type, overrides = {}) => {
39
43
  ...namesFromPluginsDirs,
40
44
  ]));
41
45
 
42
- return await cleverLoad(names, simpleImport);
46
+ return await cleverLoad(names, {
47
+ simpleImport,
48
+ require,
49
+ });
43
50
  };
44
51
  };
45
52
 
46
- async function cleverLoad(names, load) {
53
+ async function cleverLoad(names, overrides) {
54
+ const {simpleImport, require} = overrides;
55
+
47
56
  let e;
48
57
  let reporter;
49
58
 
50
59
  for (const name of names) {
51
- [e, reporter] = await tryToCatch(load, name);
60
+ [e, reporter] = await tryToCatch(simpleImport, name);
52
61
 
53
62
  if (!e)
54
63
  return reporter;
@@ -56,7 +65,7 @@ async function cleverLoad(names, load) {
56
65
  if (e.code === 'ERR_UNSUPPORTED_DIR_IMPORT') {
57
66
  const fullName = require.resolve(name);
58
67
 
59
- [e, reporter] = await tryToCatch(load, fullName);
68
+ [e, reporter] = await tryToCatch(simpleImport, fullName);
60
69
 
61
70
  if (!e)
62
71
  return reporter;
package/lib/load/load.js CHANGED
@@ -3,9 +3,11 @@ import module from 'node:module';
3
3
  import {join} from 'node:path';
4
4
  import tryCatch from 'try-catch';
5
5
 
6
- const {createRequire: _createRequire} = module;
6
+ const returns = (a) => () => a;
7
+ const noop = () => {};
8
+
9
+ const {createRequire: _createRequire = returns(noop)} = module;
7
10
 
8
- const require = _createRequire(import.meta.url);
9
11
  const bigFirst = (a) => `${a[0].toUpperCase()}${a.slice(1)}`;
10
12
 
11
13
  const load = (type) => (overrides) => {
@@ -62,8 +64,15 @@ function getPath(namespace, type, name, overrides) {
62
64
 
63
65
  const {env} = process;
64
66
 
65
- const createCustomRequire = (createRequire) => createRequire(require.resolve(env.PUTOUT_YARN_PNP || 'putout'));
66
- const createPutoutRequire = (createRequire) => createRequire(require.resolve('putout'));
67
+ const createCustomRequire = (createRequire) => {
68
+ const require = createRequire(import.meta.url);
69
+ return createRequire(require.resolve(env.PUTOUT_YARN_PNP || 'putout'));
70
+ };
71
+
72
+ const createPutoutRequire = (createRequire) => {
73
+ const require = createRequire(import.meta.url);
74
+ return createRequire(require.resolve('putout'));
75
+ };
67
76
 
68
77
  // That's all for Yarn P'n'P
69
78
  //
@@ -5,10 +5,10 @@ import {isEnabled} from '../rules/index.js';
5
5
  import {filterEnabledPlugins} from './filter-enabled-plugins.js';
6
6
  import {check, checkRule} from '../check/index.js';
7
7
 
8
- const {createRequire} = module;
9
-
10
- const require = createRequire(import.meta.url);
8
+ const noop = () => {};
9
+ const returns = (a) => () => a;
11
10
 
11
+ const {createRequire = returns(noop)} = module;
12
12
  const {isArray} = Array;
13
13
 
14
14
  export const loadPlugins = (options) => {
@@ -91,6 +91,7 @@ function extendRules(rule, plugin) {
91
91
  // add support of esm.sh
92
92
  // https://github.com/esm-dev/esm.sh/issues/1045
93
93
  function loadOnePlugin({name, namespace}) {
94
+ const require = createRequire(import.meta.url);
94
95
  const {loadPlugin} = require('../load/load.js');
95
96
 
96
97
  return loadPlugin({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@putout/engine-loader",
3
- "version": "17.0.1",
3
+ "version": "17.0.2",
4
4
  "type": "module",
5
5
  "author": "coderaiser <mnemonic.enemy@gmail.com> (https://github.com/coderaiser)",
6
6
  "description": "load plugins and prepare them to run",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  import module from 'node:module';
3
3
 
4
- const {createRequire} = module;
4
+ const {createRequire = returns(noop)} = module;
5
5
  }
6
6
  const require = createRequire(import.meta.url);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  import module from 'node:module';
3
3
 
4
- const {createRequire: _createRequire} = module;
4
+ const {createRequire: _createRequire = returns(noop)} = module;
5
5
  }
6
6
  const require = createRequire(import.meta.url);
@@ -12,11 +12,11 @@ export const match = () => ({
12
12
  export const replace = () => ({
13
13
  'import {createRequire} from "node:module"': `{
14
14
  import module from "node:module";
15
- const {createRequire} = module;
15
+ const {createRequire = returns(noop)} = module;
16
16
  }`,
17
17
  'import {createRequire as __a} from "node:module"': `{
18
18
  import module from "node:module";
19
- const {createRequire: __a} = module;
19
+ const {createRequire: __a = returns(noop)} = module;
20
20
  }`,
21
21
  });
22
22