|
1 | 1 | const fs = require('fs');
|
2 | 2 | const { pbjs, pbts } = require('protobufjs-cli');
|
3 | 3 | const protobuf = require('protobufjs');
|
4 |
| -const tmp = require('tmp-promise'); |
| 4 | +const tmp = require('tmp'); |
5 | 5 | const validateOptions = require('schema-utils').validate;
|
6 | 6 |
|
7 | 7 | const { getOptions } = require('loader-utils');
|
@@ -83,16 +83,23 @@ const execPbts = (resourcePath, pbtsOptions, compiledContent, callback) => {
|
83 | 83 |
|
84 | 84 | // pbts CLI only supports streaming from stdin without a lot of
|
85 | 85 | // duplicated logic, so we need to use a tmp file. :(
|
86 |
| - tmp |
87 |
| - .file({ postfix: '.js' }) |
| 86 | + new Promise((resolve, reject) => { |
| 87 | + tmp.file({ postfix: '.js' }, (err, compiledFilename) => { |
| 88 | + if (err) { |
| 89 | + reject(err); |
| 90 | + } else { |
| 91 | + resolve(compiledFilename); |
| 92 | + } |
| 93 | + }); |
| 94 | + }) |
88 | 95 | .then(
|
89 |
| - (o) => |
| 96 | + (compiledFilename) => |
90 | 97 | new Promise((resolve, reject) => {
|
91 |
| - fs.write(o.fd, compiledContent, (err) => { |
| 98 | + fs.writeFile(compiledFilename, compiledContent, (err) => { |
92 | 99 | if (err) {
|
93 | 100 | reject(err);
|
94 | 101 | } else {
|
95 |
| - resolve(o.path); |
| 102 | + resolve(compiledFilename); |
96 | 103 | }
|
97 | 104 | });
|
98 | 105 | })
|
@@ -152,22 +159,28 @@ module.exports = function protobufJsLoader(source) {
|
152 | 159 | validateOptions(schema, options, { name: 'protobufjs-loader' });
|
153 | 160 |
|
154 | 161 | /** @type { string } */
|
155 |
| - let filename; |
156 |
| - tmp |
157 |
| - .file() |
158 |
| - .then((o) => { |
159 |
| - filename = o.path; |
160 |
| - return new Promise((resolve, reject) => { |
161 |
| - fs.write(o.fd, source, (err, bytesWritten) => { |
162 |
| - if (err) { |
163 |
| - reject(err); |
164 |
| - } else { |
165 |
| - resolve(bytesWritten); |
166 |
| - } |
167 |
| - }); |
168 |
| - }); |
169 |
| - }) |
170 |
| - .then(() => { |
| 162 | + new Promise((resolve, reject) => { |
| 163 | + tmp.file((err, filename) => { |
| 164 | + if (err) { |
| 165 | + reject(err); |
| 166 | + } else { |
| 167 | + resolve(filename); |
| 168 | + } |
| 169 | + }); |
| 170 | + }) |
| 171 | + .then( |
| 172 | + (filename) => |
| 173 | + new Promise((resolve, reject) => { |
| 174 | + fs.writeFile(filename, source, (err) => { |
| 175 | + if (err) { |
| 176 | + reject(err); |
| 177 | + } else { |
| 178 | + resolve(filename); |
| 179 | + } |
| 180 | + }); |
| 181 | + }) |
| 182 | + ) |
| 183 | + .then((filename) => { |
171 | 184 | const { paths } = options;
|
172 | 185 |
|
173 | 186 | const loadDependencies = new Promise((resolve, reject) => {
|
|
0 commit comments