UNPKG

@exivity/proton

Version:
94 lines (77 loc) 3.3 kB
#!/usr/bin/env node function _toArray(arr) { return _arrayWithHoles(arr) || _iterableToArray(arr) || _nonIterableRest(); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } var fs = require('fs'); var babel = require('@babel/core'); var pluralize = require('pluralize'); var pathUtils = './node_modules/@exivity/proton/src/OrbitClient/utils'; fs.readFile('./occonfig.json', 'utf8', function (err, data) { if (err) throw err; var relativeSchemaPath = JSON.parse(data).schema; var relativeTargetPath = JSON.parse(data).target + '/OrbitClient'; var pathEntities = relativeTargetPath + '/entity'; if (!fs.existsSync(relativeTargetPath)) { fs.mkdirSync(relativeTargetPath); } if (!fs.existsSync(pathEntities)) { fs.mkdirSync(pathEntities); } fs.readFile(relativeSchemaPath, 'utf8', function (err, data) { if (err) throw err; babel.transformFile(relativeSchemaPath, { presets: ['@babel/preset-env'] }, function (err, result) { if (err) throw err; fs.writeFile('./tempSchema.js', result.code, function (err) { if (err) throw err; console.log('Created temporary schema file...'); var schema = require('../../../../../../tempSchema'); var models = Object.keys(schema.default.models); models.forEach(function (model) { createRecordComponent(model, pathEntities); createRecordsComponent(model, pathEntities); }); fs.unlink('./tempSchema.js', function (err) { if (err) throw err; console.log('Deleted temporary schema file...'); }); }); }); }); }); var capitalize = function capitalize(_ref) { var _ref2 = _toArray(_ref), first = _ref2[0], rest = _ref2.slice(1); return first.toUpperCase() + rest.join(''); }; var createRecordComponent = function createRecordComponent(model, savePath) { fs.readFile(pathUtils + '/templates/entity.js', 'utf8', function (err, result) { if (err) throw err; var capitalizedModel = capitalize(model); var component = result.replace(/_Entity/g, capitalizedModel); var finished = component.replace(/_entity/g, model); var path = savePath + '/' + capitalizedModel + '.js'; fs.writeFile(path, finished, function (err) { if (err) throw err; console.log('Created: ', path); }); }); }; var createRecordsComponent = function createRecordsComponent(model, savePath) { fs.readFile(pathUtils + '/templates/entities.js', 'utf8', function (err, result) { if (err) throw err; var capitalizedModel = pluralize(capitalize(model)); var Entities = result.replace(/_Entities/g, capitalizedModel); var entity = Entities.replace(/_entity/g, model); var entities = entity.replace(/_entities/g, pluralize(model)); var path = savePath + '/' + capitalizedModel + '.js'; fs.writeFile(path, entities, function (err) { if (err) throw err; console.log('Created: ', path); }); }); }; //# sourceMappingURL=createEntities.js.map