UNPKG

autocode

Version:

the ultimate developer platform

56 lines (54 loc) 1.9 kB
// Generated by CoffeeScript 1.10.0 (function() { module.exports = function(path) { var cson, fs, i, j, k, len, len1, model_data, model_file, model_files, model_name, model_path, ref, spec, yaml; cson = require('season'); fs = require('fs'); yaml = require('js-yaml'); if (!path) { if (!this.path) { return false; } path = this.path + "/src/spec"; } if (this.config.type === 'generator') { if (this.config.specifications && this.config.specifications["default"]) { ref = this.config.specifications["default"]; for (j = 0, len = ref.length; j < len; j++) { i = ref[j]; path = userHome + "/.autocode/spec/" + i + "/src/spec"; break; } } } spec = {}; model_path = path + "/model/"; if (fs.existsSync(model_path)) { model_files = fs.readdirSync(model_path); if (model_files.length) { spec.models = {}; for (k = 0, len1 = model_files.length; k < len1; k++) { model_file = model_files[k]; model_file = model_path + model_file; model_name = model_file.split('/'); model_name = model_name[model_name.length - 1]; model_name = model_name.split('.'); model_name = model_name[0]; model_data = (function() { switch (true) { case model_file.match(/\.yml$/i) !== null: case model_file.match(/\.yaml$/i) !== null: return yaml.safeLoad(fs.readFileSync(model_file)); case model_file.match(/\.cson$/i) !== null: return cson.readFileSync(model_file); default: throw new Error("Unknown file format for model (" + model_name + ")"); } })(); spec.models[model_name] = model_data; } } } return spec; }; }).call(this);