unimported
Version:
Scans your nodejs project folder and shows obsolete files and modules
59 lines (58 loc) • 2.79 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.runWithFiles = exports.createTestProject = void 0;
const path_1 = __importDefault(require("path"));
const fs_1 = __importDefault(require("fs"));
const promises_1 = require("fs/promises");
function createTestProject(files, baseDir = '.', name) {
return __awaiter(this, void 0, void 0, function* () {
const randomId = Math.floor(Math.random() * 1000000);
const testSpaceDir = path_1.default.join('.test-space', randomId.toString());
yield (0, promises_1.mkdir)(testSpaceDir, { recursive: true });
if (name) {
fs_1.default.writeFileSync(path_1.default.join(testSpaceDir, '.scenario'), name);
}
const fileArray = Array.isArray(files)
? files
: Object.keys(files).map((file) => ({
name: file,
content: typeof files[file] === 'string'
? files[file]
: JSON.stringify(files[file]),
}));
yield Promise.all(fileArray.map((file) => (0, promises_1.mkdir)(path_1.default.join(testSpaceDir, path_1.default.dirname(file.name)), {
recursive: true,
})));
yield Promise.all(fileArray.map((file) => (0, promises_1.writeFile)(path_1.default.join(testSpaceDir, file.name), file.content)));
return path_1.default.join(testSpaceDir, baseDir);
});
}
exports.createTestProject = createTestProject;
function runWithFiles(files, cb) {
return __awaiter(this, void 0, void 0, function* () {
const originalCwd = process.cwd();
let testPath;
try {
testPath = yield createTestProject(files);
process.chdir(testPath);
return yield cb();
}
finally {
process.chdir(originalCwd);
fs_1.default.rmSync(testPath, { recursive: true, force: true });
}
});
}
exports.runWithFiles = runWithFiles;