@exivity/proton
Version:
Exivity React SDK
89 lines (73 loc) • 3.51 kB
JavaScript
function _toArray(arr) { return _arrayWithHoles(arr) || _iterableToArray(arr) || _nonIterableRest(); }
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); }
function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); }
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }
var fs = require('fs');
var path = require('path');
var babel = require('@babel/core');
var pathUtils = './src/OrbitClient/utils';
var pathEntity = './src/OrbitClient/entity';
fs.readFile('./src/OrbitClient/occonfig.json', 'utf8', function (err, data) {
if (err) throw err;
var relativeSchemaPathConfig = JSON.parse(data).schema;
var relativeSchemaPath = path.join.apply(path, _toConsumableArray(relativeSchemaPathConfig.split('/')));
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(pathUtils + '/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);
createRecordsComponent(model);
});
fs.unlink(pathUtils + '/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) {
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 savePath = pathEntity + '/' + capitalizedModel + '.js';
fs.writeFile(savePath, finished, function (err) {
if (err) throw err;
console.log('Created: ', savePath);
});
});
};
var createRecordsComponent = function createRecordsComponent(model) {
fs.readFile(pathUtils + '/templates/entities.js', 'utf8', function (err, result) {
if (err) throw err;
var capitalizedModel = capitalize(model) + 's';
var Entities = result.replace(/_Entities/g, capitalizedModel);
var entity = Entities.replace(/_entity/g, model);
var entities = entity.replace(/_entities/g, model + 's');
var savePath = pathEntity + '/' + capitalizedModel + '.js';
fs.writeFile(savePath, entities, function (err) {
if (err) throw err;
console.log('Created: ', savePath);
});
});
};
//# sourceMappingURL=createStoryBookEntities.js.map