deep-package-manager
Version:
DEEP Package Manager
91 lines (70 loc) • 1.89 kB
JavaScript
/**
* Created by AlexanderC on 6/5/15.
*/
;
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;