@@ -218,6 +218,14 @@ def ReadMacros(lines):
218
218
{value}.ToStringChecked(env->isolate())).FromJust());
219
219
"""
220
220
221
+ DEPRECATED_DEPS = """\
222
+ 'use strict';
223
+ process.emitWarning(
224
+ 'Requiring Node.js-bundled \\ '{module}\\ ' module is deprecated. Please ' +
225
+ 'install the necessary module locally.', 'DeprecationWarning', 'DEP0084');
226
+ module.exports = require('internal/deps/{module}');
227
+ """
228
+
221
229
222
230
def Render (var , data ):
223
231
# Treat non-ASCII as UTF-8 and convert it to UTF-16.
@@ -256,10 +264,19 @@ def JS2C(source, target):
256
264
lines = ExpandConstants (lines , consts )
257
265
lines = ExpandMacros (lines , macros )
258
266
267
+ deprecated_deps = None
268
+
259
269
# On Windows, "./foo.bar" in the .gyp file is passed as "foo.bar"
260
270
# so don't assume there is always a slash in the file path.
261
271
if '/' in name or '\\ ' in name :
262
- name = '/' .join (re .split ('/|\\ \\ ' , name )[1 :])
272
+ split = re .split ('/|\\ \\ ' , name )
273
+ if split [0 ] == 'deps' :
274
+ if split [1 ] == 'node-inspect' or split [1 ] == 'v8' :
275
+ deprecated_deps = split [1 :]
276
+ split = ['internal' ] + split
277
+ else :
278
+ split = split [1 :]
279
+ name = '/' .join (split )
263
280
264
281
name = name .split ('.' , 1 )[0 ]
265
282
var = name .replace ('-' , '_' ).replace ('/' , '_' )
@@ -270,6 +287,17 @@ def JS2C(source, target):
270
287
definitions .append (Render (value , lines ))
271
288
initializers .append (INITIALIZER .format (key = key , value = value ))
272
289
290
+ if deprecated_deps is not None :
291
+ name = '/' .join (deprecated_deps )
292
+ name = name .split ('.' , 1 )[0 ]
293
+ var = name .replace ('-' , '_' ).replace ('/' , '_' )
294
+ key = '%s_key' % var
295
+ value = '%s_value' % var
296
+
297
+ definitions .append (Render (key , name ))
298
+ definitions .append (Render (value , DEPRECATED_DEPS .format (module = name )))
299
+ initializers .append (INITIALIZER .format (key = key , value = value ))
300
+
273
301
# Emit result
274
302
output = open (str (target [0 ]), "w" )
275
303
output .write (TEMPLATE .format (definitions = '' .join (definitions ),
0 commit comments