@microsoft/windows-admin-center-sdk
Version:
Microsoft - Windows Admin Center Shell
32 lines (30 loc) • 1.46 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.CodeFilePaths = void 0;
const fs_1 = require("fs");
const path_1 = require("path");
const common_1 = require("../common");
class CodeFilePaths {
static files;
/**
* Retrieves all code files from current repository.
* @returns {Promise<string[]>} Promise of array containing file paths
*/
static async initialize() {
if (!CodeFilePaths.files) {
CodeFilePaths.files = await CodeFilePaths.searchFolder(common_1.Common.rootPath + '\\src\\app');
}
return new Promise(resolvePromise => resolvePromise(CodeFilePaths.files));
}
static async searchFolder(folderPath) {
const subDirectories = await new Promise((resolvePromise, reject) => (0, fs_1.readdir)(folderPath, null, (err, fileResults) => err ? reject(err) : resolvePromise(fileResults)));
const files = await Promise.all(subDirectories.map(async (subDirectory) => {
const resource = (0, path_1.resolve)(folderPath, subDirectory);
const fileStatus = await new Promise((resolvePromise, reject) => (0, fs_1.stat)(resource, (err, status) => err ? reject(err) : resolvePromise(status)));
return fileStatus.isDirectory() ? this.searchFolder(resource) : resource;
}));
return Array.prototype.concat(...files);
}
}
exports.CodeFilePaths = CodeFilePaths;
//# sourceMappingURL=get-files.js.map