Skip to content

Commit 8850038

Browse files
committed
feature(@putout/engine-processor) add getProcessorRunners
1 parent 5270a93 commit 8850038

3 files changed

Lines changed: 26 additions & 16 deletions

File tree

packages/engine-processor/README.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,12 @@ npm i @putout/engine-processor
1414
## Code Example
1515

1616
```js
17-
const {runProcessors} = require('@putout/engine-processor');
17+
const {
18+
getProcessorRunners,
19+
runProcessors,
20+
} = require('@putout/engine-processor');
21+
22+
const processorRunners = getProcessorRunners(processors);
1823

1924
runProcessors({
2025
name,
@@ -23,6 +28,7 @@ runProcessors({
2328
rawSource,
2429
index,
2530
length,
31+
processorRunners, // optional
2632
});
2733
// returns
2834
({

packages/engine-processor/lib/processor.js

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
const {loadProcessors} = require('@putout/engine-loader');
44
const memo = require('nano-memoize');
55
const picomatch = memo(require('picomatch'));
6-
const once = require('once');
76

87
const defaultProcessors = [
98
'javascript',
@@ -13,12 +12,6 @@ const addExtension = (name, ext) => !ext ? name : `${name}{${ext}}`;
1312
const stubProcess = (a) => [a, []];
1413
const stubPreProcess = () => [];
1514

16-
const getLoadedProcessors = once((processors) => {
17-
return loadProcessors({
18-
processors,
19-
}).map(addGlobs);
20-
});
21-
2215
module.exports.defaultProcessors = defaultProcessors;
2316

2417
module.exports.getFilePatterns = (processors) => {
@@ -31,26 +24,26 @@ module.exports.getFilePatterns = (processors) => {
3124
return result;
3225
};
3326

34-
module.exports.runProcessors = async ({name, fix, processFile, options, rawSource}) => {
27+
module.exports.runProcessors = async ({name, fix, processFile, options, rawSource, processorRunners}) => {
3528
const allPlaces = [];
3629
const {
3730
processors = defaultProcessors,
3831
} = options;
3932

40-
const loadedProcessors = getLoadedProcessors(processors);
33+
processorRunners = processorRunners || getProcessorRunners(processors);
4134

4235
let processedSource = '';
4336
let processedPlaces = [];
4437
let isProcessed = false;
4538
let isJsChanged = false;
4639

47-
for (const currentProcessor of loadedProcessors) {
40+
for (const currentRunner of processorRunners) {
4841
const {
4942
isMatch,
5043
postProcess,
5144
preProcess = stubPreProcess,
5245
process = stubProcess,
53-
} = currentProcessor;
46+
} = currentRunner;
5447

5548
if (!isMatch(name))
5649
continue;
@@ -100,6 +93,13 @@ module.exports.runProcessors = async ({name, fix, processFile, options, rawSourc
10093
};
10194
};
10295

96+
module.exports.getProcessorRunners = getProcessorRunners;
97+
function getProcessorRunners(processors) {
98+
return loadProcessors({
99+
processors,
100+
}).map(addGlobs);
101+
}
102+
103103
function addGlobs(processor) {
104104
const {files} = processor;
105105

@@ -111,3 +111,4 @@ function addGlobs(processor) {
111111
}),
112112
};
113113
}
114+

packages/engine-processor/test/processor.js

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,14 @@ const {join} = require('path');
66
const test = require('supertape');
77
const stub = require('@cloudcmd/stub');
88
const processFile = require('putout/lib/cli/process-file');
9+
const {getFilePatterns} = require('..');
910

10-
const {
11-
runProcessors,
12-
getFilePatterns,
13-
} = require('..');
11+
const runProcessors = (...a) => {
12+
// reRequire('once');
13+
const {runProcessors} = require('..');
14+
15+
return runProcessors(...a);
16+
};
1417

1518
test('putout: engine-processor: no processor', async (t) => {
1619
const name = 'hello.xxx';

0 commit comments

Comments
 (0)