UNPKG

a2r

Version:
31 lines (30 loc) 1.61 kB
"use strict"; 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;