%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream
'use strict'; const common = require('../common'); const assert = require('assert'); const path = require('path'); const nodeModules = path.join(__dirname, 'node_modules'); const nestedNodeModules = path.join(__dirname, 'node_modules', 'node_modules'); const nestedIndex = path.join(__dirname, 'nested-index'); // Test the default behavior. assert.strictEqual( require.resolve('bar'), path.join(nodeModules, 'bar.js') ); // Verify that existing paths are removed. assert.throws(() => { require.resolve('bar', { paths: [] }) }, /^Error: Cannot find module 'bar'/); // Verify that resolution path can be overwritten. { // three.js cannot be loaded from this file by default. assert.throws(() => { require.resolve('three') }, /^Error: Cannot find module 'three'/); // If the nested-index directory is provided as a resolve path, 'three' // cannot be found because nested-index is used as a starting point and not // a searched directory. assert.throws(() => { require.resolve('three', { paths: [nestedIndex] }) }, /^Error: Cannot find module 'three'/); // Resolution from nested index directory also checks node_modules. assert.strictEqual( require.resolve('bar', { paths: [nestedIndex] }), path.join(nodeModules, 'bar.js') ); } // Verify that the default paths can be used and modified. { const paths = require.resolve.paths('bar'); assert.strictEqual(paths[0], nodeModules); assert.strictEqual( require.resolve('bar', { paths }), path.join(nodeModules, 'bar.js') ); paths.unshift(nestedNodeModules); assert.strictEqual( require.resolve('bar', { paths }), path.join(nodeModules, 'bar.js') ); } // Verify that relative request paths work properly. { const searchIn = './' + path.relative(process.cwd(), nestedIndex); // Search in relative paths. assert.strictEqual( require.resolve('./three.js', { paths: [searchIn] }), path.join(nestedIndex, 'three.js') ); // Search in absolute paths. assert.strictEqual( require.resolve('./three.js', { paths: [nestedIndex] }), path.join(nestedIndex, 'three.js') ); // Repeat the same tests with Windows slashes in the request path. if (common.isWindows) { assert.strictEqual( require.resolve('.\\three.js', { paths: [searchIn] }), path.join(nestedIndex, 'three.js') ); assert.strictEqual( require.resolve('.\\three.js', { paths: [nestedIndex] }), path.join(nestedIndex, 'three.js') ); } } // Test paths option validation assert.throws(() => { require.resolve('.\\three.js', { paths: 'foo' }) }, { code: 'ERR_INVALID_ARG_VALUE', name: 'TypeError', }); // Verify that the default require.resolve() is used for empty options. assert.strictEqual( require.resolve('./printA.js', {}), require.resolve('./printA.js') );