a2r
Version:
A2R Framework
31 lines (30 loc) • 1.61 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const typescript_1 = __importDefault(require("typescript"));
const telemetry_1 = require("@a2r/telemetry");
const fs_1 = require("@a2r/fs");
const colors_1 = require("../colors");
const getMainMethodName_1 = __importDefault(require("./getMainMethodName"));
const getMainMethodNode_1 = __importDefault(require("./getMainMethodNode"));
const getFunctionDocContainer_1 = __importDefault(require("./getFunctionDocContainer"));
const fileValidation = async (filePath) => {
const content = await (0, fs_1.readFile)(filePath, 'utf8');
if (content) {
const sourceFile = typescript_1.default.createSourceFile(filePath, content, typescript_1.default.ScriptTarget.Latest, true);
const fileNodes = sourceFile.getChildren();
const mainMethodName = (0, getMainMethodName_1.default)(fileNodes);
const mainMethodNode = (0, getMainMethodNode_1.default)(fileNodes, mainMethodName);
const mainMethodDocs = (0, getFunctionDocContainer_1.default)(mainMethodNode);
if (!mainMethodDocs || !mainMethodDocs.jsDoc) {
telemetry_1.out.error(`Method ${(0, colors_1.method)(mainMethodName)} at file ${(0, colors_1.fullPath)(filePath)} must be documented`);
return false;
}
return true;
}
telemetry_1.out.error(`File ${(0, colors_1.fullPath)(filePath)} is empty`);
return false;
};
exports.default = fileValidation;