UNPKG

@reactivehub/cli

Version:
95 lines (68 loc) 2.62 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _keys = require('babel-runtime/core-js/object/keys'); var _keys2 = _interopRequireDefault(_keys); var _flat = require('flat'); var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk); var _yaml = require('./yaml'); var _yaml2 = _interopRequireDefault(_yaml); var _messages = require('../messages'); var _messages2 = _interopRequireDefault(_messages); var _api = require('../services/api'); var _deploy = require('./deploy'); var _deploy2 = _interopRequireDefault(_deploy); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const folder = 'events'; const eventExists = eventId => _yaml2.default.fileExists(folder, eventId); const createFile = (payload, { withExample = false, override = false } = {}) => { const { id, eventGroup, version = '0.0.1', model = null, rules = null } = payload; const name = id; const fileName = `${eventGroup}.${id}`; const newPayload = { id: `${eventGroup}.${id}`, name, eventGroup, version }; if (withExample || !model) { newPayload.model = { keyName: 'String' }; } if (!rules) { const onEventFilter = { id: 'on-event', name: 'onEvent', condition: null, actions: null }; newPayload.filters = [onEventFilter]; } if (!override && _yaml2.default.fileExists(folder, fileName)) { _messages2.default.error(`${_chalk2.default.blue.bold(fileName)} already exists!`); return false; } const created = _yaml2.default.create(folder, fileName, newPayload); if (created) _messages2.default.success(`${_chalk2.default.blue.bold(fileName)} successfully created!`); (0, _api.sendAddEventCommand)({ id }); _deploy2.default.deployEvent(newPayload.id, { withMessage: true }); return created; }; const getEventsInFolder = () => _yaml2.default.filesInFolder('events').map(item => item.replace('.yaml', '')); const loadEvent = (folderParam, fileName) => _yaml2.default.toJson(folderParam, fileName); const loadEventData = fileName => loadEvent('events', fileName); const loadModelAsPayload = eventId => { const { model } = _yaml2.default.toJson('events', eventId); const flatPayload = (0, _flat.flatten)(model, { maxDepth: null, safe: true }); (0, _keys2.default)(flatPayload).forEach(key => { model[key] = `{${key}}`; }); return (0, _flat.unflatten)(model, { maxDepth: null }); }; exports.default = { createFile, getEventsInFolder, loadEvent, eventExists, loadModelAsPayload, loadEventData }; //# sourceMappingURL=event.js.map