Skip to content

Commit cfa1b03

Browse files
authored
Merge pull request martim00#14 from doconix/master
This commit adds two things:
2 parents fba80c2 + 2927b64 commit cfa1b03

File tree

3 files changed

+27
-10
lines changed

3 files changed

+27
-10
lines changed

index.js

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ const fs = require('fs');
33
const { sep: slash } = require('path');
44
const path = require('path');
55
const loaderUtils = require('loader-utils');
6+
const extend = require('extend');
67

78
const spawn = require('child_process').spawn;
89

@@ -19,28 +20,31 @@ module.exports = function (source) {
1920
folder: `.${slash}__javascript__`,
2021
install: 'pip install transcrypt',
2122
python_version: '3.x',
22-
sourcemaps: true
23+
sourcemaps: true,
24+
keep_compiled: false
2325
},
2426
jiphy: {
2527
switches: '',
2628
folder: `.${slash}`,
2729
install: 'pip install jiphy',
2830
python_version: '2.x',
29-
sourcemaps: false
31+
sourcemaps: false,
32+
keep_compiled: false
3033
},
3134
pj: {
3235
switches: '--inline-map --source-name %f -s -',
3336
folder: `.${slash}`,
3437
install: 'pip install javascripthon',
3538
python_version: '3.x',
3639
streaming: true,
37-
sourcemaps: true
40+
sourcemaps: true,
41+
keep_compiled: false
3842
}
3943
};
4044

4145
const options = loaderUtils.getOptions(this);
4246
const compilerName = options && options.compiler || 'transcrypt';
43-
const compiler = compilers[compilerName];
47+
const compiler = extend(true, {}, compilers[compilerName], options || {});
4448

4549
if (!compiler) {
4650
throw new Error(`py-loader only supports ${
@@ -105,26 +109,33 @@ module.exports = function (source) {
105109
return;
106110
}
107111
cmd.get(`${compiler.name} ${compiler.switches} '${srcDir}${slash}${basename}.py'`, function(err, data, stderr) {
112+
108113
if (!err) {
109114
const filename = `${srcDir}${slash}${compiler.folder}${slash}${basename}.js`;
110115
js = fs.readFileSync(filename, "utf8");
111-
fs.unlinkSync(filename);
112-
if(delete_after){
113-
fs.unlinkSync(`${srcDir}${slash}__${fileinfo.name}.py`);
116+
if (!compiler.keep_compiled) {
117+
fs.unlinkSync(filename);
118+
if (delete_after) {
119+
fs.unlinkSync(`${srcDir}${slash}__${fileinfo.name}.py`);
120+
}
114121
}
115122

116123
if (compiler.sourcemaps) {
117124
const sourceMapFile = `${srcDir}${slash}${compiler.folder}${slash}extra${slash}sourcemap${slash}${basename}.js`;
118125
sourceMap = fs.readFileSync(sourceMapFile + ".map", "utf8")
119-
fs.unlinkSync(sourceMapFile + ".map");
120-
callback(null, js, sourceMap); }
126+
if (!compiler.keep_compiled) {
127+
fs.unlinkSync(sourceMapFile + ".map");
128+
}
129+
callback(null, js, sourceMap);
130+
}
121131
else {
122132
callback(null, js);
123133
}
124134

125135
}
126136
else {
127-
console.log(stderr)
137+
console.error(stderr)
138+
console.error(data)
128139
// console.error(`Some error occurred on ${properName(compiler.name)} compiler execution. Have you installed ${properName(compiler.name)}? If not, please run \`${compiler.install}\` (requires Python ${compiler.python_version})`);
129140
callback(err);
130141
}

package-lock.json

Lines changed: 5 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
"index.js"
88
],
99
"dependencies": {
10+
"extend": "^3.0.1",
1011
"loader-utils": "^1.1.0",
1112
"node-cmd": "^3.0.0"
1213
},

0 commit comments

Comments
 (0)