UNPKG

deep-package-manager

Version:
91 lines (70 loc) 1.89 kB
/** * Created by AlexanderC on 6/5/15. */ 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.ValidationSchema = undefined; var _FileWalker = require('../Helpers/FileWalker'); var _path = require('path'); var _path2 = _interopRequireDefault(_path); var _fs = require('fs'); var _fs2 = _interopRequireDefault(_fs); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } class ValidationSchema { /** * @param {String} name * @param {String} schemaPath */ constructor(name, schemaPath) { this._name = name; this._schemaPath = schemaPath; } /** * @param {Array} directories * @returns {Model[]} */ static create(...directories) { let walker = new _FileWalker.FileWalker(_FileWalker.FileWalker.RECURSIVE); let filter = _FileWalker.FileWalker.matchExtensionsFilter(_FileWalker.FileWalker.skipDotsFilter(), ValidationSchema.EXTENSION); let validationSchemas = []; for (let i in directories) { if (!directories.hasOwnProperty(i)) { continue; } let dir = directories[i]; if (_fs2.default.existsSync(dir)) { let files = walker.walk(dir, filter); for (let j in files) { if (!files.hasOwnProperty(j)) { continue; } let schemaFile = files[j]; let name = _path2.default.basename(schemaFile, `.${ValidationSchema.EXTENSION}`); validationSchemas.push(new ValidationSchema(name, schemaFile)); } } } return validationSchemas; } /** * @returns {String} */ get name() { return this._name; } /** * @returns {String} */ get schemaPath() { return this._schemaPath; } /** * @returns {String} */ static get EXTENSION() { return 'js'; } } exports.ValidationSchema = ValidationSchema;