| 12345678910111213141516171819202122232425262728293031323334353637 |
- 'use strict';
- var through = require('through2');
- var fo = require('../file-operations');
- function resolveSymlinks(optResolver) {
- // A stat property is exposed on file objects as a (wanted) side effect
- function resolveFile(file, enc, callback) {
- fo.reflectLinkStat(file.path, file, onReflect);
- function onReflect(statErr) {
- if (statErr) {
- return callback(statErr);
- }
- if (!file.stat.isSymbolicLink()) {
- return callback(null, file);
- }
- var resolveSymlinks = optResolver.resolve('resolveSymlinks', file);
- if (!resolveSymlinks) {
- return callback(null, file);
- }
- // Get target's stats
- fo.reflectStat(file.path, file, onReflect);
- }
- }
- return through.obj(resolveFile);
- }
- module.exports = resolveSymlinks;
|