@exivity/proton
Version:
Exivity React SDK
94 lines (77 loc) • 3.3 kB
JavaScript
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