datocms-client
Version:
For new DatoCMS users, we recommend @datocms/cma-client-node
116 lines (93 loc) • 4.25 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = upsertMigrationModel;
var _ora = _interopRequireDefault(require("ora"));
var _ApiException = _interopRequireDefault(require("../ApiException"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
function createMigrationModel(_x, _x2, _x3) {
return _createMigrationModel.apply(this, arguments);
}
function _createMigrationModel() {
_createMigrationModel = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(client, migrationModelApiKey, catchPermissionErrors) {
var model;
return regeneratorRuntime.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
_context.next = 2;
return catchPermissionErrors("create model ".concat(migrationModelApiKey), client.itemTypes.create({
name: 'Schema migration',
apiKey: migrationModelApiKey
}));
case 2:
model = _context.sent;
_context.next = 5;
return catchPermissionErrors("create field for model ".concat(migrationModelApiKey), client.fields.create(model.id, {
label: 'Migration file name',
apiKey: 'name',
fieldType: 'string',
validators: {
required: {}
}
}));
case 5:
return _context.abrupt("return", model);
case 6:
case "end":
return _context.stop();
}
}
}, _callee);
}));
return _createMigrationModel.apply(this, arguments);
}
function upsertMigrationModel(_x4, _x5, _x6, _x7) {
return _upsertMigrationModel.apply(this, arguments);
}
function _upsertMigrationModel() {
_upsertMigrationModel = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(client, migrationModelApiKey, catchPermissionErrors, dryRun) {
var creationSpinner, migrationItemType;
return regeneratorRuntime.wrap(function _callee2$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
_context2.prev = 0;
_context2.next = 3;
return catchPermissionErrors("fetch model ".concat(migrationModelApiKey), client.itemTypes.find(migrationModelApiKey));
case 3:
return _context2.abrupt("return", _context2.sent);
case 6:
_context2.prev = 6;
_context2.t0 = _context2["catch"](0);
if (!(_context2.t0 instanceof _ApiException["default"] && _context2.t0.statusCode === 404)) {
_context2.next = 17;
break;
}
creationSpinner = (0, _ora["default"])("Creating `".concat(migrationModelApiKey, "` model...")).start();
migrationItemType = null;
if (dryRun) {
_context2.next = 15;
break;
}
_context2.next = 14;
return createMigrationModel(client, migrationModelApiKey, catchPermissionErrors);
case 14:
migrationItemType = _context2.sent;
case 15:
creationSpinner.succeed();
return _context2.abrupt("return", migrationItemType);
case 17:
throw _context2.t0;
case 18:
case "end":
return _context2.stop();
}
}
}, _callee2, null, [[0, 6]]);
}));
return _upsertMigrationModel.apply(this, arguments);
}