fractal-core
Version:
A minimalist and well crafted app, content or component is our conviction
61 lines • 2.06 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
const _1 = require(".");
// generic action input
exports.action = (ctx, actions) => ([arg1, arg2]) => __awaiter(this, void 0, void 0, function* () {
let name;
let value;
if (arg1 instanceof Array) {
name = arg1[0];
value = arg1[1];
if (arg2 !== undefined) {
// add fetch value
// TODO: test it!!
value = (value !== undefined) ? [value, arg2] : arg2;
}
}
else {
name = arg1;
value = arg2;
}
if (ctx.global.record) {
ctx.global.records.push({ id: ctx.id, actionName: name, value });
}
let result = yield _1.performUpdate(ctx, yield actions[name](value));
return result;
});
// generic execute input
exports.SetAction = (args) => s => {
if (args[0] instanceof Array) {
// Multiple assignments
for (let i = 0, arg; arg = args[i]; i++) {
s[arg[0]] = arg[1];
}
}
else {
// Single assignment
s[args[0]] = args[1];
}
return s;
};
exports.AddComp = (compFn) => (compArgs) => s => {
let [name, component] = compFn(s._compCounter, compArgs);
s._nest[name] = component;
s._compCounter++;
s._compUpdated = true;
return s;
};
exports._removeAction = (name) => s => {
delete s._nest[name];
s._compUpdated = true;
return s;
};
//# sourceMappingURL=common.js.map