1234567891011121314151617181920212223242526272829303132333435 |
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.isRecursive = exports.isRecursiveAsync = void 0;
- const path_1 = require("path");
- const fs_1 = require("fs");
- const isRecursiveAsync = (state, path, resolved, callback) => {
- if (state.options.useRealPaths)
- return callback(state.visited.has(resolved + state.options.pathSeparator));
- let parent = (0, path_1.dirname)(path);
- if (parent + state.options.pathSeparator === state.root || parent === path)
- return callback(false);
- if (state.symlinks.get(parent) === resolved)
- return callback(true);
- (0, fs_1.readlink)(parent, (error, resolvedParent) => {
- if (error)
- return (0, exports.isRecursiveAsync)(state, parent, resolved, callback);
- callback(resolvedParent === resolved);
- });
- };
- exports.isRecursiveAsync = isRecursiveAsync;
- function isRecursive(state, path, resolved) {
- if (state.options.useRealPaths)
- return state.visited.has(resolved + state.options.pathSeparator);
- let parent = (0, path_1.dirname)(path);
- if (parent + state.options.pathSeparator === state.root || parent === path)
- return false;
- try {
- const resolvedParent = state.symlinks.get(parent) || (0, fs_1.readlinkSync)(parent);
- return resolvedParent === resolved;
- }
- catch (e) {
- return isRecursive(state, parent, resolved);
- }
- }
- exports.isRecursive = isRecursive;
|