[add] lib:plankton
Christian Fraß authored 3 years ago
|
lib/plankton/shape/logic-impl.js 1) /*
lib/plankton/shape/logic-impl.js 2) This file is part of »bacterio-plankton:shape«.
lib/plankton/shape/logic-impl.js 3)
|
[upd] server:lib:plankton
Christian Fraß authored 3 years ago
|
server/lib/plankton/shape/logic-impl.js 4) Copyright 2016-2021 'Christian Fraß, Christian Neubauer, Martin Springwald GbR'
|
[add] lib:plankton
Christian Fraß authored 3 years ago
|
lib/plankton/shape/logic-impl.js 5) <info@greenscale.de>
lib/plankton/shape/logic-impl.js 6)
lib/plankton/shape/logic-impl.js 7) »bacterio-plankton:shape« is free software: you can redistribute it and/or modify
lib/plankton/shape/logic-impl.js 8) it under the terms of the GNU Lesser General Public License as published by
lib/plankton/shape/logic-impl.js 9) the Free Software Foundation, either version 3 of the License, or
lib/plankton/shape/logic-impl.js 10) (at your option) any later version.
lib/plankton/shape/logic-impl.js 11)
lib/plankton/shape/logic-impl.js 12) »bacterio-plankton:shape« is distributed in the hope that it will be useful,
lib/plankton/shape/logic-impl.js 13) but WITHOUT ANY WARRANTY; without even the implied warranty of
lib/plankton/shape/logic-impl.js 14) MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
lib/plankton/shape/logic-impl.js 15) GNU Lesser General Public License for more details.
lib/plankton/shape/logic-impl.js 16)
lib/plankton/shape/logic-impl.js 17) You should have received a copy of the GNU Lesser General Public License
lib/plankton/shape/logic-impl.js 18) along with »bacterio-plankton:shape«. If not, see <http://www.gnu.org/licenses/>.
lib/plankton/shape/logic-impl.js 19) */
lib/plankton/shape/logic-impl.js 20) var lib_shape;
lib/plankton/shape/logic-impl.js 21) (function (lib_shape) {
lib/plankton/shape/logic-impl.js 22) /**
lib/plankton/shape/logic-impl.js 23) * @author fenris
lib/plankton/shape/logic-impl.js 24) */
lib/plankton/shape/logic-impl.js 25) var _pool = {};
lib/plankton/shape/logic-impl.js 26) /**
lib/plankton/shape/logic-impl.js 27) * @author fenris
lib/plankton/shape/logic-impl.js 28) */
lib/plankton/shape/logic-impl.js 29) var _aliases = {};
lib/plankton/shape/logic-impl.js 30) /**
lib/plankton/shape/logic-impl.js 31) * @author fenris
lib/plankton/shape/logic-impl.js 32) */
lib/plankton/shape/logic-impl.js 33) function list() {
lib/plankton/shape/logic-impl.js 34) return [].concat(Object.keys(_pool)).concat(Object.keys(_aliases));
lib/plankton/shape/logic-impl.js 35) }
lib/plankton/shape/logic-impl.js 36) lib_shape.list = list;
lib/plankton/shape/logic-impl.js 37) /**
lib/plankton/shape/logic-impl.js 38) * @author fenris
lib/plankton/shape/logic-impl.js 39) */
lib/plankton/shape/logic-impl.js 40) function inspection_create() {
lib/plankton/shape/logic-impl.js 41) return {
lib/plankton/shape/logic-impl.js 42) "messages": []
lib/plankton/shape/logic-impl.js 43) };
lib/plankton/shape/logic-impl.js 44) }
lib/plankton/shape/logic-impl.js 45) lib_shape.inspection_create = inspection_create;
lib/plankton/shape/logic-impl.js 46) /**
lib/plankton/shape/logic-impl.js 47) * @author fenris
lib/plankton/shape/logic-impl.js 48) */
lib/plankton/shape/logic-impl.js 49) function inspection_add(main, message) {
lib/plankton/shape/logic-impl.js 50) main.messages.push(message);
lib/plankton/shape/logic-impl.js 51) }
lib/plankton/shape/logic-impl.js 52) lib_shape.inspection_add = inspection_add;
lib/plankton/shape/logic-impl.js 53) /**
lib/plankton/shape/logic-impl.js 54) * @author fenris
lib/plankton/shape/logic-impl.js 55) */
lib/plankton/shape/logic-impl.js 56) function inspection_extend(main, prefix, sub) {
lib/plankton/shape/logic-impl.js 57) main.messages = main.messages.concat(sub.messages.map(message => `${prefix}: ${message}`));
lib/plankton/shape/logic-impl.js 58) }
lib/plankton/shape/logic-impl.js 59) lib_shape.inspection_extend = inspection_extend;
lib/plankton/shape/logic-impl.js 60) /**
lib/plankton/shape/logic-impl.js 61) * @author fenris
lib/plankton/shape/logic-impl.js 62) * @todo check for existing
lib/plankton/shape/logic-impl.js 63) */
lib/plankton/shape/logic-impl.js 64) function register({ "name": name, "make": make, "inspect": _inspect, "stance": _stance, "show": _show, }) {
lib/plankton/shape/logic-impl.js 65) const entry = {
lib/plankton/shape/logic-impl.js 66) "name": name,
lib/plankton/shape/logic-impl.js 67) "make": make,
lib/plankton/shape/logic-impl.js 68) "inspect": _inspect,
lib/plankton/shape/logic-impl.js 69) "stance": _stance,
lib/plankton/shape/logic-impl.js 70) "show": _show,
lib/plankton/shape/logic-impl.js 71) };
lib/plankton/shape/logic-impl.js 72) _pool[name] = entry;
lib/plankton/shape/logic-impl.js 73) }
lib/plankton/shape/logic-impl.js 74) lib_shape.register = register;
lib/plankton/shape/logic-impl.js 75) /**
lib/plankton/shape/logic-impl.js 76) * @author fenris
lib/plankton/shape/logic-impl.js 77) * @todo check for existing
lib/plankton/shape/logic-impl.js 78) */
lib/plankton/shape/logic-impl.js 79) function define_alias({ "name": name, "target": target, }) {
lib/plankton/shape/logic-impl.js 80) const entry = {
lib/plankton/shape/logic-impl.js 81) "name": "alias",
lib/plankton/shape/logic-impl.js 82) "target": target,
lib/plankton/shape/logic-impl.js 83) };
lib/plankton/shape/logic-impl.js 84) _aliases[name] = entry;
lib/plankton/shape/logic-impl.js 85) }
lib/plankton/shape/logic-impl.js 86) lib_shape.define_alias = define_alias;
lib/plankton/shape/logic-impl.js 87) /**
lib/plankton/shape/logic-impl.js 88) * @author fenris
lib/plankton/shape/logic-impl.js 89) * @todo check for existing
lib/plankton/shape/logic-impl.js 90) */
lib/plankton/shape/logic-impl.js 91) /*
lib/plankton/shape/logic-impl.js 92) export function inspect_jstype(
lib/plankton/shape/logic-impl.js 93) inspection,
lib/plankton/shape/logic-impl.js 94) jstype_expected : string,
lib/plankton/shape/logic-impl.js 95) value : any
lib/plankton/shape/logic-impl.js 96) ) : void {
lib/plankton/shape/logic-impl.js 97) let jstype_actual : string = typeof(value);
lib/plankton/shape/logic-impl.js 98) if (jstype_actual === jstype_expected) {
lib/plankton/shape/logic-impl.js 99) // all good
lib/plankton/shape/logic-impl.js 100) }
lib/plankton/shape/logic-impl.js 101) else {
lib/plankton/shape/logic-impl.js 102) inspection_add(inspection, `expected JS-type '${jstype_expected}' but got '${jstype_actual}'`);
lib/plankton/shape/logic-impl.js 103) }
lib/plankton/shape/logic-impl.js 104) }
lib/plankton/shape/logic-impl.js 105) */
lib/plankton/shape/logic-impl.js 106) /**
lib/plankton/shape/logic-impl.js 107) * @author fenris
lib/plankton/shape/logic-impl.js 108) */
lib/plankton/shape/logic-impl.js 109) function make(raw) {
lib/plankton/shape/logic-impl.js 110) const name = raw["name"];
lib/plankton/shape/logic-impl.js 111) if (_aliases.hasOwnProperty(name)) {
lib/plankton/shape/logic-impl.js 112) const alias = _aliases[name];
lib/plankton/shape/logic-impl.js 113) return alias.target;
lib/plankton/shape/logic-impl.js 114) }
lib/plankton/shape/logic-impl.js 115) else {
lib/plankton/shape/logic-impl.js 116) if (_pool.hasOwnProperty(name)) {
lib/plankton/shape/logic-impl.js 117) const entry = _pool[name];
lib/plankton/shape/logic-impl.js 118) const parameters = entry.make(raw["parameters"] || {}, make);
lib/plankton/shape/logic-impl.js 119) return {
lib/plankton/shape/logic-impl.js 120) "name": name,
lib/plankton/shape/logic-impl.js 121) "parameters": parameters,
lib/plankton/shape/logic-impl.js 122) };
lib/plankton/shape/logic-impl.js 123) }
lib/plankton/shape/logic-impl.js 124) else {
lib/plankton/shape/logic-impl.js 125) const message = `no shape registered with name '${name}'`;
lib/plankton/shape/logic-impl.js 126) throw (new Error(message));
lib/plankton/shape/logic-impl.js 127) }
lib/plankton/shape/logic-impl.js 128) }
lib/plankton/shape/logic-impl.js 129) }
lib/plankton/shape/logic-impl.js 130) lib_shape.make = make;
lib/plankton/shape/logic-impl.js 131) /**
lib/plankton/shape/logic-impl.js 132) * @author fenris
lib/plankton/shape/logic-impl.js 133) */
lib/plankton/shape/logic-impl.js 134) function inspect(shape, value) {
lib/plankton/shape/logic-impl.js 135) if (_pool.hasOwnProperty(shape.name)) {
lib/plankton/shape/logic-impl.js 136) const entry = _pool[shape.name];
lib/plankton/shape/logic-impl.js 137) return entry.inspect(shape.parameters, value, inspect);
lib/plankton/shape/logic-impl.js 138) }
lib/plankton/shape/logic-impl.js 139) else {
lib/plankton/shape/logic-impl.js 140) const message = `no shape registered with name '${shape.name}'`;
lib/plankton/shape/logic-impl.js 141) throw (new Error(message));
lib/plankton/shape/logic-impl.js 142) }
lib/plankton/shape/logic-impl.js 143) }
lib/plankton/shape/logic-impl.js 144) lib_shape.inspect = inspect;
lib/plankton/shape/logic-impl.js 145) /**
lib/plankton/shape/logic-impl.js 146) * @author fenris
lib/plankton/shape/logic-impl.js 147) */
lib/plankton/shape/logic-impl.js 148) function check(shape, value) {
lib/plankton/shape/logic-impl.js 149) if (_pool.hasOwnProperty(shape.name)) {
lib/plankton/shape/logic-impl.js 150) const entry = _pool[shape.name];
lib/plankton/shape/logic-impl.js 151) const inspection = inspect(shape, value);
lib/plankton/shape/logic-impl.js 152) inspection.messages
lib/plankton/shape/logic-impl.js 153) .forEach((message) => { console.warn(message); });
lib/plankton/shape/logic-impl.js 154) return (inspection.messages.length === 0);
lib/plankton/shape/logic-impl.js 155) }
lib/plankton/shape/logic-impl.js 156) else {
lib/plankton/shape/logic-impl.js 157) const message = `no shape registered with name '${shape.name}'`;
lib/plankton/shape/logic-impl.js 158) throw (new Error(message));
lib/plankton/shape/logic-impl.js 159) }
lib/plankton/shape/logic-impl.js 160) }
lib/plankton/shape/logic-impl.js 161) lib_shape.check = check;
lib/plankton/shape/logic-impl.js 162) /**
lib/plankton/shape/logic-impl.js 163) * @author fenris
lib/plankton/shape/logic-impl.js 164) */
lib/plankton/shape/logic-impl.js 165) function stance(shape, bindings) {
lib/plankton/shape/logic-impl.js 166) if (_pool.hasOwnProperty(shape.name)) {
lib/plankton/shape/logic-impl.js 167) const entry = _pool[shape.name];
lib/plankton/shape/logic-impl.js 168) return entry.stance(shape.parameters, bindings, stance);
lib/plankton/shape/logic-impl.js 169) }
lib/plankton/shape/logic-impl.js 170) else {
lib/plankton/shape/logic-impl.js 171) const message = `no shape registered with name '${shape.name}'`;
lib/plankton/shape/logic-impl.js 172) throw (new Error(message));
lib/plankton/shape/logic-impl.js 173) }
lib/plankton/shape/logic-impl.js 174) }
lib/plankton/shape/logic-impl.js 175) lib_shape.stance = stance;
lib/plankton/shape/logic-impl.js 176) /**
lib/plankton/shape/logic-impl.js 177) * @author fenris
lib/plankton/shape/logic-impl.js 178) */
lib/plankton/shape/logic-impl.js 179) function show(shape) {
lib/plankton/shape/logic-impl.js 180) if (_pool.hasOwnProperty(shape.name)) {
lib/plankton/shape/logic-impl.js 181) const entry = _pool[shape.name];
lib/plankton/shape/logic-impl.js 182) return entry.show(shape.parameters, show);
lib/plankton/shape/logic-impl.js 183) }
lib/plankton/shape/logic-impl.js 184) else {
lib/plankton/shape/logic-impl.js 185) const message = `no shape registered with name '${shape.name}'`;
lib/plankton/shape/logic-impl.js 186) throw (new Error(message));
lib/plankton/shape/logic-impl.js 187) }
lib/plankton/shape/logic-impl.js 188) }
lib/plankton/shape/logic-impl.js 189) lib_shape.show = show;
lib/plankton/shape/logic-impl.js 190) })(lib_shape || (lib_shape = {}));
lib/plankton/shape/logic-impl.js 191) /*
lib/plankton/shape/logic-impl.js 192) This file is part of »bacterio-plankton:shape«.
lib/plankton/shape/logic-impl.js 193)
|
[upd] server:lib:plankton
Christian Fraß authored 3 years ago
|
server/lib/plankton/shape/logic-impl.js 194) Copyright 2016-2021 'Christian Fraß, Christian Neubauer, Martin Springwald GbR'
|
[add] lib:plankton
Christian Fraß authored 3 years ago
|
lib/plankton/shape/logic-impl.js 195) <info@greenscale.de>
lib/plankton/shape/logic-impl.js 196)
lib/plankton/shape/logic-impl.js 197) »bacterio-plankton:shape« is free software: you can redistribute it and/or modify
lib/plankton/shape/logic-impl.js 198) it under the terms of the GNU Lesser General Public License as published by
lib/plankton/shape/logic-impl.js 199) the Free Software Foundation, either version 3 of the License, or
lib/plankton/shape/logic-impl.js 200) (at your option) any later version.
lib/plankton/shape/logic-impl.js 201)
lib/plankton/shape/logic-impl.js 202) »bacterio-plankton:shape« is distributed in the hope that it will be useful,
lib/plankton/shape/logic-impl.js 203) but WITHOUT ANY WARRANTY; without even the implied warranty of
lib/plankton/shape/logic-impl.js 204) MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
lib/plankton/shape/logic-impl.js 205) GNU Lesser General Public License for more details.
lib/plankton/shape/logic-impl.js 206)
lib/plankton/shape/logic-impl.js 207) You should have received a copy of the GNU Lesser General Public License
lib/plankton/shape/logic-impl.js 208) along with »bacterio-plankton:shape«. If not, see <http://www.gnu.org/licenses/>.
lib/plankton/shape/logic-impl.js 209) */
lib/plankton/shape/logic-impl.js 210) var lib_shape;
lib/plankton/shape/logic-impl.js 211) (function (lib_shape) {
lib/plankton/shape/logic-impl.js 212) /**
lib/plankton/shape/logic-impl.js 213) * @author fenris
lib/plankton/shape/logic-impl.js 214) */
lib/plankton/shape/logic-impl.js 215) function variable_make({ "name": name }) {
lib/plankton/shape/logic-impl.js 216) if (name == undefined) {
lib/plankton/shape/logic-impl.js 217) let message = `mandatory parameter 'name' missing`;
lib/plankton/shape/logic-impl.js 218) throw (new Error(message));
lib/plankton/shape/logic-impl.js 219) }
lib/plankton/shape/logic-impl.js 220) else {
lib/plankton/shape/logic-impl.js 221) return {
lib/plankton/shape/logic-impl.js 222) "name": name,
lib/plankton/shape/logic-impl.js 223) };
lib/plankton/shape/logic-impl.js 224) }
lib/plankton/shape/logic-impl.js 225) }
lib/plankton/shape/logic-impl.js 226) /**
lib/plankton/shape/logic-impl.js 227) * @author fenris
lib/plankton/shape/logic-impl.js 228) */
lib/plankton/shape/logic-impl.js 229) function variable_inspect(parameters, value, _inspect) {
lib/plankton/shape/logic-impl.js 230) let inspection = lib_shape.inspection_create();
lib/plankton/shape/logic-impl.js 231) let message = "cannot inspect a value against a type variable";
lib/plankton/shape/logic-impl.js 232) console.warn(message + "; will just pass ...");
lib/plankton/shape/logic-impl.js 233) // throw (new Error(message));
lib/plankton/shape/logic-impl.js 234) return inspection;
lib/plankton/shape/logic-impl.js 235) }
lib/plankton/shape/logic-impl.js 236) /**
lib/plankton/shape/logic-impl.js 237) * @author fenris
lib/plankton/shape/logic-impl.js 238) */
lib/plankton/shape/logic-impl.js 239) function variable_stance(parameters, bindings, _stance) {
lib/plankton/shape/logic-impl.js 240) if (parameters.name in bindings) {
lib/plankton/shape/logic-impl.js 241) return bindings[parameters.name];
lib/plankton/shape/logic-impl.js 242) }
lib/plankton/shape/logic-impl.js 243) else {
lib/plankton/shape/logic-impl.js 244) return {
lib/plankton/shape/logic-impl.js 245) "name": "variable",
lib/plankton/shape/logic-impl.js 246) "parameters": parameters
lib/plankton/shape/logic-impl.js 247) };
lib/plankton/shape/logic-impl.js 248) }
lib/plankton/shape/logic-impl.js 249) }
lib/plankton/shape/logic-impl.js 250) /**
lib/plankton/shape/logic-impl.js 251) * @author fenris
lib/plankton/shape/logic-impl.js 252) */
lib/plankton/shape/logic-impl.js 253) function variable_show(parameters, _show) {
lib/plankton/shape/logic-impl.js 254) let str;
lib/plankton/shape/logic-impl.js 255) // core
lib/plankton/shape/logic-impl.js 256) {
lib/plankton/shape/logic-impl.js 257) str = ("$" + parameters.name);
lib/plankton/shape/logic-impl.js 258) }
lib/plankton/shape/logic-impl.js 259) return str;
lib/plankton/shape/logic-impl.js 260) }
lib/plankton/shape/logic-impl.js 261) /**
lib/plankton/shape/logic-impl.js 262) * @author fenris
lib/plankton/shape/logic-impl.js 263) */
lib/plankton/shape/logic-impl.js 264) lib_shape.register({
lib/plankton/shape/logic-impl.js 265) "name": "variable",
lib/plankton/shape/logic-impl.js 266) "make": variable_make,
lib/plankton/shape/logic-impl.js 267) "inspect": variable_inspect,
lib/plankton/shape/logic-impl.js 268) "stance": variable_stance,
lib/plankton/shape/logic-impl.js 269) "show": variable_show,
lib/plankton/shape/logic-impl.js 270) });
lib/plankton/shape/logic-impl.js 271) })(lib_shape || (lib_shape = {}));
lib/plankton/shape/logic-impl.js 272) /*
lib/plankton/shape/logic-impl.js 273) This file is part of »bacterio-plankton:shape«.
lib/plankton/shape/logic-impl.js 274)
|
[upd] server:lib:plankton
Christian Fraß authored 3 years ago
|
server/lib/plankton/shape/logic-impl.js 275) Copyright 2016-2021 'Christian Fraß, Christian Neubauer, Martin Springwald GbR'
|
[add] lib:plankton
Christian Fraß authored 3 years ago
|
lib/plankton/shape/logic-impl.js 276) <info@greenscale.de>
lib/plankton/shape/logic-impl.js 277)
lib/plankton/shape/logic-impl.js 278) »bacterio-plankton:shape« is free software: you can redistribute it and/or modify
lib/plankton/shape/logic-impl.js 279) it under the terms of the GNU Lesser General Public License as published by
lib/plankton/shape/logic-impl.js 280) the Free Software Foundation, either version 3 of the License, or
lib/plankton/shape/logic-impl.js 281) (at your option) any later version.
lib/plankton/shape/logic-impl.js 282)
lib/plankton/shape/logic-impl.js 283) »bacterio-plankton:shape« is distributed in the hope that it will be useful,
lib/plankton/shape/logic-impl.js 284) but WITHOUT ANY WARRANTY; without even the implied warranty of
lib/plankton/shape/logic-impl.js 285) MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
lib/plankton/shape/logic-impl.js 286) GNU Lesser General Public License for more details.
lib/plankton/shape/logic-impl.js 287)
lib/plankton/shape/logic-impl.js 288) You should have received a copy of the GNU Lesser General Public License
lib/plankton/shape/logic-impl.js 289) along with »bacterio-plankton:shape«. If not, see <http://www.gnu.org/licenses/>.
lib/plankton/shape/logic-impl.js 290) */
lib/plankton/shape/logic-impl.js 291) var lib_shape;
lib/plankton/shape/logic-impl.js 292) (function (lib_shape) {
lib/plankton/shape/logic-impl.js 293) /**
lib/plankton/shape/logic-impl.js 294) * @author fenris
lib/plankton/shape/logic-impl.js 295) */
lib/plankton/shape/logic-impl.js 296) function function_make({ "soft": soft = false, "shape_input": shape_input, "shape_output": shape_output, "defaultvalue": defaultvalue = undefined, }, _make) {
lib/plankton/shape/logic-impl.js 297) if (shape_input === undefined) {
lib/plankton/shape/logic-impl.js 298) let message = `mandatory parameter 'shape_input' missing`;
lib/plankton/shape/logic-impl.js 299) throw (new Error(message));
lib/plankton/shape/logic-impl.js 300) }
lib/plankton/shape/logic-impl.js 301) if (shape_output === undefined) {
lib/plankton/shape/logic-impl.js 302) let message = `mandatory parameter 'shape_output' missing`;
lib/plankton/shape/logic-impl.js 303) throw (new Error(message));
lib/plankton/shape/logic-impl.js 304) }
lib/plankton/shape/logic-impl.js 305) if (defaultvalue === undefined) {
lib/plankton/shape/logic-impl.js 306) defaultvalue = (soft ? null : (x => x));
lib/plankton/shape/logic-impl.js 307) }
lib/plankton/shape/logic-impl.js 308) return {
lib/plankton/shape/logic-impl.js 309) "soft": soft,
lib/plankton/shape/logic-impl.js 310) "shape_input": _make(shape_input),
lib/plankton/shape/logic-impl.js 311) "shape_output": _make(shape_output),
lib/plankton/shape/logic-impl.js 312) "defaultvalue": defaultvalue,
lib/plankton/shape/logic-impl.js 313) };
lib/plankton/shape/logic-impl.js 314) }
lib/plankton/shape/logic-impl.js 315) /**
lib/plankton/shape/logic-impl.js 316) * @author fenris
lib/plankton/shape/logic-impl.js 317) */
lib/plankton/shape/logic-impl.js 318) function function_stance(parameters, bindings, _stance) {
lib/plankton/shape/logic-impl.js 319) return {
lib/plankton/shape/logic-impl.js 320) "name": "function",
lib/plankton/shape/logic-impl.js 321) "parameters": {
lib/plankton/shape/logic-impl.js 322) "soft": parameters.soft,
lib/plankton/shape/logic-impl.js 323) "shape_input": _stance(parameters.shape_input, bindings),
lib/plankton/shape/logic-impl.js 324) "shape_output": _stance(parameters.shape_output, bindings)
lib/plankton/shape/logic-impl.js 325) }
lib/plankton/shape/logic-impl.js 326) };
lib/plankton/shape/logic-impl.js 327) }
lib/plankton/shape/logic-impl.js 328) /**
lib/plankton/shape/logic-impl.js 329) * @author fenris
lib/plankton/shape/logic-impl.js 330) * @todo closer look not possible?
lib/plankton/shape/logic-impl.js 331) */
lib/plankton/shape/logic-impl.js 332) function function_inspect(parameters, value, _inspect) {
lib/plankton/shape/logic-impl.js 333) let inspection = lib_shape.inspection_create();
lib/plankton/shape/logic-impl.js 334) if (value == undefined) {
lib/plankton/shape/logic-impl.js 335) if (parameters.soft) {
lib/plankton/shape/logic-impl.js 336) // all good
lib/plankton/shape/logic-impl.js 337) }
lib/plankton/shape/logic-impl.js 338) else {
lib/plankton/shape/logic-impl.js 339) lib_shape.inspection_add(inspection, "null is not allowed");
lib/plankton/shape/logic-impl.js 340) }
lib/plankton/shape/logic-impl.js 341) }
lib/plankton/shape/logic-impl.js 342) else {
lib/plankton/shape/logic-impl.js 343) let jstype_actual = typeof (value);
lib/plankton/shape/logic-impl.js 344) let jstype_expected = "function";
lib/plankton/shape/logic-impl.js 345) if (jstype_actual === jstype_expected) {
lib/plankton/shape/logic-impl.js 346) // all good?
lib/plankton/shape/logic-impl.js 347) }
lib/plankton/shape/logic-impl.js 348) else {
lib/plankton/shape/logic-impl.js 349) lib_shape.inspection_add(inspection, `expected JS-type '${jstype_expected}' but got '${jstype_actual}'`);
lib/plankton/shape/logic-impl.js 350) }
lib/plankton/shape/logic-impl.js 351) }
lib/plankton/shape/logic-impl.js 352) return inspection;
lib/plankton/shape/logic-impl.js 353) }
lib/plankton/shape/logic-impl.js 354) /**
lib/plankton/shape/logic-impl.js 355) * @author fenris
lib/plankton/shape/logic-impl.js 356) */
lib/plankton/shape/logic-impl.js 357) function function_show(parameters, _show) {
lib/plankton/shape/logic-impl.js 358) let str;
lib/plankton/shape/logic-impl.js 359) /*
lib/plankton/shape/logic-impl.js 360) // core
lib/plankton/shape/logic-impl.js 361) {
lib/plankton/shape/logic-impl.js 362) str = "function";
lib/plankton/shape/logic-impl.js 363) }
lib/plankton/shape/logic-impl.js 364) // in/out
lib/plankton/shape/logic-impl.js 365) {
lib/plankton/shape/logic-impl.js 366) str += (
lib/plankton/shape/logic-impl.js 367) "<"
lib/plankton/shape/logic-impl.js 368) +
lib/plankton/shape/logic-impl.js 369) [
lib/plankton/shape/logic-impl.js 370) _show(parameters.shape_input),
lib/plankton/shape/logic-impl.js 371) _show(parameters.shape_output),
lib/plankton/shape/logic-impl.js 372) ].join(",")
lib/plankton/shape/logic-impl.js 373) +
lib/plankton/shape/logic-impl.js 374) ">"
lib/plankton/shape/logic-impl.js 375) );
lib/plankton/shape/logic-impl.js 376) }
lib/plankton/shape/logic-impl.js 377) */
lib/plankton/shape/logic-impl.js 378) str = "";
lib/plankton/shape/logic-impl.js 379) str += ("(" + _show(parameters.shape_input) + " => " + _show(parameters.shape_output) + ")");
lib/plankton/shape/logic-impl.js 380) // soft
lib/plankton/shape/logic-impl.js 381) {
lib/plankton/shape/logic-impl.js 382) if (parameters.soft) {
lib/plankton/shape/logic-impl.js 383) str = `~${str}`;
lib/plankton/shape/logic-impl.js 384) }
lib/plankton/shape/logic-impl.js 385) }
lib/plankton/shape/logic-impl.js 386) return str;
lib/plankton/shape/logic-impl.js 387) }
lib/plankton/shape/logic-impl.js 388) /**
lib/plankton/shape/logic-impl.js 389) * @author fenris
lib/plankton/shape/logic-impl.js 390) */
lib/plankton/shape/logic-impl.js 391) lib_shape.register({
lib/plankton/shape/logic-impl.js 392) "name": "function",
lib/plankton/shape/logic-impl.js 393) "make": function_make,
lib/plankton/shape/logic-impl.js 394) "inspect": function_inspect,
lib/plankton/shape/logic-impl.js 395) "stance": function_stance,
lib/plankton/shape/logic-impl.js 396) "show": function_show,
lib/plankton/shape/logic-impl.js 397) });
lib/plankton/shape/logic-impl.js 398) })(lib_shape || (lib_shape = {}));
lib/plankton/shape/logic-impl.js 399) /*
lib/plankton/shape/logic-impl.js 400) This file is part of »bacterio-plankton:shape«.
lib/plankton/shape/logic-impl.js 401)
|
[upd] server:lib:plankton
Christian Fraß authored 3 years ago
|
server/lib/plankton/shape/logic-impl.js 402) Copyright 2016-2021 'Christian Fraß, Christian Neubauer, Martin Springwald GbR'
|
[add] lib:plankton
Christian Fraß authored 3 years ago
|
lib/plankton/shape/logic-impl.js 403) <info@greenscale.de>
lib/plankton/shape/logic-impl.js 404)
lib/plankton/shape/logic-impl.js 405) »bacterio-plankton:shape« is free software: you can redistribute it and/or modify
lib/plankton/shape/logic-impl.js 406) it under the terms of the GNU Lesser General Public License as published by
lib/plankton/shape/logic-impl.js 407) the Free Software Foundation, either version 3 of the License, or
lib/plankton/shape/logic-impl.js 408) (at your option) any later version.
lib/plankton/shape/logic-impl.js 409)
lib/plankton/shape/logic-impl.js 410) »bacterio-plankton:shape« is distributed in the hope that it will be useful,
lib/plankton/shape/logic-impl.js 411) but WITHOUT ANY WARRANTY; without even the implied warranty of
lib/plankton/shape/logic-impl.js 412) MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
lib/plankton/shape/logic-impl.js 413) GNU Lesser General Public License for more details.
lib/plankton/shape/logic-impl.js 414)
lib/plankton/shape/logic-impl.js 415) You should have received a copy of the GNU Lesser General Public License
lib/plankton/shape/logic-impl.js 416) along with »bacterio-plankton:shape«. If not, see <http://www.gnu.org/licenses/>.
lib/plankton/shape/logic-impl.js 417) */
lib/plankton/shape/logic-impl.js 418) var lib_shape;
lib/plankton/shape/logic-impl.js 419) (function (lib_shape) {
lib/plankton/shape/logic-impl.js 420) /**
lib/plankton/shape/logic-impl.js 421) * @author fenris
lib/plankton/shape/logic-impl.js 422) */
lib/plankton/shape/logic-impl.js 423) function void_make({ "soft": soft = true, }) {
lib/plankton/shape/logic-impl.js 424) return {
lib/plankton/shape/logic-impl.js 425) "soft": soft,
lib/plankton/shape/logic-impl.js 426) };
lib/plankton/shape/logic-impl.js 427) }
lib/plankton/shape/logic-impl.js 428) /**
lib/plankton/shape/logic-impl.js 429) * @author fenris
lib/plankton/shape/logic-impl.js 430) */
lib/plankton/shape/logic-impl.js 431) function void_inspect(parameters, value, _inspect) {
lib/plankton/shape/logic-impl.js 432) let inspection = lib_shape.inspection_create();
lib/plankton/shape/logic-impl.js 433) if (value == undefined) {
lib/plankton/shape/logic-impl.js 434) if (parameters.soft) {
lib/plankton/shape/logic-impl.js 435) // all good
lib/plankton/shape/logic-impl.js 436) }
lib/plankton/shape/logic-impl.js 437) else {
lib/plankton/shape/logic-impl.js 438) lib_shape.inspection_add(inspection, "null is not allowed");
lib/plankton/shape/logic-impl.js 439) }
lib/plankton/shape/logic-impl.js 440) }
lib/plankton/shape/logic-impl.js 441) else {
lib/plankton/shape/logic-impl.js 442) // all good
lib/plankton/shape/logic-impl.js 443) }
lib/plankton/shape/logic-impl.js 444) return inspection;
lib/plankton/shape/logic-impl.js 445) }
lib/plankton/shape/logic-impl.js 446) /**
lib/plankton/shape/logic-impl.js 447) * @author fenris
lib/plankton/shape/logic-impl.js 448) */
lib/plankton/shape/logic-impl.js 449) function void_stance(parameters, bindings, _stance) {
lib/plankton/shape/logic-impl.js 450) return {
lib/plankton/shape/logic-impl.js 451) "name": "void",
lib/plankton/shape/logic-impl.js 452) "parameters": parameters
lib/plankton/shape/logic-impl.js 453) };
lib/plankton/shape/logic-impl.js 454) }
lib/plankton/shape/logic-impl.js 455) /**
lib/plankton/shape/logic-impl.js 456) * @author fenris
lib/plankton/shape/logic-impl.js 457) */
lib/plankton/shape/logic-impl.js 458) function void_show(parameters, _show) {
lib/plankton/shape/logic-impl.js 459) let str;
lib/plankton/shape/logic-impl.js 460) // core
lib/plankton/shape/logic-impl.js 461) {
lib/plankton/shape/logic-impl.js 462) str = "void";
lib/plankton/shape/logic-impl.js 463) }
lib/plankton/shape/logic-impl.js 464) // soft
lib/plankton/shape/logic-impl.js 465) {
lib/plankton/shape/logic-impl.js 466) if (parameters.soft) {
lib/plankton/shape/logic-impl.js 467) str = `~${str}`;
lib/plankton/shape/logic-impl.js 468) }
lib/plankton/shape/logic-impl.js 469) }
lib/plankton/shape/logic-impl.js 470) return str;
lib/plankton/shape/logic-impl.js 471) }
lib/plankton/shape/logic-impl.js 472) /**
lib/plankton/shape/logic-impl.js 473) * @author fenris
lib/plankton/shape/logic-impl.js 474) */
lib/plankton/shape/logic-impl.js 475) lib_shape.register({
lib/plankton/shape/logic-impl.js 476) "name": "void",
lib/plankton/shape/logic-impl.js 477) "make": void_make,
lib/plankton/shape/logic-impl.js 478) "inspect": void_inspect,
lib/plankton/shape/logic-impl.js 479) "stance": void_stance,
lib/plankton/shape/logic-impl.js 480) "show": void_show,
lib/plankton/shape/logic-impl.js 481) });
lib/plankton/shape/logic-impl.js 482) })(lib_shape || (lib_shape = {}));
lib/plankton/shape/logic-impl.js 483) /*
lib/plankton/shape/logic-impl.js 484) This file is part of »bacterio-plankton:shape«.
lib/plankton/shape/logic-impl.js 485)
|
[upd] server:lib:plankton
Christian Fraß authored 3 years ago
|
server/lib/plankton/shape/logic-impl.js 486) Copyright 2016-2021 'Christian Fraß, Christian Neubauer, Martin Springwald GbR'
|
[add] lib:plankton
Christian Fraß authored 3 years ago
|
lib/plankton/shape/logic-impl.js 487) <info@greenscale.de>
lib/plankton/shape/logic-impl.js 488)
lib/plankton/shape/logic-impl.js 489) »bacterio-plankton:shape« is free software: you can redistribute it and/or modify
lib/plankton/shape/logic-impl.js 490) it under the terms of the GNU Lesser General Public License as published by
lib/plankton/shape/logic-impl.js 491) the Free Software Foundation, either version 3 of the License, or
lib/plankton/shape/logic-impl.js 492) (at your option) any later version.
lib/plankton/shape/logic-impl.js 493)
lib/plankton/shape/logic-impl.js 494) »bacterio-plankton:shape« is distributed in the hope that it will be useful,
lib/plankton/shape/logic-impl.js 495) but WITHOUT ANY WARRANTY; without even the implied warranty of
lib/plankton/shape/logic-impl.js 496) MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
lib/plankton/shape/logic-impl.js 497) GNU Lesser General Public License for more details.
lib/plankton/shape/logic-impl.js 498)
lib/plankton/shape/logic-impl.js 499) You should have received a copy of the GNU Lesser General Public License
lib/plankton/shape/logic-impl.js 500) along with »bacterio-plankton:shape«. If not, see <http://www.gnu.org/licenses/>.
lib/plankton/shape/logic-impl.js 501) */
lib/plankton/shape/logic-impl.js 502) var lib_shape;
lib/plankton/shape/logic-impl.js 503) (function (lib_shape) {
lib/plankton/shape/logic-impl.js 504) /**
lib/plankton/shape/logic-impl.js 505) * @author fenris
lib/plankton/shape/logic-impl.js 506) */
lib/plankton/shape/logic-impl.js 507) function any_make({ "soft": soft = true, "mutable": mutable = true, "defaultvalue": defaultvalue = null, }) {
lib/plankton/shape/logic-impl.js 508) return {
lib/plankton/shape/logic-impl.js 509) "soft": soft,
lib/plankton/shape/logic-impl.js 510) "mutable": mutable,
lib/plankton/shape/logic-impl.js 511) "defaultvalue": defaultvalue,
lib/plankton/shape/logic-impl.js 512) };
lib/plankton/shape/logic-impl.js 513) }
lib/plankton/shape/logic-impl.js 514) /**
lib/plankton/shape/logic-impl.js 515) * @author fenris
lib/plankton/shape/logic-impl.js 516) */
lib/plankton/shape/logic-impl.js 517) function any_inspect(parameters, value, _inspect) {
lib/plankton/shape/logic-impl.js 518) let inspection = lib_shape.inspection_create();
lib/plankton/shape/logic-impl.js 519) if (value == undefined) {
lib/plankton/shape/logic-impl.js 520) if (parameters.soft) {
lib/plankton/shape/logic-impl.js 521) // all good
lib/plankton/shape/logic-impl.js 522) }
lib/plankton/shape/logic-impl.js 523) else {
lib/plankton/shape/logic-impl.js 524) lib_shape.inspection_add(inspection, "null is not allowed");
lib/plankton/shape/logic-impl.js 525) }
lib/plankton/shape/logic-impl.js 526) }
lib/plankton/shape/logic-impl.js 527) else {
lib/plankton/shape/logic-impl.js 528) // all good
lib/plankton/shape/logic-impl.js 529) }
lib/plankton/shape/logic-impl.js 530) return inspection;
lib/plankton/shape/logic-impl.js 531) }
lib/plankton/shape/logic-impl.js 532) /**
lib/plankton/shape/logic-impl.js 533) * @author fenris
lib/plankton/shape/logic-impl.js 534) */
lib/plankton/shape/logic-impl.js 535) function any_stance(parameters, bindings, _stance) {
lib/plankton/shape/logic-impl.js 536) return {
lib/plankton/shape/logic-impl.js 537) "name": "any",
lib/plankton/shape/logic-impl.js 538) "parameters": parameters
lib/plankton/shape/logic-impl.js 539) };
lib/plankton/shape/logic-impl.js 540) }
lib/plankton/shape/logic-impl.js 541) /**
lib/plankton/shape/logic-impl.js 542) * @author fenris
lib/plankton/shape/logic-impl.js 543) */
lib/plankton/shape/logic-impl.js 544) function any_show(parameters, _show) {
lib/plankton/shape/logic-impl.js 545) let str;
lib/plankton/shape/logic-impl.js 546) // core
lib/plankton/shape/logic-impl.js 547) {
lib/plankton/shape/logic-impl.js 548) str = "any";
lib/plankton/shape/logic-impl.js 549) }
lib/plankton/shape/logic-impl.js 550) // soft
lib/plankton/shape/logic-impl.js 551) {
lib/plankton/shape/logic-impl.js 552) if (parameters.soft) {
lib/plankton/shape/logic-impl.js 553) str = `~${str}`;
lib/plankton/shape/logic-impl.js 554) }
lib/plankton/shape/logic-impl.js 555) }
lib/plankton/shape/logic-impl.js 556) return str;
lib/plankton/shape/logic-impl.js 557) }
lib/plankton/shape/logic-impl.js 558) /**
lib/plankton/shape/logic-impl.js 559) * @author fenris
lib/plankton/shape/logic-impl.js 560) */
lib/plankton/shape/logic-impl.js 561) lib_shape.register({
lib/plankton/shape/logic-impl.js 562) "name": "any",
lib/plankton/shape/logic-impl.js 563) "make": any_make,
lib/plankton/shape/logic-impl.js 564) "inspect": any_inspect,
lib/plankton/shape/logic-impl.js 565) "stance": any_stance,
lib/plankton/shape/logic-impl.js 566) "show": any_show,
lib/plankton/shape/logic-impl.js 567) });
lib/plankton/shape/logic-impl.js 568) })(lib_shape || (lib_shape = {}));
lib/plankton/shape/logic-impl.js 569) /*
lib/plankton/shape/logic-impl.js 570) This file is part of »bacterio-plankton:shape«.
lib/plankton/shape/logic-impl.js 571)
|
[upd] server:lib:plankton
Christian Fraß authored 3 years ago
|
server/lib/plankton/shape/logic-impl.js 572) Copyright 2016-2021 'Christian Fraß, Christian Neubauer, Martin Springwald GbR'
|
[add] lib:plankton
Christian Fraß authored 3 years ago
|
lib/plankton/shape/logic-impl.js 573) <info@greenscale.de>
lib/plankton/shape/logic-impl.js 574)
lib/plankton/shape/logic-impl.js 575) »bacterio-plankton:shape« is free software: you can redistribute it and/or modify
lib/plankton/shape/logic-impl.js 576) it under the terms of the GNU Lesser General Public License as published by
lib/plankton/shape/logic-impl.js 577) the Free Software Foundation, either version 3 of the License, or
lib/plankton/shape/logic-impl.js 578) (at your option) any later version.
lib/plankton/shape/logic-impl.js 579)
lib/plankton/shape/logic-impl.js 580) »bacterio-plankton:shape« is distributed in the hope that it will be useful,
lib/plankton/shape/logic-impl.js 581) but WITHOUT ANY WARRANTY; without even the implied warranty of
lib/plankton/shape/logic-impl.js 582) MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
lib/plankton/shape/logic-impl.js 583) GNU Lesser General Public License for more details.
lib/plankton/shape/logic-impl.js 584)
lib/plankton/shape/logic-impl.js 585) You should have received a copy of the GNU Lesser General Public License
lib/plankton/shape/logic-impl.js 586) along with »bacterio-plankton:shape«. If not, see <http://www.gnu.org/licenses/>.
lib/plankton/shape/logic-impl.js 587) */
lib/plankton/shape/logic-impl.js 588) var lib_shape;
lib/plankton/shape/logic-impl.js 589) (function (lib_shape) {
lib/plankton/shape/logic-impl.js 590) /**
lib/plankton/shape/logic-impl.js 591) * @author fenris
lib/plankton/shape/logic-impl.js 592) */
lib/plankton/shape/logic-impl.js 593) function boolean_make({ "soft": soft = false, "mutable": mutable = true, "defaultvalue": defaultvalue = undefined, }) {
lib/plankton/shape/logic-impl.js 594) if (defaultvalue === undefined) {
lib/plankton/shape/logic-impl.js 595) defaultvalue = (soft ? null : false);
lib/plankton/shape/logic-impl.js 596) }
lib/plankton/shape/logic-impl.js 597) return {
lib/plankton/shape/logic-impl.js 598) "soft": soft,
lib/plankton/shape/logic-impl.js 599) "mutable": mutable,
lib/plankton/shape/logic-impl.js 600) "defaultvalue": defaultvalue,
lib/plankton/shape/logic-impl.js 601) };
lib/plankton/shape/logic-impl.js 602) }
lib/plankton/shape/logic-impl.js 603) /**
lib/plankton/shape/logic-impl.js 604) * @author fenris
lib/plankton/shape/logic-impl.js 605) */
lib/plankton/shape/logic-impl.js 606) function boolean_inspect(parameters, value, _inspect) {
lib/plankton/shape/logic-impl.js 607) let inspection = lib_shape.inspection_create();
lib/plankton/shape/logic-impl.js 608) if (value == undefined) {
lib/plankton/shape/logic-impl.js 609) if (parameters.soft) {
lib/plankton/shape/logic-impl.js 610) // all good
lib/plankton/shape/logic-impl.js 611) }
lib/plankton/shape/logic-impl.js 612) else {
lib/plankton/shape/logic-impl.js 613) lib_shape.inspection_add(inspection, "null is not allowed");
lib/plankton/shape/logic-impl.js 614) }
lib/plankton/shape/logic-impl.js 615) }
lib/plankton/shape/logic-impl.js 616) else {
lib/plankton/shape/logic-impl.js 617) let jstype_actual = typeof (value);
lib/plankton/shape/logic-impl.js 618) let jstype_expected = "boolean";
lib/plankton/shape/logic-impl.js 619) if (jstype_actual === jstype_expected) {
lib/plankton/shape/logic-impl.js 620) // all good
lib/plankton/shape/logic-impl.js 621) }
lib/plankton/shape/logic-impl.js 622) else {
lib/plankton/shape/logic-impl.js 623) lib_shape.inspection_add(inspection, `expected JS-type '${jstype_expected}' but got '${jstype_actual}'`);
lib/plankton/shape/logic-impl.js 624) }
lib/plankton/shape/logic-impl.js 625) }
lib/plankton/shape/logic-impl.js 626) return inspection;
lib/plankton/shape/logic-impl.js 627) }
lib/plankton/shape/logic-impl.js 628) /**
lib/plankton/shape/logic-impl.js 629) * @author fenris
lib/plankton/shape/logic-impl.js 630) */
lib/plankton/shape/logic-impl.js 631) function boolean_stance(parameters, bindings, _stance) {
lib/plankton/shape/logic-impl.js 632) return {
lib/plankton/shape/logic-impl.js 633) "name": "boolean",
lib/plankton/shape/logic-impl.js 634) "parameters": parameters
lib/plankton/shape/logic-impl.js 635) };
lib/plankton/shape/logic-impl.js 636) }
lib/plankton/shape/logic-impl.js 637) /**
lib/plankton/shape/logic-impl.js 638) * @author fenris
lib/plankton/shape/logic-impl.js 639) */
lib/plankton/shape/logic-impl.js 640) function boolean_show(parameters, _show) {
lib/plankton/shape/logic-impl.js 641) let str;
lib/plankton/shape/logic-impl.js 642) // core
lib/plankton/shape/logic-impl.js 643) {
lib/plankton/shape/logic-impl.js 644) str = "boolean";
lib/plankton/shape/logic-impl.js 645) }
lib/plankton/shape/logic-impl.js 646) // soft
lib/plankton/shape/logic-impl.js 647) {
lib/plankton/shape/logic-impl.js 648) if (parameters.soft) {
lib/plankton/shape/logic-impl.js 649) str = `~${str}`;
lib/plankton/shape/logic-impl.js 650) }
lib/plankton/shape/logic-impl.js 651) }
lib/plankton/shape/logic-impl.js 652) return str;
lib/plankton/shape/logic-impl.js 653) }
lib/plankton/shape/logic-impl.js 654) /**
lib/plankton/shape/logic-impl.js 655) * @author fenris
lib/plankton/shape/logic-impl.js 656) */
lib/plankton/shape/logic-impl.js 657) lib_shape.register({
lib/plankton/shape/logic-impl.js 658) "name": "boolean",
lib/plankton/shape/logic-impl.js 659) "make": boolean_make,
lib/plankton/shape/logic-impl.js 660) "inspect": boolean_inspect,
lib/plankton/shape/logic-impl.js 661) "stance": boolean_stance,
lib/plankton/shape/logic-impl.js 662) "show": boolean_show,
lib/plankton/shape/logic-impl.js 663) });
lib/plankton/shape/logic-impl.js 664) })(lib_shape || (lib_shape = {}));
lib/plankton/shape/logic-impl.js 665) /*
lib/plankton/shape/logic-impl.js 666) This file is part of »bacterio-plankton:shape«.
lib/plankton/shape/logic-impl.js 667)
|
[upd] server:lib:plankton
Christian Fraß authored 3 years ago
|
server/lib/plankton/shape/logic-impl.js 668) Copyright 2016-2021 'Christian Fraß, Christian Neubauer, Martin Springwald GbR'
|
[add] lib:plankton
Christian Fraß authored 3 years ago
|
lib/plankton/shape/logic-impl.js 669) <info@greenscale.de>
lib/plankton/shape/logic-impl.js 670)
lib/plankton/shape/logic-impl.js 671) »bacterio-plankton:shape« is free software: you can redistribute it and/or modify
lib/plankton/shape/logic-impl.js 672) it under the terms of the GNU Lesser General Public License as published by
lib/plankton/shape/logic-impl.js 673) the Free Software Foundation, either version 3 of the License, or
lib/plankton/shape/logic-impl.js 674) (at your option) any later version.
lib/plankton/shape/logic-impl.js 675)
lib/plankton/shape/logic-impl.js 676) »bacterio-plankton:shape« is distributed in the hope that it will be useful,
lib/plankton/shape/logic-impl.js 677) but WITHOUT ANY WARRANTY; without even the implied warranty of
lib/plankton/shape/logic-impl.js 678) MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
lib/plankton/shape/logic-impl.js 679) GNU Lesser General Public License for more details.
lib/plankton/shape/logic-impl.js 680)
lib/plankton/shape/logic-impl.js 681) You should have received a copy of the GNU Lesser General Public License
lib/plankton/shape/logic-impl.js 682) along with »bacterio-plankton:shape«. If not, see <http://www.gnu.org/licenses/>.
lib/plankton/shape/logic-impl.js 683) */
lib/plankton/shape/logic-impl.js 684) var lib_shape;
lib/plankton/shape/logic-impl.js 685) (function (lib_shape) {
lib/plankton/shape/logic-impl.js 686) /**
lib/plankton/shape/logic-impl.js 687) * @author fenris
lib/plankton/shape/logic-impl.js 688) */
lib/plankton/shape/logic-impl.js 689) function int_make({ "soft": soft = false, "mutable": mutable = true, "defaultvalue": defaultvalue = undefined, "minimum": minimum = null, "maximum": maximum = null, }) {
lib/plankton/shape/logic-impl.js 690) if (defaultvalue === undefined) {
lib/plankton/shape/logic-impl.js 691) defaultvalue = (soft ? null : 0);
lib/plankton/shape/logic-impl.js 692) }
lib/plankton/shape/logic-impl.js 693) return {
lib/plankton/shape/logic-impl.js 694) "soft": soft,
lib/plankton/shape/logic-impl.js 695) "mutable": mutable,
lib/plankton/shape/logic-impl.js 696) "defaultvalue": defaultvalue,
lib/plankton/shape/logic-impl.js 697) "minimum": minimum,
lib/plankton/shape/logic-impl.js 698) "maximum": maximum,
lib/plankton/shape/logic-impl.js 699) };
lib/plankton/shape/logic-impl.js 700) }
lib/plankton/shape/logic-impl.js 701) /**
lib/plankton/shape/logic-impl.js 702) * @author fenris
lib/plankton/shape/logic-impl.js 703) */
lib/plankton/shape/logic-impl.js 704) function int_inspect(parameters, value, _inspect) {
lib/plankton/shape/logic-impl.js 705) let inspection = lib_shape.inspection_create();
lib/plankton/shape/logic-impl.js 706) if (value == undefined) {
lib/plankton/shape/logic-impl.js 707) if (parameters.soft) {
lib/plankton/shape/logic-impl.js 708) // all good
lib/plankton/shape/logic-impl.js 709) }
lib/plankton/shape/logic-impl.js 710) else {
lib/plankton/shape/logic-impl.js 711) lib_shape.inspection_add(inspection, "null is not allowed");
lib/plankton/shape/logic-impl.js 712) }
lib/plankton/shape/logic-impl.js 713) }
lib/plankton/shape/logic-impl.js 714) else {
lib/plankton/shape/logic-impl.js 715) let jstype_actual = typeof (value);
lib/plankton/shape/logic-impl.js 716) let jstype_expected = "number";
lib/plankton/shape/logic-impl.js 717) if (jstype_actual === jstype_expected) {
lib/plankton/shape/logic-impl.js 718) if (!isNaN(parseInt(value))) {
lib/plankton/shape/logic-impl.js 719) if ((parameters.minimum === null) || (value >= parameters.minimum)) {
lib/plankton/shape/logic-impl.js 720) if ((parameters.maximum === null) || (value <= parameters.maximum)) {
lib/plankton/shape/logic-impl.js 721) // all good
lib/plankton/shape/logic-impl.js 722) }
lib/plankton/shape/logic-impl.js 723) else {
lib/plankton/shape/logic-impl.js 724) lib_shape.inspection_add(inspection, `value is beyond maximum`);
lib/plankton/shape/logic-impl.js 725) }
lib/plankton/shape/logic-impl.js 726) }
lib/plankton/shape/logic-impl.js 727) else {
lib/plankton/shape/logic-impl.js 728) lib_shape.inspection_add(inspection, `value is below minimum`);
lib/plankton/shape/logic-impl.js 729) }
lib/plankton/shape/logic-impl.js 730) }
lib/plankton/shape/logic-impl.js 731) else {
lib/plankton/shape/logic-impl.js 732) lib_shape.inspection_add(inspection, `value is not parsable into a valid int`);
lib/plankton/shape/logic-impl.js 733) }
lib/plankton/shape/logic-impl.js 734) }
lib/plankton/shape/logic-impl.js 735) else {
lib/plankton/shape/logic-impl.js 736) lib_shape.inspection_add(inspection, `expected JS-type '${jstype_expected}' but got '${jstype_actual}'`);
lib/plankton/shape/logic-impl.js 737) }
lib/plankton/shape/logic-impl.js 738) }
lib/plankton/shape/logic-impl.js 739) return inspection;
lib/plankton/shape/logic-impl.js 740) }
lib/plankton/shape/logic-impl.js 741) /**
lib/plankton/shape/logic-impl.js 742) * @author fenris
lib/plankton/shape/logic-impl.js 743) */
lib/plankton/shape/logic-impl.js 744) function int_stance(parameters, bindings, _stance) {
lib/plankton/shape/logic-impl.js 745) return {
lib/plankton/shape/logic-impl.js 746) "name": "int",
lib/plankton/shape/logic-impl.js 747) "parameters": parameters
lib/plankton/shape/logic-impl.js 748) };
lib/plankton/shape/logic-impl.js 749) }
lib/plankton/shape/logic-impl.js 750) /**
lib/plankton/shape/logic-impl.js 751) * @author fenris
lib/plankton/shape/logic-impl.js 752) */
lib/plankton/shape/logic-impl.js 753) function int_show(parameters, _show) {
lib/plankton/shape/logic-impl.js 754) let str;
lib/plankton/shape/logic-impl.js 755) // core
lib/plankton/shape/logic-impl.js 756) {
lib/plankton/shape/logic-impl.js 757) str = "int";
lib/plankton/shape/logic-impl.js 758) }
lib/plankton/shape/logic-impl.js 759) // soft
lib/plankton/shape/logic-impl.js 760) {
lib/plankton/shape/logic-impl.js 761) if (parameters.soft) {
lib/plankton/shape/logic-impl.js 762) str = `~${str}`;
lib/plankton/shape/logic-impl.js 763) }
lib/plankton/shape/logic-impl.js 764) }
lib/plankton/shape/logic-impl.js 765) return str;
lib/plankton/shape/logic-impl.js 766) }
lib/plankton/shape/logic-impl.js 767) /**
lib/plankton/shape/logic-impl.js 768) * @author fenris
lib/plankton/shape/logic-impl.js 769) */
lib/plankton/shape/logic-impl.js 770) lib_shape.register({
lib/plankton/shape/logic-impl.js 771) "name": "int",
lib/plankton/shape/logic-impl.js 772) "make": int_make,
lib/plankton/shape/logic-impl.js 773) "inspect": int_inspect,
lib/plankton/shape/logic-impl.js 774) "stance": int_stance,
lib/plankton/shape/logic-impl.js 775) "show": int_show,
lib/plankton/shape/logic-impl.js 776) });
lib/plankton/shape/logic-impl.js 777) })(lib_shape || (lib_shape = {}));
lib/plankton/shape/logic-impl.js 778) /*
lib/plankton/shape/logic-impl.js 779) This file is part of »bacterio-plankton:shape«.
lib/plankton/shape/logic-impl.js 780)
|
[upd] server:lib:plankton
Christian Fraß authored 3 years ago
|
server/lib/plankton/shape/logic-impl.js 781) Copyright 2016-2021 'Christian Fraß, Christian Neubauer, Martin Springwald GbR'
|
[add] lib:plankton
Christian Fraß authored 3 years ago
|
lib/plankton/shape/logic-impl.js 782) <info@greenscale.de>
lib/plankton/shape/logic-impl.js 783)
lib/plankton/shape/logic-impl.js 784) »bacterio-plankton:shape« is free software: you can redistribute it and/or modify
lib/plankton/shape/logic-impl.js 785) it under the terms of the GNU Lesser General Public License as published by
lib/plankton/shape/logic-impl.js 786) the Free Software Foundation, either version 3 of the License, or
lib/plankton/shape/logic-impl.js 787) (at your option) any later version.
lib/plankton/shape/logic-impl.js 788)
lib/plankton/shape/logic-impl.js 789) »bacterio-plankton:shape« is distributed in the hope that it will be useful,
lib/plankton/shape/logic-impl.js 790) but WITHOUT ANY WARRANTY; without even the implied warranty of
lib/plankton/shape/logic-impl.js 791) MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
lib/plankton/shape/logic-impl.js 792) GNU Lesser General Public License for more details.
lib/plankton/shape/logic-impl.js 793)
lib/plankton/shape/logic-impl.js 794) You should have received a copy of the GNU Lesser General Public License
lib/plankton/shape/logic-impl.js 795) along with »bacterio-plankton:shape«. If not, see <http://www.gnu.org/licenses/>.
lib/plankton/shape/logic-impl.js 796) */
lib/plankton/shape/logic-impl.js 797) var lib_shape;
lib/plankton/shape/logic-impl.js 798) (function (lib_shape) {
lib/plankton/shape/logic-impl.js 799) /**
lib/plankton/shape/logic-impl.js 800) * @author fenris
lib/plankton/shape/logic-impl.js 801) */
lib/plankton/shape/logic-impl.js 802) function float_make({ "soft": soft = false, "mutable": mutable = true, "defaultvalue": defaultvalue = undefined, }) {
lib/plankton/shape/logic-impl.js 803) if (defaultvalue === undefined) {
lib/plankton/shape/logic-impl.js 804) defaultvalue = (soft ? null : 0.0);
lib/plankton/shape/logic-impl.js 805) }
lib/plankton/shape/logic-impl.js 806) return {
lib/plankton/shape/logic-impl.js 807) "soft": soft,
lib/plankton/shape/logic-impl.js 808) "mutable": mutable,
lib/plankton/shape/logic-impl.js 809) "defaultvalue": defaultvalue,
lib/plankton/shape/logic-impl.js 810) };
lib/plankton/shape/logic-impl.js 811) }
lib/plankton/shape/logic-impl.js 812) /**
lib/plankton/shape/logic-impl.js 813) * @author fenris
lib/plankton/shape/logic-impl.js 814) */
lib/plankton/shape/logic-impl.js 815) function float_inspect(parameters, value, _inspect) {
lib/plankton/shape/logic-impl.js 816) let inspection = lib_shape.inspection_create();
lib/plankton/shape/logic-impl.js 817) if (value == undefined) {
lib/plankton/shape/logic-impl.js 818) if (parameters.soft) {
lib/plankton/shape/logic-impl.js 819) // all good
lib/plankton/shape/logic-impl.js 820) }
lib/plankton/shape/logic-impl.js 821) else {
lib/plankton/shape/logic-impl.js 822) lib_shape.inspection_add(inspection, "null is not allowed");
lib/plankton/shape/logic-impl.js 823) }
lib/plankton/shape/logic-impl.js 824) }
lib/plankton/shape/logic-impl.js 825) else {
lib/plankton/shape/logic-impl.js 826) let jstype_actual = typeof (value);
lib/plankton/shape/logic-impl.js 827) let jstype_expected = "number";
lib/plankton/shape/logic-impl.js 828) if (jstype_actual === jstype_expected) {
lib/plankton/shape/logic-impl.js 829) if (!isNaN(parseFloat(value))) {
lib/plankton/shape/logic-impl.js 830) // all good
lib/plankton/shape/logic-impl.js 831) }
lib/plankton/shape/logic-impl.js 832) else {
lib/plankton/shape/logic-impl.js 833) lib_shape.inspection_add(inspection, `value is not parsable into a valid float`);
lib/plankton/shape/logic-impl.js 834) }
lib/plankton/shape/logic-impl.js 835) }
lib/plankton/shape/logic-impl.js 836) else {
lib/plankton/shape/logic-impl.js 837) lib_shape.inspection_add(inspection, `expected JS-type '${jstype_expected}' but got '${jstype_actual}'`);
lib/plankton/shape/logic-impl.js 838) }
lib/plankton/shape/logic-impl.js 839) }
lib/plankton/shape/logic-impl.js 840) return inspection;
lib/plankton/shape/logic-impl.js 841) }
lib/plankton/shape/logic-impl.js 842) /**
lib/plankton/shape/logic-impl.js 843) * @author fenris
lib/plankton/shape/logic-impl.js 844) */
lib/plankton/shape/logic-impl.js 845) function float_stance(parameters, bindings, _stance) {
lib/plankton/shape/logic-impl.js 846) return {
lib/plankton/shape/logic-impl.js 847) "name": "float",
lib/plankton/shape/logic-impl.js 848) "parameters": parameters
lib/plankton/shape/logic-impl.js 849) };
lib/plankton/shape/logic-impl.js 850) }
lib/plankton/shape/logic-impl.js 851) /**
lib/plankton/shape/logic-impl.js 852) * @author fenris
lib/plankton/shape/logic-impl.js 853) */
lib/plankton/shape/logic-impl.js 854) function float_show(parameters, _show) {
lib/plankton/shape/logic-impl.js 855) let str;
lib/plankton/shape/logic-impl.js 856) // core
lib/plankton/shape/logic-impl.js 857) {
lib/plankton/shape/logic-impl.js 858) str = "float";
lib/plankton/shape/logic-impl.js 859) }
lib/plankton/shape/logic-impl.js 860) // soft
lib/plankton/shape/logic-impl.js 861) {
lib/plankton/shape/logic-impl.js 862) if (parameters.soft) {
lib/plankton/shape/logic-impl.js 863) str = `~${str}`;
lib/plankton/shape/logic-impl.js 864) }
lib/plankton/shape/logic-impl.js 865) }
lib/plankton/shape/logic-impl.js 866) return str;
lib/plankton/shape/logic-impl.js 867) }
lib/plankton/shape/logic-impl.js 868) /**
lib/plankton/shape/logic-impl.js 869) * @author fenris
lib/plankton/shape/logic-impl.js 870) */
lib/plankton/shape/logic-impl.js 871) lib_shape.register({
lib/plankton/shape/logic-impl.js 872) "name": "float",
lib/plankton/shape/logic-impl.js 873) "make": float_make,
lib/plankton/shape/logic-impl.js 874) "inspect": float_inspect,
lib/plankton/shape/logic-impl.js 875) "stance": float_stance,
lib/plankton/shape/logic-impl.js 876) "show": float_show,
lib/plankton/shape/logic-impl.js 877) });
lib/plankton/shape/logic-impl.js 878) })(lib_shape || (lib_shape = {}));
lib/plankton/shape/logic-impl.js 879) /*
lib/plankton/shape/logic-impl.js 880) This file is part of »bacterio-plankton:shape«.
lib/plankton/shape/logic-impl.js 881)
|
[upd] server:lib:plankton
Christian Fraß authored 3 years ago
|
server/lib/plankton/shape/logic-impl.js 882) Copyright 2016-2021 'Christian Fraß, Christian Neubauer, Martin Springwald GbR'
|
[add] lib:plankton
Christian Fraß authored 3 years ago
|
lib/plankton/shape/logic-impl.js 883) <info@greenscale.de>
lib/plankton/shape/logic-impl.js 884)
lib/plankton/shape/logic-impl.js 885) »bacterio-plankton:shape« is free software: you can redistribute it and/or modify
lib/plankton/shape/logic-impl.js 886) it under the terms of the GNU Lesser General Public License as published by
lib/plankton/shape/logic-impl.js 887) the Free Software Foundation, either version 3 of the License, or
lib/plankton/shape/logic-impl.js 888) (at your option) any later version.
lib/plankton/shape/logic-impl.js 889)
lib/plankton/shape/logic-impl.js 890) »bacterio-plankton:shape« is distributed in the hope that it will be useful,
lib/plankton/shape/logic-impl.js 891) but WITHOUT ANY WARRANTY; without even the implied warranty of
lib/plankton/shape/logic-impl.js 892) MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
lib/plankton/shape/logic-impl.js 893) GNU Lesser General Public License for more details.
lib/plankton/shape/logic-impl.js 894)
lib/plankton/shape/logic-impl.js 895) You should have received a copy of the GNU Lesser General Public License
lib/plankton/shape/logic-impl.js 896) along with »bacterio-plankton:shape«. If not, see <http://www.gnu.org/licenses/>.
lib/plankton/shape/logic-impl.js 897) */
lib/plankton/shape/logic-impl.js 898) var lib_shape;
lib/plankton/shape/logic-impl.js 899) (function (lib_shape) {
lib/plankton/shape/logic-impl.js 900) /**
lib/plankton/shape/logic-impl.js 901) * @author fenris
lib/plankton/shape/logic-impl.js 902) */
lib/plankton/shape/logic-impl.js 903) function string_make({ "soft": soft = false, "mutable": mutable = true, "defaultvalue": defaultvalue = undefined, "long": long = false, }) {
lib/plankton/shape/logic-impl.js 904) if (defaultvalue === undefined) {
lib/plankton/shape/logic-impl.js 905) defaultvalue = (soft ? null : "");
lib/plankton/shape/logic-impl.js 906) }
lib/plankton/shape/logic-impl.js 907) return {
lib/plankton/shape/logic-impl.js 908) "soft": soft,
lib/plankton/shape/logic-impl.js 909) "mutable": mutable,
lib/plankton/shape/logic-impl.js 910) "defaultvalue": defaultvalue,
lib/plankton/shape/logic-impl.js 911) "long": long,
lib/plankton/shape/logic-impl.js 912) };
lib/plankton/shape/logic-impl.js 913) }
lib/plankton/shape/logic-impl.js 914) /**
lib/plankton/shape/logic-impl.js 915) * @author fenris
lib/plankton/shape/logic-impl.js 916) */
lib/plankton/shape/logic-impl.js 917) function string_inspect(parameters, value, _inspect) {
lib/plankton/shape/logic-impl.js 918) let inspection = lib_shape.inspection_create();
lib/plankton/shape/logic-impl.js 919) if (value == undefined) {
lib/plankton/shape/logic-impl.js 920) if (parameters.soft) {
lib/plankton/shape/logic-impl.js 921) // all good
lib/plankton/shape/logic-impl.js 922) }
lib/plankton/shape/logic-impl.js 923) else {
lib/plankton/shape/logic-impl.js 924) lib_shape.inspection_add(inspection, "null is not allowed");
lib/plankton/shape/logic-impl.js 925) }
lib/plankton/shape/logic-impl.js 926) }
lib/plankton/shape/logic-impl.js 927) else {
lib/plankton/shape/logic-impl.js 928) let jstype_actual = typeof (value);
lib/plankton/shape/logic-impl.js 929) let jstype_expected = "string";
lib/plankton/shape/logic-impl.js 930) if (jstype_actual === jstype_expected) {
lib/plankton/shape/logic-impl.js 931) // all good
lib/plankton/shape/logic-impl.js 932) }
lib/plankton/shape/logic-impl.js 933) else {
lib/plankton/shape/logic-impl.js 934) lib_shape.inspection_add(inspection, `expected JS-type '${jstype_expected}' but got '${jstype_actual}'`);
lib/plankton/shape/logic-impl.js 935) }
lib/plankton/shape/logic-impl.js 936) }
lib/plankton/shape/logic-impl.js 937) return inspection;
lib/plankton/shape/logic-impl.js 938) }
lib/plankton/shape/logic-impl.js 939) /**
lib/plankton/shape/logic-impl.js 940) * @author fenris
lib/plankton/shape/logic-impl.js 941) */
lib/plankton/shape/logic-impl.js 942) function string_stance(parameters, bindings, _stance) {
lib/plankton/shape/logic-impl.js 943) return {
lib/plankton/shape/logic-impl.js 944) "name": "string",
lib/plankton/shape/logic-impl.js 945) "parameters": parameters
lib/plankton/shape/logic-impl.js 946) };
lib/plankton/shape/logic-impl.js 947) }
lib/plankton/shape/logic-impl.js 948) /**
lib/plankton/shape/logic-impl.js 949) * @author fenris
lib/plankton/shape/logic-impl.js 950) */
lib/plankton/shape/logic-impl.js 951) function string_show(parameters, _show) {
lib/plankton/shape/logic-impl.js 952) let str;
lib/plankton/shape/logic-impl.js 953) // core
lib/plankton/shape/logic-impl.js 954) {
lib/plankton/shape/logic-impl.js 955) str = "string";
lib/plankton/shape/logic-impl.js 956) }
lib/plankton/shape/logic-impl.js 957) // soft
lib/plankton/shape/logic-impl.js 958) {
lib/plankton/shape/logic-impl.js 959) if (parameters.soft) {
lib/plankton/shape/logic-impl.js 960) str = `~${str}`;
lib/plankton/shape/logic-impl.js 961) }
lib/plankton/shape/logic-impl.js 962) }
lib/plankton/shape/logic-impl.js 963) return str;
lib/plankton/shape/logic-impl.js 964) }
lib/plankton/shape/logic-impl.js 965) /**
lib/plankton/shape/logic-impl.js 966) * @author fenris
lib/plankton/shape/logic-impl.js 967) */
lib/plankton/shape/logic-impl.js 968) lib_shape.register({
lib/plankton/shape/logic-impl.js 969) "name": "string",
lib/plankton/shape/logic-impl.js 970) "make": string_make,
lib/plankton/shape/logic-impl.js 971) "inspect": string_inspect,
lib/plankton/shape/logic-impl.js 972) "stance": string_stance,
lib/plankton/shape/logic-impl.js 973) "show": string_show,
lib/plankton/shape/logic-impl.js 974) });
lib/plankton/shape/logic-impl.js 975) })(lib_shape || (lib_shape = {}));
lib/plankton/shape/logic-impl.js 976) /*
lib/plankton/shape/logic-impl.js 977) This file is part of »bacterio-plankton:shape«.
lib/plankton/shape/logic-impl.js 978)
|
[upd] server:lib:plankton
Christian Fraß authored 3 years ago
|
server/lib/plankton/shape/logic-impl.js 979) Copyright 2016-2021 'Christian Fraß, Christian Neubauer, Martin Springwald GbR'
|
[add] lib:plankton
Christian Fraß authored 3 years ago
|
lib/plankton/shape/logic-impl.js 980) <info@greenscale.de>
lib/plankton/shape/logic-impl.js 981)
lib/plankton/shape/logic-impl.js 982) »bacterio-plankton:shape« is free software: you can redistribute it and/or modify
lib/plankton/shape/logic-impl.js 983) it under the terms of the GNU Lesser General Public License as published by
lib/plankton/shape/logic-impl.js 984) the Free Software Foundation, either version 3 of the License, or
lib/plankton/shape/logic-impl.js 985) (at your option) any later version.
lib/plankton/shape/logic-impl.js 986)
lib/plankton/shape/logic-impl.js 987) »bacterio-plankton:shape« is distributed in the hope that it will be useful,
lib/plankton/shape/logic-impl.js 988) but WITHOUT ANY WARRANTY; without even the implied warranty of
lib/plankton/shape/logic-impl.js 989) MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
lib/plankton/shape/logic-impl.js 990) GNU Lesser General Public License for more details.
lib/plankton/shape/logic-impl.js 991)
lib/plankton/shape/logic-impl.js 992) You should have received a copy of the GNU Lesser General Public License
lib/plankton/shape/logic-impl.js 993) along with »bacterio-plankton:shape«. If not, see <http://www.gnu.org/licenses/>.
lib/plankton/shape/logic-impl.js 994) */
lib/plankton/shape/logic-impl.js 995) var lib_shape;
lib/plankton/shape/logic-impl.js 996) (function (lib_shape) {
lib/plankton/shape/logic-impl.js 997) /**
lib/plankton/shape/logic-impl.js 998) * @author fenris
lib/plankton/shape/logic-impl.js 999) */
lib/plankton/shape/logic-impl.js 1000) function email_make({ "soft": soft = false, "mutable": mutable = true, "defaultvalue": defaultvalue = undefined, }) {
lib/plankton/shape/logic-impl.js 1001) if (defaultvalue === undefined) {
lib/plankton/shape/logic-impl.js 1002) defaultvalue = (soft ? null : "");
lib/plankton/shape/logic-impl.js 1003) }
lib/plankton/shape/logic-impl.js 1004) return {
lib/plankton/shape/logic-impl.js 1005) "soft": soft,
lib/plankton/shape/logic-impl.js 1006) "mutable": mutable,
lib/plankton/shape/logic-impl.js 1007) "defaultvalue": defaultvalue,
lib/plankton/shape/logic-impl.js 1008) };
lib/plankton/shape/logic-impl.js 1009) }
lib/plankton/shape/logic-impl.js 1010) /**
lib/plankton/shape/logic-impl.js 1011) * @author fenris
lib/plankton/shape/logic-impl.js 1012) */
lib/plankton/shape/logic-impl.js 1013) function email_inspect(parameters, value, _inspect) {
lib/plankton/shape/logic-impl.js 1014) let inspection = lib_shape.inspection_create();
lib/plankton/shape/logic-impl.js 1015) if (value == undefined) {
lib/plankton/shape/logic-impl.js 1016) if (parameters.soft) {
lib/plankton/shape/logic-impl.js 1017) // all good
lib/plankton/shape/logic-impl.js 1018) }
lib/plankton/shape/logic-impl.js 1019) else {
lib/plankton/shape/logic-impl.js 1020) lib_shape.inspection_add(inspection, "null is not allowed");
lib/plankton/shape/logic-impl.js 1021) }
lib/plankton/shape/logic-impl.js 1022) }
lib/plankton/shape/logic-impl.js 1023) else {
lib/plankton/shape/logic-impl.js 1024) let jstype_actual = typeof (value);
lib/plankton/shape/logic-impl.js 1025) let jstype_expected = "string";
lib/plankton/shape/logic-impl.js 1026) if (jstype_actual === jstype_expected) {
lib/plankton/shape/logic-impl.js 1027) // all good
lib/plankton/shape/logic-impl.js 1028) }
lib/plankton/shape/logic-impl.js 1029) else {
lib/plankton/shape/logic-impl.js 1030) lib_shape.inspection_add(inspection, `expected JS-type '${jstype_expected}' but got '${jstype_actual}'`);
lib/plankton/shape/logic-impl.js 1031) }
lib/plankton/shape/logic-impl.js 1032) }
lib/plankton/shape/logic-impl.js 1033) return inspection;
lib/plankton/shape/logic-impl.js 1034) }
lib/plankton/shape/logic-impl.js 1035) /**
lib/plankton/shape/logic-impl.js 1036) * @author fenris
lib/plankton/shape/logic-impl.js 1037) */
lib/plankton/shape/logic-impl.js 1038) function email_stance(parameters, bindings, _stance) {
lib/plankton/shape/logic-impl.js 1039) return {
lib/plankton/shape/logic-impl.js 1040) "name": "email",
lib/plankton/shape/logic-impl.js 1041) "parameters": parameters
lib/plankton/shape/logic-impl.js 1042) };
lib/plankton/shape/logic-impl.js 1043) }
lib/plankton/shape/logic-impl.js 1044) /**
lib/plankton/shape/logic-impl.js 1045) * @author fenris
lib/plankton/shape/logic-impl.js 1046) */
lib/plankton/shape/logic-impl.js 1047) function email_show(parameters, _show) {
lib/plankton/shape/logic-impl.js 1048) let str;
lib/plankton/shape/logic-impl.js 1049) // core
lib/plankton/shape/logic-impl.js 1050) {
lib/plankton/shape/logic-impl.js 1051) str = "email";
lib/plankton/shape/logic-impl.js 1052) }
lib/plankton/shape/logic-impl.js 1053) // soft
lib/plankton/shape/logic-impl.js 1054) {
lib/plankton/shape/logic-impl.js 1055) if (parameters.soft) {
lib/plankton/shape/logic-impl.js 1056) str = `~${str}`;
lib/plankton/shape/logic-impl.js 1057) }
lib/plankton/shape/logic-impl.js 1058) }
lib/plankton/shape/logic-impl.js 1059) return str;
lib/plankton/shape/logic-impl.js 1060) }
lib/plankton/shape/logic-impl.js 1061) /**
lib/plankton/shape/logic-impl.js 1062) * @author fenris
lib/plankton/shape/logic-impl.js 1063) */
lib/plankton/shape/logic-impl.js 1064) lib_shape.register({
lib/plankton/shape/logic-impl.js 1065) "name": "email",
lib/plankton/shape/logic-impl.js 1066) "make": email_make,
lib/plankton/shape/logic-impl.js 1067) "inspect": email_inspect,
lib/plankton/shape/logic-impl.js 1068) "stance": email_stance,
lib/plankton/shape/logic-impl.js 1069) "show": email_show,
lib/plankton/shape/logic-impl.js 1070) });
lib/plankton/shape/logic-impl.js 1071) })(lib_shape || (lib_shape = {}));
lib/plankton/shape/logic-impl.js 1072) /*
lib/plankton/shape/logic-impl.js 1073) This file is part of »bacterio-plankton:shape«.
lib/plankton/shape/logic-impl.js 1074)
|
[upd] server:lib:plankton
Christian Fraß authored 3 years ago
|
server/lib/plankton/shape/logic-impl.js 1075) Copyright 2016-2021 'Christian Fraß, Christian Neubauer, Martin Springwald GbR'
|
[add] lib:plankton
Christian Fraß authored 3 years ago
|
lib/plankton/shape/logic-impl.js 1076) <info@greenscale.de>
lib/plankton/shape/logic-impl.js 1077)
lib/plankton/shape/logic-impl.js 1078) »bacterio-plankton:shape« is free software: you can redistribute it and/or modify
lib/plankton/shape/logic-impl.js 1079) it under the terms of the GNU Lesser General Public License as published by
lib/plankton/shape/logic-impl.js 1080) the Free Software Foundation, either version 3 of the License, or
lib/plankton/shape/logic-impl.js 1081) (at your option) any later version.
lib/plankton/shape/logic-impl.js 1082)
lib/plankton/shape/logic-impl.js 1083) »bacterio-plankton:shape« is distributed in the hope that it will be useful,
lib/plankton/shape/logic-impl.js 1084) but WITHOUT ANY WARRANTY; without even the implied warranty of
lib/plankton/shape/logic-impl.js 1085) MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
lib/plankton/shape/logic-impl.js 1086) GNU Lesser General Public License for more details.
lib/plankton/shape/logic-impl.js 1087)
lib/plankton/shape/logic-impl.js 1088) You should have received a copy of the GNU Lesser General Public License
lib/plankton/shape/logic-impl.js 1089) along with »bacterio-plankton:shape«. If not, see <http://www.gnu.org/licenses/>.
lib/plankton/shape/logic-impl.js 1090) */
lib/plankton/shape/logic-impl.js 1091) var lib_shape;
lib/plankton/shape/logic-impl.js 1092) (function (lib_shape) {
lib/plankton/shape/logic-impl.js 1093) /**
lib/plankton/shape/logic-impl.js 1094) * @author fenris
lib/plankton/shape/logic-impl.js 1095) */
lib/plankton/shape/logic-impl.js 1096) function url_make({ "soft": soft = false, "mutable": mutable = true, "defaultvalue": defaultvalue = undefined, "type": type = "link", }) {
lib/plankton/shape/logic-impl.js 1097) if (defaultvalue === undefined) {
lib/plankton/shape/logic-impl.js 1098) defaultvalue = (soft ? null : "");
lib/plankton/shape/logic-impl.js 1099) }
lib/plankton/shape/logic-impl.js 1100) return {
lib/plankton/shape/logic-impl.js 1101) "soft": soft,
lib/plankton/shape/logic-impl.js 1102) "mutable": mutable,
lib/plankton/shape/logic-impl.js 1103) "defaultvalue": defaultvalue,
lib/plankton/shape/logic-impl.js 1104) "type": type,
lib/plankton/shape/logic-impl.js 1105) };
lib/plankton/shape/logic-impl.js 1106) }
lib/plankton/shape/logic-impl.js 1107) /**
lib/plankton/shape/logic-impl.js 1108) * @author fenris
lib/plankton/shape/logic-impl.js 1109) */
lib/plankton/shape/logic-impl.js 1110) function url_inspect(parameters, value, _inspect) {
lib/plankton/shape/logic-impl.js 1111) let inspection = lib_shape.inspection_create();
lib/plankton/shape/logic-impl.js 1112) if (value == undefined) {
lib/plankton/shape/logic-impl.js 1113) if (parameters.soft) {
lib/plankton/shape/logic-impl.js 1114) // all good
lib/plankton/shape/logic-impl.js 1115) }
lib/plankton/shape/logic-impl.js 1116) else {
lib/plankton/shape/logic-impl.js 1117) lib_shape.inspection_add(inspection, "null is not allowed");
lib/plankton/shape/logic-impl.js 1118) }
lib/plankton/shape/logic-impl.js 1119) }
lib/plankton/shape/logic-impl.js 1120) else {
lib/plankton/shape/logic-impl.js 1121) let jstype_actual = typeof (value);
lib/plankton/shape/logic-impl.js 1122) let jstype_expected = "string";
lib/plankton/shape/logic-impl.js 1123) if (jstype_actual === jstype_expected) {
lib/plankton/shape/logic-impl.js 1124) // all good
lib/plankton/shape/logic-impl.js 1125) }
lib/plankton/shape/logic-impl.js 1126) else {
lib/plankton/shape/logic-impl.js 1127) lib_shape.inspection_add(inspection, `expected JS-type '${jstype_expected}' but got '${jstype_actual}'`);
lib/plankton/shape/logic-impl.js 1128) }
lib/plankton/shape/logic-impl.js 1129) }
lib/plankton/shape/logic-impl.js 1130) return inspection;
lib/plankton/shape/logic-impl.js 1131) }
lib/plankton/shape/logic-impl.js 1132) /**
lib/plankton/shape/logic-impl.js 1133) * @author fenris
lib/plankton/shape/logic-impl.js 1134) */
lib/plankton/shape/logic-impl.js 1135) function url_stance(parameters, bindings, _stance) {
lib/plankton/shape/logic-impl.js 1136) return {
lib/plankton/shape/logic-impl.js 1137) "name": "url",
lib/plankton/shape/logic-impl.js 1138) "parameters": parameters
lib/plankton/shape/logic-impl.js 1139) };
lib/plankton/shape/logic-impl.js 1140) }
lib/plankton/shape/logic-impl.js 1141) /**
lib/plankton/shape/logic-impl.js 1142) * @author fenris
lib/plankton/shape/logic-impl.js 1143) */
lib/plankton/shape/logic-impl.js 1144) function url_show(parameters, _show) {
lib/plankton/shape/logic-impl.js 1145) let str;
lib/plankton/shape/logic-impl.js 1146) // core
lib/plankton/shape/logic-impl.js 1147) {
lib/plankton/shape/logic-impl.js 1148) str = "url";
lib/plankton/shape/logic-impl.js 1149) }
lib/plankton/shape/logic-impl.js 1150) // soft
lib/plankton/shape/logic-impl.js 1151) {
lib/plankton/shape/logic-impl.js 1152) if (parameters.soft) {
lib/plankton/shape/logic-impl.js 1153) str = `~${str}`;
lib/plankton/shape/logic-impl.js 1154) }
lib/plankton/shape/logic-impl.js 1155) }
lib/plankton/shape/logic-impl.js 1156) return str;
lib/plankton/shape/logic-impl.js 1157) }
lib/plankton/shape/logic-impl.js 1158) /**
lib/plankton/shape/logic-impl.js 1159) * @author fenris
lib/plankton/shape/logic-impl.js 1160) */
lib/plankton/shape/logic-impl.js 1161) lib_shape.register({
lib/plankton/shape/logic-impl.js 1162) "name": "url",
lib/plankton/shape/logic-impl.js 1163) "make": url_make,
lib/plankton/shape/logic-impl.js 1164) "inspect": url_inspect,
lib/plankton/shape/logic-impl.js 1165) "stance": url_stance,
lib/plankton/shape/logic-impl.js 1166) "show": url_show,
lib/plankton/shape/logic-impl.js 1167) });
lib/plankton/shape/logic-impl.js 1168) })(lib_shape || (lib_shape = {}));
lib/plankton/shape/logic-impl.js 1169) /*
lib/plankton/shape/logic-impl.js 1170) This file is part of »bacterio-plankton:shape«.
lib/plankton/shape/logic-impl.js 1171)
|
[upd] server:lib:plankton
Christian Fraß authored 3 years ago
|
server/lib/plankton/shape/logic-impl.js 1172) Copyright 2016-2021 'Christian Fraß, Christian Neubauer, Martin Springwald GbR'
|
[add] lib:plankton
Christian Fraß authored 3 years ago
|
lib/plankton/shape/logic-impl.js 1173) <info@greenscale.de>
lib/plankton/shape/logic-impl.js 1174)
lib/plankton/shape/logic-impl.js 1175) »bacterio-plankton:shape« is free software: you can redistribute it and/or modify
lib/plankton/shape/logic-impl.js 1176) it under the terms of the GNU Lesser General Public License as published by
lib/plankton/shape/logic-impl.js 1177) the Free Software Foundation, either version 3 of the License, or
lib/plankton/shape/logic-impl.js 1178) (at your option) any later version.
lib/plankton/shape/logic-impl.js 1179)
lib/plankton/shape/logic-impl.js 1180) »bacterio-plankton:shape« is distributed in the hope that it will be useful,
lib/plankton/shape/logic-impl.js 1181) but WITHOUT ANY WARRANTY; without even the implied warranty of
lib/plankton/shape/logic-impl.js 1182) MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
lib/plankton/shape/logic-impl.js 1183) GNU Lesser General Public License for more details.
lib/plankton/shape/logic-impl.js 1184)
lib/plankton/shape/logic-impl.js 1185) You should have received a copy of the GNU Lesser General Public License
lib/plankton/shape/logic-impl.js 1186) along with »bacterio-plankton:shape«. If not, see <http://www.gnu.org/licenses/>.
lib/plankton/shape/logic-impl.js 1187) */
lib/plankton/shape/logic-impl.js 1188) var lib_shape;
lib/plankton/shape/logic-impl.js 1189) (function (lib_shape) {
lib/plankton/shape/logic-impl.js 1190) /**
lib/plankton/shape/logic-impl.js 1191) * @author fenris
lib/plankton/shape/logic-impl.js 1192) */
lib/plankton/shape/logic-impl.js 1193) function markdown_make({ "soft": soft = false, "mutable": mutable = true, "defaultvalue": defaultvalue = undefined, "type": type = "link", }) {
lib/plankton/shape/logic-impl.js 1194) if (defaultvalue === undefined) {
lib/plankton/shape/logic-impl.js 1195) defaultvalue = (soft ? null : "");
lib/plankton/shape/logic-impl.js 1196) }
lib/plankton/shape/logic-impl.js 1197) return {
lib/plankton/shape/logic-impl.js 1198) "soft": soft,
lib/plankton/shape/logic-impl.js 1199) "mutable": mutable,
lib/plankton/shape/logic-impl.js 1200) "defaultvalue": defaultvalue,
lib/plankton/shape/logic-impl.js 1201) "type": type,
lib/plankton/shape/logic-impl.js 1202) };
lib/plankton/shape/logic-impl.js 1203) }
lib/plankton/shape/logic-impl.js 1204) /**
lib/plankton/shape/logic-impl.js 1205) * @author fenris
lib/plankton/shape/logic-impl.js 1206) */
lib/plankton/shape/logic-impl.js 1207) function markdown_inspect(parameters, value, _inspect) {
lib/plankton/shape/logic-impl.js 1208) let inspection = lib_shape.inspection_create();
lib/plankton/shape/logic-impl.js 1209) if (value == undefined) {
lib/plankton/shape/logic-impl.js 1210) if (parameters.soft) {
lib/plankton/shape/logic-impl.js 1211) // all good
lib/plankton/shape/logic-impl.js 1212) }
lib/plankton/shape/logic-impl.js 1213) else {
lib/plankton/shape/logic-impl.js 1214) lib_shape.inspection_add(inspection, "null is not allowed");
lib/plankton/shape/logic-impl.js 1215) }
lib/plankton/shape/logic-impl.js 1216) }
lib/plankton/shape/logic-impl.js 1217) else {
lib/plankton/shape/logic-impl.js 1218) let jstype_actual = typeof (value);
lib/plankton/shape/logic-impl.js 1219) let jstype_expected = "string";
lib/plankton/shape/logic-impl.js 1220) if (jstype_actual === jstype_expected) {
lib/plankton/shape/logic-impl.js 1221) // all good
lib/plankton/shape/logic-impl.js 1222) }
lib/plankton/shape/logic-impl.js 1223) else {
lib/plankton/shape/logic-impl.js 1224) lib_shape.inspection_add(inspection, `expected JS-type '${jstype_expected}' but got '${jstype_actual}'`);
lib/plankton/shape/logic-impl.js 1225) }
lib/plankton/shape/logic-impl.js 1226) }
lib/plankton/shape/logic-impl.js 1227) return inspection;
lib/plankton/shape/logic-impl.js 1228) }
lib/plankton/shape/logic-impl.js 1229) /**
lib/plankton/shape/logic-impl.js 1230) * @author fenris
lib/plankton/shape/logic-impl.js 1231) */
lib/plankton/shape/logic-impl.js 1232) function markdown_stance(parameters, bindings, _stance) {
lib/plankton/shape/logic-impl.js 1233) return {
lib/plankton/shape/logic-impl.js 1234) "name": "markdown",
lib/plankton/shape/logic-impl.js 1235) "parameters": parameters
lib/plankton/shape/logic-impl.js 1236) };
lib/plankton/shape/logic-impl.js 1237) }
lib/plankton/shape/logic-impl.js 1238) /**
lib/plankton/shape/logic-impl.js 1239) * @author fenris
lib/plankton/shape/logic-impl.js 1240) */
lib/plankton/shape/logic-impl.js 1241) function markdown_show(parameters, _show) {
lib/plankton/shape/logic-impl.js 1242) let str;
lib/plankton/shape/logic-impl.js 1243) // core
lib/plankton/shape/logic-impl.js 1244) {
lib/plankton/shape/logic-impl.js 1245) str = "markdown";
lib/plankton/shape/logic-impl.js 1246) }
lib/plankton/shape/logic-impl.js 1247) // soft
lib/plankton/shape/logic-impl.js 1248) {
lib/plankton/shape/logic-impl.js 1249) if (parameters.soft) {
lib/plankton/shape/logic-impl.js 1250) str = `~${str}`;
lib/plankton/shape/logic-impl.js 1251) }
lib/plankton/shape/logic-impl.js 1252) }
lib/plankton/shape/logic-impl.js 1253) return str;
lib/plankton/shape/logic-impl.js 1254) }
lib/plankton/shape/logic-impl.js 1255) /**
lib/plankton/shape/logic-impl.js 1256) * @author fenris
lib/plankton/shape/logic-impl.js 1257) */
lib/plankton/shape/logic-impl.js 1258) lib_shape.register({
lib/plankton/shape/logic-impl.js 1259) "name": "markdown",
lib/plankton/shape/logic-impl.js 1260) "make": markdown_make,
lib/plankton/shape/logic-impl.js 1261) "inspect": markdown_inspect,
lib/plankton/shape/logic-impl.js 1262) "stance": markdown_stance,
lib/plankton/shape/logic-impl.js 1263) "show": markdown_show,
lib/plankton/shape/logic-impl.js 1264) });
lib/plankton/shape/logic-impl.js 1265) })(lib_shape || (lib_shape = {}));
lib/plankton/shape/logic-impl.js 1266) /*
lib/plankton/shape/logic-impl.js 1267) This file is part of »bacterio-plankton:shape«.
lib/plankton/shape/logic-impl.js 1268)
|
[upd] server:lib:plankton
Christian Fraß authored 3 years ago
|
server/lib/plankton/shape/logic-impl.js 1269) Copyright 2016-2021 'Christian Fraß, Christian Neubauer, Martin Springwald GbR'
|
[add] lib:plankton
Christian Fraß authored 3 years ago
|
lib/plankton/shape/logic-impl.js 1270) <info@greenscale.de>
lib/plankton/shape/logic-impl.js 1271)
lib/plankton/shape/logic-impl.js 1272) »bacterio-plankton:shape« is free software: you can redistribute it and/or modify
lib/plankton/shape/logic-impl.js 1273) it under the terms of the GNU Lesser General Public License as published by
lib/plankton/shape/logic-impl.js 1274) the Free Software Foundation, either version 3 of the License, or
lib/plankton/shape/logic-impl.js 1275) (at your option) any later version.
lib/plankton/shape/logic-impl.js 1276)
lib/plankton/shape/logic-impl.js 1277) »bacterio-plankton:shape« is distributed in the hope that it will be useful,
lib/plankton/shape/logic-impl.js 1278) but WITHOUT ANY WARRANTY; without even the implied warranty of
lib/plankton/shape/logic-impl.js 1279) MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
lib/plankton/shape/logic-impl.js 1280) GNU Lesser General Public License for more details.
lib/plankton/shape/logic-impl.js 1281)
lib/plankton/shape/logic-impl.js 1282) You should have received a copy of the GNU Lesser General Public License
lib/plankton/shape/logic-impl.js 1283) along with »bacterio-plankton:shape«. If not, see <http://www.gnu.org/licenses/>.
lib/plankton/shape/logic-impl.js 1284) */
lib/plankton/shape/logic-impl.js 1285) var lib_shape;
lib/plankton/shape/logic-impl.js 1286) (function (lib_shape) {
lib/plankton/shape/logic-impl.js 1287) /**
lib/plankton/shape/logic-impl.js 1288) * @author fenris
lib/plankton/shape/logic-impl.js 1289) */
lib/plankton/shape/logic-impl.js 1290) function time_make({ "soft": soft = false, "mutable": mutable = true, "defaultvalue": defaultvalue = undefined, }) {
lib/plankton/shape/logic-impl.js 1291) if (defaultvalue === undefined) {
lib/plankton/shape/logic-impl.js 1292) defaultvalue = (soft ? null : "");
lib/plankton/shape/logic-impl.js 1293) }
lib/plankton/shape/logic-impl.js 1294) return {
lib/plankton/shape/logic-impl.js 1295) "soft": soft,
lib/plankton/shape/logic-impl.js 1296) "mutable": mutable,
lib/plankton/shape/logic-impl.js 1297) "defaultvalue": defaultvalue,
lib/plankton/shape/logic-impl.js 1298) };
lib/plankton/shape/logic-impl.js 1299) }
lib/plankton/shape/logic-impl.js 1300) /**
lib/plankton/shape/logic-impl.js 1301) * @author fenris
lib/plankton/shape/logic-impl.js 1302) */
lib/plankton/shape/logic-impl.js 1303) function time_inspect(parameters, value, _inspect) {
lib/plankton/shape/logic-impl.js 1304) let inspection = lib_shape.inspection_create();
lib/plankton/shape/logic-impl.js 1305) if (value == undefined) {
lib/plankton/shape/logic-impl.js 1306) if (parameters.soft) {
lib/plankton/shape/logic-impl.js 1307) // all good
lib/plankton/shape/logic-impl.js 1308) }
lib/plankton/shape/logic-impl.js 1309) else {
lib/plankton/shape/logic-impl.js 1310) lib_shape.inspection_add(inspection, "null is not allowed");
lib/plankton/shape/logic-impl.js 1311) }
lib/plankton/shape/logic-impl.js 1312) }
lib/plankton/shape/logic-impl.js 1313) else {
lib/plankton/shape/logic-impl.js 1314) let jstype_actual = typeof (value);
lib/plankton/shape/logic-impl.js 1315) let jstype_expected = "object";
lib/plankton/shape/logic-impl.js 1316) if (jstype_actual === jstype_expected) {
lib/plankton/shape/logic-impl.js 1317) // all good?
lib/plankton/shape/logic-impl.js 1318) }
lib/plankton/shape/logic-impl.js 1319) else {
lib/plankton/shape/logic-impl.js 1320) lib_shape.inspection_add(inspection, `expected JS-type '${jstype_expected}' but got '${jstype_actual}'`);
lib/plankton/shape/logic-impl.js 1321) }
lib/plankton/shape/logic-impl.js 1322) }
lib/plankton/shape/logic-impl.js 1323) return inspection;
lib/plankton/shape/logic-impl.js 1324) }
lib/plankton/shape/logic-impl.js 1325) /**
lib/plankton/shape/logic-impl.js 1326) * @author fenris
lib/plankton/shape/logic-impl.js 1327) */
lib/plankton/shape/logic-impl.js 1328) function time_stance(parameters, bindings, _stance) {
lib/plankton/shape/logic-impl.js 1329) return {
lib/plankton/shape/logic-impl.js 1330) "name": "time",
lib/plankton/shape/logic-impl.js 1331) "parameters": parameters
lib/plankton/shape/logic-impl.js 1332) };
lib/plankton/shape/logic-impl.js 1333) }
lib/plankton/shape/logic-impl.js 1334) /**
lib/plankton/shape/logic-impl.js 1335) * @author fenris
lib/plankton/shape/logic-impl.js 1336) */
lib/plankton/shape/logic-impl.js 1337) function time_show(parameters, _show) {
lib/plankton/shape/logic-impl.js 1338) let str;
lib/plankton/shape/logic-impl.js 1339) // core
lib/plankton/shape/logic-impl.js 1340) {
lib/plankton/shape/logic-impl.js 1341) str = "time";
lib/plankton/shape/logic-impl.js 1342) }
lib/plankton/shape/logic-impl.js 1343) // soft
lib/plankton/shape/logic-impl.js 1344) {
lib/plankton/shape/logic-impl.js 1345) if (parameters.soft) {
lib/plankton/shape/logic-impl.js 1346) str = `~${str}`;
lib/plankton/shape/logic-impl.js 1347) }
lib/plankton/shape/logic-impl.js 1348) }
lib/plankton/shape/logic-impl.js 1349) return str;
lib/plankton/shape/logic-impl.js 1350) }
lib/plankton/shape/logic-impl.js 1351) /**
lib/plankton/shape/logic-impl.js 1352) * @author fenris
lib/plankton/shape/logic-impl.js 1353) */
lib/plankton/shape/logic-impl.js 1354) lib_shape.register({
lib/plankton/shape/logic-impl.js 1355) "name": "time",
lib/plankton/shape/logic-impl.js 1356) "make": time_make,
lib/plankton/shape/logic-impl.js 1357) "inspect": time_inspect,
lib/plankton/shape/logic-impl.js 1358) "stance": time_stance,
lib/plankton/shape/logic-impl.js 1359) "show": time_show,
lib/plankton/shape/logic-impl.js 1360) });
lib/plankton/shape/logic-impl.js 1361) })(lib_shape || (lib_shape = {}));
lib/plankton/shape/logic-impl.js 1362) /*
lib/plankton/shape/logic-impl.js 1363) This file is part of »bacterio-plankton:shape«.
lib/plankton/shape/logic-impl.js 1364)
|
[upd] server:lib:plankton
Christian Fraß authored 3 years ago
|
server/lib/plankton/shape/logic-impl.js 1365) Copyright 2016-2021 'Christian Fraß, Christian Neubauer, Martin Springwald GbR'
|
[add] lib:plankton
Christian Fraß authored 3 years ago
|
lib/plankton/shape/logic-impl.js 1366) <info@greenscale.de>
lib/plankton/shape/logic-impl.js 1367)
lib/plankton/shape/logic-impl.js 1368) »bacterio-plankton:shape« is free software: you can redistribute it and/or modify
lib/plankton/shape/logic-impl.js 1369) it under the terms of the GNU Lesser General Public License as published by
lib/plankton/shape/logic-impl.js 1370) the Free Software Foundation, either version 3 of the License, or
lib/plankton/shape/logic-impl.js 1371) (at your option) any later version.
lib/plankton/shape/logic-impl.js 1372)
lib/plankton/shape/logic-impl.js 1373) »bacterio-plankton:shape« is distributed in the hope that it will be useful,
lib/plankton/shape/logic-impl.js 1374) but WITHOUT ANY WARRANTY; without even the implied warranty of
lib/plankton/shape/logic-impl.js 1375) MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
lib/plankton/shape/logic-impl.js 1376) GNU Lesser General Public License for more details.
lib/plankton/shape/logic-impl.js 1377)
lib/plankton/shape/logic-impl.js 1378) You should have received a copy of the GNU Lesser General Public License
lib/plankton/shape/logic-impl.js 1379) along with »bacterio-plankton:shape«. If not, see <http://www.gnu.org/licenses/>.
lib/plankton/shape/logic-impl.js 1380) */
lib/plankton/shape/logic-impl.js 1381) var lib_shape;
lib/plankton/shape/logic-impl.js 1382) (function (lib_shape) {
lib/plankton/shape/logic-impl.js 1383) /**
lib/plankton/shape/logic-impl.js 1384) * @author fenris
lib/plankton/shape/logic-impl.js 1385) */
lib/plankton/shape/logic-impl.js 1386) function array_make({ "soft": soft = false, "mutable": mutable = true, "shape_element": shape_element, "defaultvalue": defaultvalue = undefined, }, _make) {
lib/plankton/shape/logic-impl.js 1387) if (shape_element === undefined) {
lib/plankton/shape/logic-impl.js 1388) let message = `mandatory parameter 'shape_element' missing`;
lib/plankton/shape/logic-impl.js 1389) throw (new Error(message));
lib/plankton/shape/logic-impl.js 1390) }
lib/plankton/shape/logic-impl.js 1391) if (defaultvalue === undefined) {
lib/plankton/shape/logic-impl.js 1392) defaultvalue = (soft ? null : []);
lib/plankton/shape/logic-impl.js 1393) }
lib/plankton/shape/logic-impl.js 1394) return {
lib/plankton/shape/logic-impl.js 1395) "soft": soft,
lib/plankton/shape/logic-impl.js 1396) "mutable": mutable,
lib/plankton/shape/logic-impl.js 1397) "shape_element": _make(shape_element),
lib/plankton/shape/logic-impl.js 1398) "defaultvalue": defaultvalue,
lib/plankton/shape/logic-impl.js 1399) };
lib/plankton/shape/logic-impl.js 1400) }
lib/plankton/shape/logic-impl.js 1401) /**
lib/plankton/shape/logic-impl.js 1402) * @author fenris
lib/plankton/shape/logic-impl.js 1403) */
lib/plankton/shape/logic-impl.js 1404) function array_inspect(parameters, value, _inspect) {
lib/plankton/shape/logic-impl.js 1405) let inspection = lib_shape.inspection_create();
lib/plankton/shape/logic-impl.js 1406) if (value == undefined) {
lib/plankton/shape/logic-impl.js 1407) if (parameters.soft) {
lib/plankton/shape/logic-impl.js 1408) // all good
lib/plankton/shape/logic-impl.js 1409) }
lib/plankton/shape/logic-impl.js 1410) else {
lib/plankton/shape/logic-impl.js 1411) lib_shape.inspection_add(inspection, "null is not allowed");
lib/plankton/shape/logic-impl.js 1412) }
lib/plankton/shape/logic-impl.js 1413) }
lib/plankton/shape/logic-impl.js 1414) else {
lib/plankton/shape/logic-impl.js 1415) let jstype_actual = typeof (value);
lib/plankton/shape/logic-impl.js 1416) let jstype_expected = "object";
lib/plankton/shape/logic-impl.js 1417) if (jstype_actual === jstype_expected) {
lib/plankton/shape/logic-impl.js 1418) if (value instanceof Array) {
lib/plankton/shape/logic-impl.js 1419) value.forEach((element, index) => {
lib/plankton/shape/logic-impl.js 1420) lib_shape.inspection_extend(inspection, `element #${index.toFixed(0)}`, _inspect(parameters.shape_element, element));
lib/plankton/shape/logic-impl.js 1421) });
lib/plankton/shape/logic-impl.js 1422) }
lib/plankton/shape/logic-impl.js 1423) else {
lib/plankton/shape/logic-impl.js 1424) lib_shape.inspection_add(inspection, `value does not seem to be an array-instance`);
lib/plankton/shape/logic-impl.js 1425) }
lib/plankton/shape/logic-impl.js 1426) }
lib/plankton/shape/logic-impl.js 1427) else {
lib/plankton/shape/logic-impl.js 1428) lib_shape.inspection_add(inspection, `expected JS-type '${jstype_expected}' but got '${jstype_actual}'`);
lib/plankton/shape/logic-impl.js 1429) }
lib/plankton/shape/logic-impl.js 1430) }
lib/plankton/shape/logic-impl.js 1431) return inspection;
lib/plankton/shape/logic-impl.js 1432) }
lib/plankton/shape/logic-impl.js 1433) /**
lib/plankton/shape/logic-impl.js 1434) * @author fenris
lib/plankton/shape/logic-impl.js 1435) */
lib/plankton/shape/logic-impl.js 1436) function array_stance(parameters, bindings, _stance) {
lib/plankton/shape/logic-impl.js 1437) return {
lib/plankton/shape/logic-impl.js 1438) "name": "array",
lib/plankton/shape/logic-impl.js 1439) "parameters": {
lib/plankton/shape/logic-impl.js 1440) "soft": parameters.soft,
lib/plankton/shape/logic-impl.js 1441) "shape_element": _stance(parameters.shape_element, bindings)
lib/plankton/shape/logic-impl.js 1442) }
lib/plankton/shape/logic-impl.js 1443) };
lib/plankton/shape/logic-impl.js 1444) }
lib/plankton/shape/logic-impl.js 1445) /**
lib/plankton/shape/logic-impl.js 1446) * @author fenris
lib/plankton/shape/logic-impl.js 1447) */
lib/plankton/shape/logic-impl.js 1448) function array_show(parameters, _show) {
lib/plankton/shape/logic-impl.js 1449) let str;
lib/plankton/shape/logic-impl.js 1450) // core
lib/plankton/shape/logic-impl.js 1451) {
lib/plankton/shape/logic-impl.js 1452) str = "array";
lib/plankton/shape/logic-impl.js 1453) }
lib/plankton/shape/logic-impl.js 1454) // shape_element
lib/plankton/shape/logic-impl.js 1455) {
lib/plankton/shape/logic-impl.js 1456) str += ("<"
lib/plankton/shape/logic-impl.js 1457) +
lib/plankton/shape/logic-impl.js 1458) _show(parameters.shape_element)
lib/plankton/shape/logic-impl.js 1459) +
lib/plankton/shape/logic-impl.js 1460) ">");
lib/plankton/shape/logic-impl.js 1461) }
lib/plankton/shape/logic-impl.js 1462) // soft
lib/plankton/shape/logic-impl.js 1463) {
lib/plankton/shape/logic-impl.js 1464) if (parameters.soft) {
lib/plankton/shape/logic-impl.js 1465) str = `~${str}`;
lib/plankton/shape/logic-impl.js 1466) }
lib/plankton/shape/logic-impl.js 1467) }
lib/plankton/shape/logic-impl.js 1468) return str;
lib/plankton/shape/logic-impl.js 1469) }
lib/plankton/shape/logic-impl.js 1470) /**
lib/plankton/shape/logic-impl.js 1471) * @author fenris
lib/plankton/shape/logic-impl.js 1472) */
lib/plankton/shape/logic-impl.js 1473) lib_shape.register({
lib/plankton/shape/logic-impl.js 1474) "name": "array",
lib/plankton/shape/logic-impl.js 1475) "make": array_make,
lib/plankton/shape/logic-impl.js 1476) "inspect": array_inspect,
lib/plankton/shape/logic-impl.js 1477) "stance": array_stance,
lib/plankton/shape/logic-impl.js 1478) "show": array_show,
lib/plankton/shape/logic-impl.js 1479) });
lib/plankton/shape/logic-impl.js 1480) })(lib_shape || (lib_shape = {}));
lib/plankton/shape/logic-impl.js 1481) /*
lib/plankton/shape/logic-impl.js 1482) This file is part of »bacterio-plankton:shape«.
lib/plankton/shape/logic-impl.js 1483)
|
[upd] server:lib:plankton
Christian Fraß authored 3 years ago
|
server/lib/plankton/shape/logic-impl.js 1484) Copyright 2016-2021 'Christian Fraß, Christian Neubauer, Martin Springwald GbR'
|
[add] lib:plankton
Christian Fraß authored 3 years ago
|
lib/plankton/shape/logic-impl.js 1485) <info@greenscale.de>
lib/plankton/shape/logic-impl.js 1486)
lib/plankton/shape/logic-impl.js 1487) »bacterio-plankton:shape« is free software: you can redistribute it and/or modify
lib/plankton/shape/logic-impl.js 1488) it under the terms of the GNU Lesser General Public License as published by
lib/plankton/shape/logic-impl.js 1489) the Free Software Foundation, either version 3 of the License, or
lib/plankton/shape/logic-impl.js 1490) (at your option) any later version.
lib/plankton/shape/logic-impl.js 1491)
lib/plankton/shape/logic-impl.js 1492) »bacterio-plankton:shape« is distributed in the hope that it will be useful,
lib/plankton/shape/logic-impl.js 1493) but WITHOUT ANY WARRANTY; without even the implied warranty of
lib/plankton/shape/logic-impl.js 1494) MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
lib/plankton/shape/logic-impl.js 1495) GNU Lesser General Public License for more details.
lib/plankton/shape/logic-impl.js 1496)
lib/plankton/shape/logic-impl.js 1497) You should have received a copy of the GNU Lesser General Public License
lib/plankton/shape/logic-impl.js 1498) along with »bacterio-plankton:shape«. If not, see <http://www.gnu.org/licenses/>.
lib/plankton/shape/logic-impl.js 1499) */
lib/plankton/shape/logic-impl.js 1500) var lib_shape;
lib/plankton/shape/logic-impl.js 1501) (function (lib_shape) {
lib/plankton/shape/logic-impl.js 1502) /**
lib/plankton/shape/logic-impl.js 1503) * @author fenris
lib/plankton/shape/logic-impl.js 1504) */
lib/plankton/shape/logic-impl.js 1505) function enumeration_make({ "soft": soft = false, "mutable": mutable = true, "shape_option": shape_option, "options": options, "defaultvalue": defaultvalue = undefined, }, _make) {
lib/plankton/shape/logic-impl.js 1506) if (shape_option === undefined) {
lib/plankton/shape/logic-impl.js 1507) let message = `mandatory parameter 'shape_option' missing`;
lib/plankton/shape/logic-impl.js 1508) throw (new Error(message));
lib/plankton/shape/logic-impl.js 1509) }
lib/plankton/shape/logic-impl.js 1510) if (options === undefined) {
lib/plankton/shape/logic-impl.js 1511) let message = `mandatory parameter 'options' missing`;
lib/plankton/shape/logic-impl.js 1512) throw (new Error(message));
lib/plankton/shape/logic-impl.js 1513) }
lib/plankton/shape/logic-impl.js 1514) if (defaultvalue === undefined) {
lib/plankton/shape/logic-impl.js 1515) defaultvalue = (soft ? null : options[0].value);
lib/plankton/shape/logic-impl.js 1516) }
lib/plankton/shape/logic-impl.js 1517) return {
lib/plankton/shape/logic-impl.js 1518) "soft": soft,
lib/plankton/shape/logic-impl.js 1519) "mutable": mutable,
lib/plankton/shape/logic-impl.js 1520) "shape_option": _make(shape_option),
lib/plankton/shape/logic-impl.js 1521) "options": options,
lib/plankton/shape/logic-impl.js 1522) "defaultvalue": defaultvalue,
lib/plankton/shape/logic-impl.js 1523) };
lib/plankton/shape/logic-impl.js 1524) }
lib/plankton/shape/logic-impl.js 1525) /**
lib/plankton/shape/logic-impl.js 1526) * @author fenris
lib/plankton/shape/logic-impl.js 1527) */
lib/plankton/shape/logic-impl.js 1528) function enumeration_inspect(parameters, value, _inspect) {
lib/plankton/shape/logic-impl.js 1529) let inspection = lib_shape.inspection_create();
lib/plankton/shape/logic-impl.js 1530) if (value == undefined) {
lib/plankton/shape/logic-impl.js 1531) if (parameters.soft) {
lib/plankton/shape/logic-impl.js 1532) // all good
lib/plankton/shape/logic-impl.js 1533) }
lib/plankton/shape/logic-impl.js 1534) else {
lib/plankton/shape/logic-impl.js 1535) lib_shape.inspection_add(inspection, "null is not allowed");
lib/plankton/shape/logic-impl.js 1536) }
lib/plankton/shape/logic-impl.js 1537) }
lib/plankton/shape/logic-impl.js 1538) else {
lib/plankton/shape/logic-impl.js 1539) lib_shape.inspection_extend(inspection, `given value for enumeration`, _inspect(parameters.shape_option, value));
lib/plankton/shape/logic-impl.js 1540) // TODO: check if corresponding option exists
lib/plankton/shape/logic-impl.js 1541) }
lib/plankton/shape/logic-impl.js 1542) return inspection;
lib/plankton/shape/logic-impl.js 1543) }
lib/plankton/shape/logic-impl.js 1544) /**
lib/plankton/shape/logic-impl.js 1545) * @author fenris
lib/plankton/shape/logic-impl.js 1546) */
lib/plankton/shape/logic-impl.js 1547) function enumeration_stance(parameters, bindings, _stance) {
lib/plankton/shape/logic-impl.js 1548) return {
lib/plankton/shape/logic-impl.js 1549) "name": "enumeration",
lib/plankton/shape/logic-impl.js 1550) "parameters": {
lib/plankton/shape/logic-impl.js 1551) "soft": parameters.soft,
lib/plankton/shape/logic-impl.js 1552) "shape_option": _stance(parameters.shape_option, bindings),
lib/plankton/shape/logic-impl.js 1553) "options": parameters.options,
lib/plankton/shape/logic-impl.js 1554) }
lib/plankton/shape/logic-impl.js 1555) };
lib/plankton/shape/logic-impl.js 1556) }
lib/plankton/shape/logic-impl.js 1557) /**
lib/plankton/shape/logic-impl.js 1558) * @author fenris
lib/plankton/shape/logic-impl.js 1559) */
lib/plankton/shape/logic-impl.js 1560) function enumeration_show(parameters, _show) {
lib/plankton/shape/logic-impl.js 1561) let str;
lib/plankton/shape/logic-impl.js 1562) // core
lib/plankton/shape/logic-impl.js 1563) {
lib/plankton/shape/logic-impl.js 1564) str = "enumeration";
lib/plankton/shape/logic-impl.js 1565) }
lib/plankton/shape/logic-impl.js 1566) // shape_option
lib/plankton/shape/logic-impl.js 1567) {
lib/plankton/shape/logic-impl.js 1568) str += ("<"
lib/plankton/shape/logic-impl.js 1569) +
lib/plankton/shape/logic-impl.js 1570) parameters.options.map(option => String(option)).join(",") + ":" + _show(parameters.shape_option)
lib/plankton/shape/logic-impl.js 1571) +
lib/plankton/shape/logic-impl.js 1572) ">");
lib/plankton/shape/logic-impl.js 1573) }
lib/plankton/shape/logic-impl.js 1574) // soft
lib/plankton/shape/logic-impl.js 1575) {
lib/plankton/shape/logic-impl.js 1576) if (parameters.soft) {
lib/plankton/shape/logic-impl.js 1577) str = `~${str}`;
lib/plankton/shape/logic-impl.js 1578) }
lib/plankton/shape/logic-impl.js 1579) }
lib/plankton/shape/logic-impl.js 1580) return str;
lib/plankton/shape/logic-impl.js 1581) }
lib/plankton/shape/logic-impl.js 1582) /**
lib/plankton/shape/logic-impl.js 1583) * @author fenris
lib/plankton/shape/logic-impl.js 1584) */
lib/plankton/shape/logic-impl.js 1585) lib_shape.register({
lib/plankton/shape/logic-impl.js 1586) "name": "enumeration",
lib/plankton/shape/logic-impl.js 1587) "make": enumeration_make,
lib/plankton/shape/logic-impl.js 1588) "inspect": enumeration_inspect,
lib/plankton/shape/logic-impl.js 1589) "stance": enumeration_stance,
lib/plankton/shape/logic-impl.js 1590) "show": enumeration_show,
lib/plankton/shape/logic-impl.js 1591) });
lib/plankton/shape/logic-impl.js 1592) })(lib_shape || (lib_shape = {}));
lib/plankton/shape/logic-impl.js 1593) /*
lib/plankton/shape/logic-impl.js 1594) This file is part of »bacterio-plankton:shape«.
lib/plankton/shape/logic-impl.js 1595)
|
[upd] server:lib:plankton
Christian Fraß authored 3 years ago
|
server/lib/plankton/shape/logic-impl.js 1596) Copyright 2016-2021 'Christian Fraß, Christian Neubauer, Martin Springwald GbR'
|
[add] lib:plankton
Christian Fraß authored 3 years ago
|
lib/plankton/shape/logic-impl.js 1597) <info@greenscale.de>
lib/plankton/shape/logic-impl.js 1598)
lib/plankton/shape/logic-impl.js 1599) »bacterio-plankton:shape« is free software: you can redistribute it and/or modify
lib/plankton/shape/logic-impl.js 1600) it under the terms of the GNU Lesser General Public License as published by
lib/plankton/shape/logic-impl.js 1601) the Free Software Foundation, either version 3 of the License, or
lib/plankton/shape/logic-impl.js 1602) (at your option) any later version.
lib/plankton/shape/logic-impl.js 1603)
lib/plankton/shape/logic-impl.js 1604) »bacterio-plankton:shape« is distributed in the hope that it will be useful,
lib/plankton/shape/logic-impl.js 1605) but WITHOUT ANY WARRANTY; without even the implied warranty of
lib/plankton/shape/logic-impl.js 1606) MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
lib/plankton/shape/logic-impl.js 1607) GNU Lesser General Public License for more details.
lib/plankton/shape/logic-impl.js 1608)
lib/plankton/shape/logic-impl.js 1609) You should have received a copy of the GNU Lesser General Public License
lib/plankton/shape/logic-impl.js 1610) along with »bacterio-plankton:shape«. If not, see <http://www.gnu.org/licenses/>.
lib/plankton/shape/logic-impl.js 1611) */
lib/plankton/shape/logic-impl.js 1612) var lib_shape;
lib/plankton/shape/logic-impl.js 1613) (function (lib_shape) {
lib/plankton/shape/logic-impl.js 1614) /**
lib/plankton/shape/logic-impl.js 1615) * @author fenris
lib/plankton/shape/logic-impl.js 1616) */
lib/plankton/shape/logic-impl.js 1617) function date_make({ "soft": soft = false, "mutable": mutable = true, "defaultvalue": defaultvalue = undefined, }) {
lib/plankton/shape/logic-impl.js 1618) if (defaultvalue === undefined) {
lib/plankton/shape/logic-impl.js 1619) defaultvalue = (soft ? null : (new Date(Date.now())));
lib/plankton/shape/logic-impl.js 1620) }
lib/plankton/shape/logic-impl.js 1621) return {
lib/plankton/shape/logic-impl.js 1622) "soft": soft,
lib/plankton/shape/logic-impl.js 1623) "mutable": mutable,
lib/plankton/shape/logic-impl.js 1624) "defaultvalue": defaultvalue,
lib/plankton/shape/logic-impl.js 1625) };
lib/plankton/shape/logic-impl.js 1626) }
lib/plankton/shape/logic-impl.js 1627) /**
lib/plankton/shape/logic-impl.js 1628) * @author fenris
lib/plankton/shape/logic-impl.js 1629) */
lib/plankton/shape/logic-impl.js 1630) function date_inspect(parameters, value, _inspect) {
lib/plankton/shape/logic-impl.js 1631) let inspection = lib_shape.inspection_create();
lib/plankton/shape/logic-impl.js 1632) if (value == undefined) {
lib/plankton/shape/logic-impl.js 1633) if (parameters.soft) {
lib/plankton/shape/logic-impl.js 1634) // all good
lib/plankton/shape/logic-impl.js 1635) }
lib/plankton/shape/logic-impl.js 1636) else {
lib/plankton/shape/logic-impl.js 1637) lib_shape.inspection_add(inspection, "null is not allowed");
lib/plankton/shape/logic-impl.js 1638) }
lib/plankton/shape/logic-impl.js 1639) }
lib/plankton/shape/logic-impl.js 1640) else {
lib/plankton/shape/logic-impl.js 1641) let jstype_actual = typeof (value);
lib/plankton/shape/logic-impl.js 1642) let jstype_expected = "object";
lib/plankton/shape/logic-impl.js 1643) if (jstype_actual === jstype_expected) {
lib/plankton/shape/logic-impl.js 1644) if (value instanceof Date) {
lib/plankton/shape/logic-impl.js 1645) // all gode
lib/plankton/shape/logic-impl.js 1646) }
lib/plankton/shape/logic-impl.js 1647) else {
lib/plankton/shape/logic-impl.js 1648) lib_shape.inspection_add(inspection, `value does not seem to be a date-instance`);
lib/plankton/shape/logic-impl.js 1649) }
lib/plankton/shape/logic-impl.js 1650) }
lib/plankton/shape/logic-impl.js 1651) else {
lib/plankton/shape/logic-impl.js 1652) lib_shape.inspection_add(inspection, `expected JS-type '${jstype_expected}' but got '${jstype_actual}'`);
lib/plankton/shape/logic-impl.js 1653) }
lib/plankton/shape/logic-impl.js 1654) }
lib/plankton/shape/logic-impl.js 1655) return inspection;
lib/plankton/shape/logic-impl.js 1656) }
lib/plankton/shape/logic-impl.js 1657) /**
lib/plankton/shape/logic-impl.js 1658) * @author fenris
lib/plankton/shape/logic-impl.js 1659) */
lib/plankton/shape/logic-impl.js 1660) function date_stance(parameters, bindings, _stance) {
lib/plankton/shape/logic-impl.js 1661) return {
lib/plankton/shape/logic-impl.js 1662) "name": "date",
lib/plankton/shape/logic-impl.js 1663) "parameters": parameters
lib/plankton/shape/logic-impl.js 1664) };
lib/plankton/shape/logic-impl.js 1665) }
lib/plankton/shape/logic-impl.js 1666) /**
lib/plankton/shape/logic-impl.js 1667) * @author fenris
lib/plankton/shape/logic-impl.js 1668) */
lib/plankton/shape/logic-impl.js 1669) function date_show(parameters, _show) {
lib/plankton/shape/logic-impl.js 1670) let str;
lib/plankton/shape/logic-impl.js 1671) // core
lib/plankton/shape/logic-impl.js 1672) {
lib/plankton/shape/logic-impl.js 1673) str = "date";
lib/plankton/shape/logic-impl.js 1674) }
lib/plankton/shape/logic-impl.js 1675) // soft
lib/plankton/shape/logic-impl.js 1676) {
lib/plankton/shape/logic-impl.js 1677) if (parameters.soft) {
lib/plankton/shape/logic-impl.js 1678) str = `~${str}`;
lib/plankton/shape/logic-impl.js 1679) }
lib/plankton/shape/logic-impl.js 1680) }
lib/plankton/shape/logic-impl.js 1681) return str;
lib/plankton/shape/logic-impl.js 1682) }
lib/plankton/shape/logic-impl.js 1683) /**
lib/plankton/shape/logic-impl.js 1684) * @author fenris
lib/plankton/shape/logic-impl.js 1685) */
lib/plankton/shape/logic-impl.js 1686) lib_shape.register({
lib/plankton/shape/logic-impl.js 1687) "name": "date",
lib/plankton/shape/logic-impl.js 1688) "make": date_make,
lib/plankton/shape/logic-impl.js 1689) "inspect": date_inspect,
lib/plankton/shape/logic-impl.js 1690) "stance": date_stance,
lib/plankton/shape/logic-impl.js 1691) "show": date_show,
lib/plankton/shape/logic-impl.js 1692) });
lib/plankton/shape/logic-impl.js 1693) })(lib_shape || (lib_shape = {}));
lib/plankton/shape/logic-impl.js 1694) /*
lib/plankton/shape/logic-impl.js 1695) This file is part of »bacterio-plankton:shape«.
lib/plankton/shape/logic-impl.js 1696)
|
[upd] server:lib:plankton
Christian Fraß authored 3 years ago
|
server/lib/plankton/shape/logic-impl.js 1697) Copyright 2016-2021 'Christian Fraß, Christian Neubauer, Martin Springwald GbR'
|
[add] lib:plankton
Christian Fraß authored 3 years ago
|
lib/plankton/shape/logic-impl.js 1698) <info@greenscale.de>
lib/plankton/shape/logic-impl.js 1699)
lib/plankton/shape/logic-impl.js 1700) »bacterio-plankton:shape« is free software: you can redistribute it and/or modify
lib/plankton/shape/logic-impl.js 1701) it under the terms of the GNU Lesser General Public License as published by
lib/plankton/shape/logic-impl.js 1702) the Free Software Foundation, either version 3 of the License, or
lib/plankton/shape/logic-impl.js 1703) (at your option) any later version.
lib/plankton/shape/logic-impl.js 1704)
lib/plankton/shape/logic-impl.js 1705) »bacterio-plankton:shape« is distributed in the hope that it will be useful,
lib/plankton/shape/logic-impl.js 1706) but WITHOUT ANY WARRANTY; without even the implied warranty of
lib/plankton/shape/logic-impl.js 1707) MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
lib/plankton/shape/logic-impl.js 1708) GNU Lesser General Public License for more details.
lib/plankton/shape/logic-impl.js 1709)
lib/plankton/shape/logic-impl.js 1710) You should have received a copy of the GNU Lesser General Public License
lib/plankton/shape/logic-impl.js 1711) along with »bacterio-plankton:shape«. If not, see <http://www.gnu.org/licenses/>.
lib/plankton/shape/logic-impl.js 1712) */
lib/plankton/shape/logic-impl.js 1713) var lib_shape;
lib/plankton/shape/logic-impl.js 1714) (function (lib_shape) {
lib/plankton/shape/logic-impl.js 1715) /**
lib/plankton/shape/logic-impl.js 1716) * @author fenris
lib/plankton/shape/logic-impl.js 1717) */
lib/plankton/shape/logic-impl.js 1718) function record_make({ "soft": soft = false, "mutable": mutable = true, "fields": fields = [], "defaultvalue": defaultvalue = undefined, }, _make) {
lib/plankton/shape/logic-impl.js 1719) let fields_ = (fields
lib/plankton/shape/logic-impl.js 1720) .map((field) => ({ "name": field.name, "shape": _make(field.shape) })));
lib/plankton/shape/logic-impl.js 1721) if (defaultvalue === undefined) {
lib/plankton/shape/logic-impl.js 1722) if (soft) {
lib/plankton/shape/logic-impl.js 1723) defaultvalue = null;
lib/plankton/shape/logic-impl.js 1724) }
lib/plankton/shape/logic-impl.js 1725) else {
lib/plankton/shape/logic-impl.js 1726) defaultvalue = {};
lib/plankton/shape/logic-impl.js 1727) fields_.forEach(field => {
lib/plankton/shape/logic-impl.js 1728) defaultvalue[field.name] = field.shape.parameters["defaultvalue"];
lib/plankton/shape/logic-impl.js 1729) });
lib/plankton/shape/logic-impl.js 1730) }
lib/plankton/shape/logic-impl.js 1731) }
lib/plankton/shape/logic-impl.js 1732) return {
lib/plankton/shape/logic-impl.js 1733) "soft": soft,
lib/plankton/shape/logic-impl.js 1734) "mutable": mutable,
lib/plankton/shape/logic-impl.js 1735) "fields": fields_,
lib/plankton/shape/logic-impl.js 1736) "defaultvalue": defaultvalue,
lib/plankton/shape/logic-impl.js 1737) };
lib/plankton/shape/logic-impl.js 1738) }
lib/plankton/shape/logic-impl.js 1739) /**
lib/plankton/shape/logic-impl.js 1740) * @author fenris
lib/plankton/shape/logic-impl.js 1741) */
lib/plankton/shape/logic-impl.js 1742) function record_inspect(parameters, value, _inspect) {
lib/plankton/shape/logic-impl.js 1743) let inspection = lib_shape.inspection_create();
lib/plankton/shape/logic-impl.js 1744) if (value == undefined) {
lib/plankton/shape/logic-impl.js 1745) if (parameters.soft) {
lib/plankton/shape/logic-impl.js 1746) // all good
lib/plankton/shape/logic-impl.js 1747) }
lib/plankton/shape/logic-impl.js 1748) else {
lib/plankton/shape/logic-impl.js 1749) lib_shape.inspection_add(inspection, "null is not allowed");
lib/plankton/shape/logic-impl.js 1750) }
lib/plankton/shape/logic-impl.js 1751) }
lib/plankton/shape/logic-impl.js 1752) else {
lib/plankton/shape/logic-impl.js 1753) let jstype_actual = typeof (value);
lib/plankton/shape/logic-impl.js 1754) let jstype_expected = "object";
lib/plankton/shape/logic-impl.js 1755) if (jstype_actual === jstype_expected) {
lib/plankton/shape/logic-impl.js 1756) parameters.fields.forEach(field => {
lib/plankton/shape/logic-impl.js 1757) let value_ = value[field.name];
lib/plankton/shape/logic-impl.js 1758) lib_shape.inspection_extend(inspection, `field '${field.name}'`, _inspect(field.shape, value_));
lib/plankton/shape/logic-impl.js 1759) });
lib/plankton/shape/logic-impl.js 1760) }
lib/plankton/shape/logic-impl.js 1761) else {
lib/plankton/shape/logic-impl.js 1762) lib_shape.inspection_add(inspection, `expected JS-type '${jstype_expected}' but got '${jstype_actual}'`);
lib/plankton/shape/logic-impl.js 1763) }
lib/plankton/shape/logic-impl.js 1764) }
lib/plankton/shape/logic-impl.js 1765) return inspection;
lib/plankton/shape/logic-impl.js 1766) }
lib/plankton/shape/logic-impl.js 1767) /**
lib/plankton/shape/logic-impl.js 1768) * @author fenris
lib/plankton/shape/logic-impl.js 1769) */
lib/plankton/shape/logic-impl.js 1770) function record_stance(parameters, bindings, _stance) {
lib/plankton/shape/logic-impl.js 1771) return {
lib/plankton/shape/logic-impl.js 1772) "name": "record",
lib/plankton/shape/logic-impl.js 1773) "parameters": {
lib/plankton/shape/logic-impl.js 1774) "soft": parameters.soft,
lib/plankton/shape/logic-impl.js 1775) "fields": parameters.fields.map(field => {
lib/plankton/shape/logic-impl.js 1776) return {
lib/plankton/shape/logic-impl.js 1777) "name": field.name,
lib/plankton/shape/logic-impl.js 1778) "shape": _stance(field.shape, bindings)
lib/plankton/shape/logic-impl.js 1779) };
lib/plankton/shape/logic-impl.js 1780) })
lib/plankton/shape/logic-impl.js 1781) }
lib/plankton/shape/logic-impl.js 1782) };
lib/plankton/shape/logic-impl.js 1783) }
lib/plankton/shape/logic-impl.js 1784) /**
lib/plankton/shape/logic-impl.js 1785) * @author fenris
lib/plankton/shape/logic-impl.js 1786) */
lib/plankton/shape/logic-impl.js 1787) function record_show(parameters, _show) {
lib/plankton/shape/logic-impl.js 1788) let str;
lib/plankton/shape/logic-impl.js 1789) // core
lib/plankton/shape/logic-impl.js 1790) {
lib/plankton/shape/logic-impl.js 1791) str = "record";
lib/plankton/shape/logic-impl.js 1792) }
lib/plankton/shape/logic-impl.js 1793) // fields
lib/plankton/shape/logic-impl.js 1794) {
lib/plankton/shape/logic-impl.js 1795) str += ("<"
lib/plankton/shape/logic-impl.js 1796) +
lib/plankton/shape/logic-impl.js 1797) parameters.fields.map(field => (field.name + ":" + _show(field.shape))).join(",")
lib/plankton/shape/logic-impl.js 1798) +
lib/plankton/shape/logic-impl.js 1799) ">");
lib/plankton/shape/logic-impl.js 1800) }
lib/plankton/shape/logic-impl.js 1801) // soft
lib/plankton/shape/logic-impl.js 1802) {
lib/plankton/shape/logic-impl.js 1803) if (parameters.soft) {
lib/plankton/shape/logic-impl.js 1804) str = `~${str}`;
lib/plankton/shape/logic-impl.js 1805) }
lib/plankton/shape/logic-impl.js 1806) }
lib/plankton/shape/logic-impl.js 1807) return str;
lib/plankton/shape/logic-impl.js 1808) }
lib/plankton/shape/logic-impl.js 1809) /**
lib/plankton/shape/logic-impl.js 1810) * @author fenris
lib/plankton/shape/logic-impl.js 1811) */
lib/plankton/shape/logic-impl.js 1812) lib_shape.register({
lib/plankton/shape/logic-impl.js 1813) "name": "record",
lib/plankton/shape/logic-impl.js 1814) "make": record_make,
lib/plankton/shape/logic-impl.js 1815) "inspect": record_inspect,
lib/plankton/shape/logic-impl.js 1816) "stance": record_stance,
lib/plankton/shape/logic-impl.js 1817) "show": record_show,
lib/plankton/shape/logic-impl.js 1818) });
lib/plankton/shape/logic-impl.js 1819) })(lib_shape || (lib_shape = {}));
lib/plankton/shape/logic-impl.js 1820) /*
lib/plankton/shape/logic-impl.js 1821) This file is part of »bacterio-plankton:shape«.
lib/plankton/shape/logic-impl.js 1822)
|
[upd] server:lib:plankton
Christian Fraß authored 3 years ago
|
server/lib/plankton/shape/logic-impl.js 1823) Copyright 2016-2021 'Christian Fraß, Christian Neubauer, Martin Springwald GbR'
|
[add] lib:plankton
Christian Fraß authored 3 years ago
|
lib/plankton/shape/logic-impl.js 1824) <info@greenscale.de>
lib/plankton/shape/logic-impl.js 1825)
lib/plankton/shape/logic-impl.js 1826) »bacterio-plankton:shape« is free software: you can redistribute it and/or modify
lib/plankton/shape/logic-impl.js 1827) it under the terms of the GNU Lesser General Public License as published by
lib/plankton/shape/logic-impl.js 1828) the Free Software Foundation, either version 3 of the License, or
lib/plankton/shape/logic-impl.js 1829) (at your option) any later version.
lib/plankton/shape/logic-impl.js 1830)
lib/plankton/shape/logic-impl.js 1831) »bacterio-plankton:shape« is distributed in the hope that it will be useful,
lib/plankton/shape/logic-impl.js 1832) but WITHOUT ANY WARRANTY; without even the implied warranty of
lib/plankton/shape/logic-impl.js 1833) MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
lib/plankton/shape/logic-impl.js 1834) GNU Lesser General Public License for more details.
lib/plankton/shape/logic-impl.js 1835)
lib/plankton/shape/logic-impl.js 1836) You should have received a copy of the GNU Lesser General Public License
lib/plankton/shape/logic-impl.js 1837) along with »bacterio-plankton:shape«. If not, see <http://www.gnu.org/licenses/>.
lib/plankton/shape/logic-impl.js 1838) */
lib/plankton/shape/logic-impl.js 1839) var lib_shape;
lib/plankton/shape/logic-impl.js 1840) (function (lib_shape) {
lib/plankton/shape/logic-impl.js 1841) /**
lib/plankton/shape/logic-impl.js 1842) * @author fenris
lib/plankton/shape/logic-impl.js 1843) */
lib/plankton/shape/logic-impl.js 1844) function map_make({ "soft": soft = false, "mutable": mutable = true, "shape_key": shape_key, "shape_value": shape_value, "defaultvalue": defaultvalue = undefined, }, _make) {
lib/plankton/shape/logic-impl.js 1845) if (shape_key === undefined) {
lib/plankton/shape/logic-impl.js 1846) let message = `mandatory parameter 'shape_key' missing`;
lib/plankton/shape/logic-impl.js 1847) throw (new Error(message));
lib/plankton/shape/logic-impl.js 1848) }
lib/plankton/shape/logic-impl.js 1849) if (shape_value === undefined) {
lib/plankton/shape/logic-impl.js 1850) let message = `mandatory parameter 'shape_value' missing`;
lib/plankton/shape/logic-impl.js 1851) throw (new Error(message));
lib/plankton/shape/logic-impl.js 1852) }
lib/plankton/shape/logic-impl.js 1853) if (defaultvalue === undefined) {
lib/plankton/shape/logic-impl.js 1854) defaultvalue = (soft ? null : {});
lib/plankton/shape/logic-impl.js 1855) }
lib/plankton/shape/logic-impl.js 1856) return {
lib/plankton/shape/logic-impl.js 1857) "soft": soft,
lib/plankton/shape/logic-impl.js 1858) "mutable": mutable,
lib/plankton/shape/logic-impl.js 1859) "shape_key": _make(shape_key),
lib/plankton/shape/logic-impl.js 1860) "shape_value": _make(shape_value),
lib/plankton/shape/logic-impl.js 1861) "defaultvalue": defaultvalue,
lib/plankton/shape/logic-impl.js 1862) };
lib/plankton/shape/logic-impl.js 1863) }
lib/plankton/shape/logic-impl.js 1864) /**
lib/plankton/shape/logic-impl.js 1865) * @author fenris
lib/plankton/shape/logic-impl.js 1866) */
lib/plankton/shape/logic-impl.js 1867) function map_stance(parameters, bindings, _stance) {
lib/plankton/shape/logic-impl.js 1868) return {
lib/plankton/shape/logic-impl.js 1869) "name": "map",
lib/plankton/shape/logic-impl.js 1870) "parameters": {
lib/plankton/shape/logic-impl.js 1871) "soft": parameters.soft,
lib/plankton/shape/logic-impl.js 1872) "shape_key": _stance(parameters.shape_key, bindings),
lib/plankton/shape/logic-impl.js 1873) "shape_value": _stance(parameters.shape_value, bindings)
lib/plankton/shape/logic-impl.js 1874) }
lib/plankton/shape/logic-impl.js 1875) };
lib/plankton/shape/logic-impl.js 1876) }
lib/plankton/shape/logic-impl.js 1877) /**
lib/plankton/shape/logic-impl.js 1878) * @author fenris
lib/plankton/shape/logic-impl.js 1879) * @todo closer look not possible?
lib/plankton/shape/logic-impl.js 1880) */
lib/plankton/shape/logic-impl.js 1881) function map_inspect(parameters, value, _inspect) {
lib/plankton/shape/logic-impl.js 1882) let inspection = lib_shape.inspection_create();
lib/plankton/shape/logic-impl.js 1883) if (value == undefined) {
lib/plankton/shape/logic-impl.js 1884) if (parameters.soft) {
lib/plankton/shape/logic-impl.js 1885) // all good
lib/plankton/shape/logic-impl.js 1886) }
lib/plankton/shape/logic-impl.js 1887) else {
lib/plankton/shape/logic-impl.js 1888) lib_shape.inspection_add(inspection, "null is not allowed");
lib/plankton/shape/logic-impl.js 1889) }
lib/plankton/shape/logic-impl.js 1890) }
lib/plankton/shape/logic-impl.js 1891) else {
lib/plankton/shape/logic-impl.js 1892) let jstype_actual = typeof (value);
lib/plankton/shape/logic-impl.js 1893) let jstype_expected = "object";
lib/plankton/shape/logic-impl.js 1894) if (jstype_actual === jstype_expected) {
lib/plankton/shape/logic-impl.js 1895) Object.keys(value).forEach(key => {
lib/plankton/shape/logic-impl.js 1896) lib_shape.inspection_extend(inspection, `key '${key}'`, _inspect(parameters.shape_key, key));
lib/plankton/shape/logic-impl.js 1897) let value_ = value[key];
lib/plankton/shape/logic-impl.js 1898) lib_shape.inspection_extend(inspection, `value for key '${key}'`, _inspect(parameters.shape_value, value_));
lib/plankton/shape/logic-impl.js 1899) });
lib/plankton/shape/logic-impl.js 1900) }
lib/plankton/shape/logic-impl.js 1901) else {
lib/plankton/shape/logic-impl.js 1902) lib_shape.inspection_add(inspection, `expected JS-type '${jstype_expected}' but got '${jstype_actual}'`);
lib/plankton/shape/logic-impl.js 1903) }
lib/plankton/shape/logic-impl.js 1904) }
lib/plankton/shape/logic-impl.js 1905) return inspection;
lib/plankton/shape/logic-impl.js 1906) }
lib/plankton/shape/logic-impl.js 1907) /**
lib/plankton/shape/logic-impl.js 1908) * @author fenris
lib/plankton/shape/logic-impl.js 1909) */
lib/plankton/shape/logic-impl.js 1910) function map_show(parameters, _show) {
lib/plankton/shape/logic-impl.js 1911) let str;
lib/plankton/shape/logic-impl.js 1912) // core
lib/plankton/shape/logic-impl.js 1913) {
lib/plankton/shape/logic-impl.js 1914) str = "map";
lib/plankton/shape/logic-impl.js 1915) }
lib/plankton/shape/logic-impl.js 1916) // in/out
lib/plankton/shape/logic-impl.js 1917) {
lib/plankton/shape/logic-impl.js 1918) str += ("<"
lib/plankton/shape/logic-impl.js 1919) +
lib/plankton/shape/logic-impl.js 1920) [
lib/plankton/shape/logic-impl.js 1921) _show(parameters.shape_key),
lib/plankton/shape/logic-impl.js 1922) _show(parameters.shape_value),
lib/plankton/shape/logic-impl.js 1923) ].join(",")
lib/plankton/shape/logic-impl.js 1924) +
lib/plankton/shape/logic-impl.js 1925) ">");
lib/plankton/shape/logic-impl.js 1926) }
lib/plankton/shape/logic-impl.js 1927) // soft
lib/plankton/shape/logic-impl.js 1928) {
lib/plankton/shape/logic-impl.js 1929) if (parameters.soft) {
lib/plankton/shape/logic-impl.js 1930) str = `~${str}`;
lib/plankton/shape/logic-impl.js 1931) }
lib/plankton/shape/logic-impl.js 1932) }
lib/plankton/shape/logic-impl.js 1933) return str;
lib/plankton/shape/logic-impl.js 1934) }
lib/plankton/shape/logic-impl.js 1935) /**
lib/plankton/shape/logic-impl.js 1936) * @author fenris
lib/plankton/shape/logic-impl.js 1937) */
lib/plankton/shape/logic-impl.js 1938) lib_shape.register({
lib/plankton/shape/logic-impl.js 1939) "name": "map",
lib/plankton/shape/logic-impl.js 1940) "make": map_make,
lib/plankton/shape/logic-impl.js 1941) "inspect": map_inspect,
lib/plankton/shape/logic-impl.js 1942) "stance": map_stance,
lib/plankton/shape/logic-impl.js 1943) "show": map_show,
lib/plankton/shape/logic-impl.js 1944) });
lib/plankton/shape/logic-impl.js 1945) })(lib_shape || (lib_shape = {}));
lib/plankton/shape/logic-impl.js 1946) /*
lib/plankton/shape/logic-impl.js 1947) This file is part of »bacterio-plankton:shape«.
lib/plankton/shape/logic-impl.js 1948)
|
[upd] server:lib:plankton
Christian Fraß authored 3 years ago
|
server/lib/plankton/shape/logic-impl.js 1949) Copyright 2016-2021 'Christian Fraß, Christian Neubauer, Martin Springwald GbR'
|
[add] lib:plankton
Christian Fraß authored 3 years ago
|
lib/plankton/shape/logic-impl.js 1950) <info@greenscale.de>
lib/plankton/shape/logic-impl.js 1951)
lib/plankton/shape/logic-impl.js 1952) »bacterio-plankton:shape« is free software: you can redistribute it and/or modify
lib/plankton/shape/logic-impl.js 1953) it under the terms of the GNU Lesser General Public License as published by
lib/plankton/shape/logic-impl.js 1954) the Free Software Foundation, either version 3 of the License, or
lib/plankton/shape/logic-impl.js 1955) (at your option) any later version.
lib/plankton/shape/logic-impl.js 1956)
lib/plankton/shape/logic-impl.js 1957) »bacterio-plankton:shape« is distributed in the hope that it will be useful,
lib/plankton/shape/logic-impl.js 1958) but WITHOUT ANY WARRANTY; without even the implied warranty of
lib/plankton/shape/logic-impl.js 1959) MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
lib/plankton/shape/logic-impl.js 1960) GNU Lesser General Public License for more details.
lib/plankton/shape/logic-impl.js 1961)
lib/plankton/shape/logic-impl.js 1962) You should have received a copy of the GNU Lesser General Public License
lib/plankton/shape/logic-impl.js 1963) along with »bacterio-plankton:shape«. If not, see <http://www.gnu.org/licenses/>.
lib/plankton/shape/logic-impl.js 1964) */
lib/plankton/shape/logic-impl.js 1965) var lib_shape;
lib/plankton/shape/logic-impl.js 1966) (function (lib_shape) {
lib/plankton/shape/logic-impl.js 1967) /**
lib/plankton/shape/logic-impl.js 1968) * @author fenris
lib/plankton/shape/logic-impl.js 1969) */
lib/plankton/shape/logic-impl.js 1970) function maybe_make({ "soft": soft = false, "shape_value": shape_value, "defaultvalue": defaultvalue = undefined, }, _make) {
lib/plankton/shape/logic-impl.js 1971) if (shape_value === undefined) {
lib/plankton/shape/logic-impl.js 1972) let message = `mandatory parameter 'shape_value' missing`;
lib/plankton/shape/logic-impl.js 1973) throw (new Error(message));
lib/plankton/shape/logic-impl.js 1974) }
lib/plankton/shape/logic-impl.js 1975) if (defaultvalue === undefined) {
lib/plankton/shape/logic-impl.js 1976) defaultvalue = (soft ? null : { "kind": "nothing" });
lib/plankton/shape/logic-impl.js 1977) }
lib/plankton/shape/logic-impl.js 1978) return {
lib/plankton/shape/logic-impl.js 1979) "soft": soft,
lib/plankton/shape/logic-impl.js 1980) "shape_value": _make(shape_value),
lib/plankton/shape/logic-impl.js 1981) "defaultvalue": defaultvalue,
lib/plankton/shape/logic-impl.js 1982) };
lib/plankton/shape/logic-impl.js 1983) }
lib/plankton/shape/logic-impl.js 1984) /**
lib/plankton/shape/logic-impl.js 1985) * @author fenris
lib/plankton/shape/logic-impl.js 1986) */
lib/plankton/shape/logic-impl.js 1987) function maybe_inspect(parameters, value, _inspect) {
lib/plankton/shape/logic-impl.js 1988) let inspection = lib_shape.inspection_create();
lib/plankton/shape/logic-impl.js 1989) if (value == undefined) {
lib/plankton/shape/logic-impl.js 1990) if (parameters.soft) {
lib/plankton/shape/logic-impl.js 1991) // all good
lib/plankton/shape/logic-impl.js 1992) }
lib/plankton/shape/logic-impl.js 1993) else {
lib/plankton/shape/logic-impl.js 1994) lib_shape.inspection_add(inspection, "null is not allowed");
lib/plankton/shape/logic-impl.js 1995) }
lib/plankton/shape/logic-impl.js 1996) }
lib/plankton/shape/logic-impl.js 1997) else {
lib/plankton/shape/logic-impl.js 1998) let jstype_actual = typeof (value);
lib/plankton/shape/logic-impl.js 1999) let jstype_expected = "object";
lib/plankton/shape/logic-impl.js 2000) if (jstype_actual === jstype_expected) {
lib/plankton/shape/logic-impl.js 2001) if ("kind" in value) {
lib/plankton/shape/logic-impl.js 2002) // all good?
lib/plankton/shape/logic-impl.js 2003) }
lib/plankton/shape/logic-impl.js 2004) else {
lib/plankton/shape/logic-impl.js 2005) lib_shape.inspection_add(inspection, `field 'kind' missing`);
lib/plankton/shape/logic-impl.js 2006) }
lib/plankton/shape/logic-impl.js 2007) }
lib/plankton/shape/logic-impl.js 2008) else {
lib/plankton/shape/logic-impl.js 2009) lib_shape.inspection_add(inspection, `expected JS-type '${jstype_expected}' but got '${jstype_actual}'`);
lib/plankton/shape/logic-impl.js 2010) }
lib/plankton/shape/logic-impl.js 2011) }
lib/plankton/shape/logic-impl.js 2012) return inspection;
lib/plankton/shape/logic-impl.js 2013) }
lib/plankton/shape/logic-impl.js 2014) /**
lib/plankton/shape/logic-impl.js 2015) * @author fenris
lib/plankton/shape/logic-impl.js 2016) */
lib/plankton/shape/logic-impl.js 2017) function maybe_stance(parameters, bindings, _stance) {
lib/plankton/shape/logic-impl.js 2018) return {
lib/plankton/shape/logic-impl.js 2019) "name": "maybe",
lib/plankton/shape/logic-impl.js 2020) "parameters": {
lib/plankton/shape/logic-impl.js 2021) "soft": parameters.soft,
lib/plankton/shape/logic-impl.js 2022) "shape_value": _stance(parameters.shape_value, bindings)
lib/plankton/shape/logic-impl.js 2023) }
lib/plankton/shape/logic-impl.js 2024) };
lib/plankton/shape/logic-impl.js 2025) }
lib/plankton/shape/logic-impl.js 2026) /**
lib/plankton/shape/logic-impl.js 2027) * @author fenris
lib/plankton/shape/logic-impl.js 2028) */
lib/plankton/shape/logic-impl.js 2029) function maybe_show(parameters, _show) {
lib/plankton/shape/logic-impl.js 2030) let str;
lib/plankton/shape/logic-impl.js 2031) // core
lib/plankton/shape/logic-impl.js 2032) {
lib/plankton/shape/logic-impl.js 2033) str = "maybe";
lib/plankton/shape/logic-impl.js 2034) }
lib/plankton/shape/logic-impl.js 2035) // shape_value
lib/plankton/shape/logic-impl.js 2036) {
lib/plankton/shape/logic-impl.js 2037) str += ("<"
lib/plankton/shape/logic-impl.js 2038) +
lib/plankton/shape/logic-impl.js 2039) _show(parameters.shape_value)
lib/plankton/shape/logic-impl.js 2040) +
lib/plankton/shape/logic-impl.js 2041) ">");
lib/plankton/shape/logic-impl.js 2042) }
lib/plankton/shape/logic-impl.js 2043) // soft
lib/plankton/shape/logic-impl.js 2044) {
lib/plankton/shape/logic-impl.js 2045) if (parameters.soft) {
lib/plankton/shape/logic-impl.js 2046) str = `~${str}`;
lib/plankton/shape/logic-impl.js 2047) }
lib/plankton/shape/logic-impl.js 2048) }
lib/plankton/shape/logic-impl.js 2049) return str;
lib/plankton/shape/logic-impl.js 2050) }
lib/plankton/shape/logic-impl.js 2051) /**
lib/plankton/shape/logic-impl.js 2052) * @author fenris
lib/plankton/shape/logic-impl.js 2053) */
lib/plankton/shape/logic-impl.js 2054) lib_shape.register({
lib/plankton/shape/logic-impl.js 2055) "name": "maybe",
lib/plankton/shape/logic-impl.js 2056) "make": maybe_make,
lib/plankton/shape/logic-impl.js 2057) "inspect": maybe_inspect,
lib/plankton/shape/logic-impl.js 2058) "stance": maybe_stance,
lib/plankton/shape/logic-impl.js 2059) "show": maybe_show,
lib/plankton/shape/logic-impl.js 2060) });
lib/plankton/shape/logic-impl.js 2061) })(lib_shape || (lib_shape = {}));
lib/plankton/shape/logic-impl.js 2062) /*
lib/plankton/shape/logic-impl.js 2063) This file is part of »bacterio-plankton:shape«.
lib/plankton/shape/logic-impl.js 2064)
|
[upd] server:lib:plankton
Christian Fraß authored 3 years ago
|
server/lib/plankton/shape/logic-impl.js 2065) Copyright 2016-2021 'Christian Fraß, Christian Neubauer, Martin Springwald GbR'
|
[add] lib:plankton
Christian Fraß authored 3 years ago
|
lib/plankton/shape/logic-impl.js 2066) <info@greenscale.de>
lib/plankton/shape/logic-impl.js 2067)
lib/plankton/shape/logic-impl.js 2068) »bacterio-plankton:shape« is free software: you can redistribute it and/or modify
lib/plankton/shape/logic-impl.js 2069) it under the terms of the GNU Lesser General Public License as published by
lib/plankton/shape/logic-impl.js 2070) the Free Software Foundation, either version 3 of the License, or
lib/plankton/shape/logic-impl.js 2071) (at your option) any later version.
lib/plankton/shape/logic-impl.js 2072)
lib/plankton/shape/logic-impl.js 2073) »bacterio-plankton:shape« is distributed in the hope that it will be useful,
lib/plankton/shape/logic-impl.js 2074) but WITHOUT ANY WARRANTY; without even the implied warranty of
lib/plankton/shape/logic-impl.js 2075) MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
lib/plankton/shape/logic-impl.js 2076) GNU Lesser General Public License for more details.
lib/plankton/shape/logic-impl.js 2077)
lib/plankton/shape/logic-impl.js 2078) You should have received a copy of the GNU Lesser General Public License
lib/plankton/shape/logic-impl.js 2079) along with »bacterio-plankton:shape«. If not, see <http://www.gnu.org/licenses/>.
lib/plankton/shape/logic-impl.js 2080) */
lib/plankton/shape/logic-impl.js 2081) var lib_shape;
lib/plankton/shape/logic-impl.js 2082) (function (lib_shape) {
lib/plankton/shape/logic-impl.js 2083) /**
lib/plankton/shape/logic-impl.js 2084) * @author fenris
lib/plankton/shape/logic-impl.js 2085) */
lib/plankton/shape/logic-impl.js 2086) function promise_make({ "soft": soft = false, "shape_result": shape_result, "shape_reason": shape_reason, "defaultvalue": defaultvalue = undefined, }, _make) {
lib/plankton/shape/logic-impl.js 2087) if (shape_result === undefined) {
lib/plankton/shape/logic-impl.js 2088) let message = `mandatory parameter 'shape_result' missing`;
lib/plankton/shape/logic-impl.js 2089) throw (new Error(message));
lib/plankton/shape/logic-impl.js 2090) }
lib/plankton/shape/logic-impl.js 2091) if (shape_reason === undefined) {
lib/plankton/shape/logic-impl.js 2092) let message = `mandatory parameter 'shape_reason' missing`;
lib/plankton/shape/logic-impl.js 2093) throw (new Error(message));
lib/plankton/shape/logic-impl.js 2094) }
lib/plankton/shape/logic-impl.js 2095) if (defaultvalue === undefined) {
lib/plankton/shape/logic-impl.js 2096) defaultvalue = (soft ? null : Promise.resolve(null));
lib/plankton/shape/logic-impl.js 2097) }
lib/plankton/shape/logic-impl.js 2098) return {
lib/plankton/shape/logic-impl.js 2099) "soft": soft,
lib/plankton/shape/logic-impl.js 2100) "shape_result": _make(shape_result),
lib/plankton/shape/logic-impl.js 2101) "shape_reason": _make(shape_reason),
lib/plankton/shape/logic-impl.js 2102) "defaultvalue": defaultvalue,
lib/plankton/shape/logic-impl.js 2103) };
lib/plankton/shape/logic-impl.js 2104) }
lib/plankton/shape/logic-impl.js 2105) /**
lib/plankton/shape/logic-impl.js 2106) * @author fenris
lib/plankton/shape/logic-impl.js 2107) */
lib/plankton/shape/logic-impl.js 2108) function promise_stance(parameters, bindings, _stance) {
lib/plankton/shape/logic-impl.js 2109) return {
lib/plankton/shape/logic-impl.js 2110) "name": "promise",
lib/plankton/shape/logic-impl.js 2111) "parameters": {
lib/plankton/shape/logic-impl.js 2112) "soft": parameters.soft,
lib/plankton/shape/logic-impl.js 2113) "shape_result": _stance(parameters.shape_result, bindings),
lib/plankton/shape/logic-impl.js 2114) "shape_reason": _stance(parameters.shape_reason, bindings)
lib/plankton/shape/logic-impl.js 2115) }
lib/plankton/shape/logic-impl.js 2116) };
lib/plankton/shape/logic-impl.js 2117) }
lib/plankton/shape/logic-impl.js 2118) /**
lib/plankton/shape/logic-impl.js 2119) * @author fenris
lib/plankton/shape/logic-impl.js 2120) * @todo closer look not possible?
lib/plankton/shape/logic-impl.js 2121) */
lib/plankton/shape/logic-impl.js 2122) function promise_inspect(parameters, value, _inspect) {
lib/plankton/shape/logic-impl.js 2123) let inspection = lib_shape.inspection_create();
lib/plankton/shape/logic-impl.js 2124) if (value == undefined) {
lib/plankton/shape/logic-impl.js 2125) if (parameters.soft) {
lib/plankton/shape/logic-impl.js 2126) // all good
lib/plankton/shape/logic-impl.js 2127) }
lib/plankton/shape/logic-impl.js 2128) else {
lib/plankton/shape/logic-impl.js 2129) lib_shape.inspection_add(inspection, "null is not allowed");
lib/plankton/shape/logic-impl.js 2130) }
lib/plankton/shape/logic-impl.js 2131) }
lib/plankton/shape/logic-impl.js 2132) else {
lib/plankton/shape/logic-impl.js 2133) let jstype_actual = typeof (value);
lib/plankton/shape/logic-impl.js 2134) let jstype_expected = "object";
lib/plankton/shape/logic-impl.js 2135) if (jstype_actual === jstype_expected) {
lib/plankton/shape/logic-impl.js 2136) if (value instanceof Promise /*<any, any>*/) {
lib/plankton/shape/logic-impl.js 2137) // all good?
lib/plankton/shape/logic-impl.js 2138) }
lib/plankton/shape/logic-impl.js 2139) else {
lib/plankton/shape/logic-impl.js 2140) lib_shape.inspection_add(inspection, `values is not an Promise-instance`);
lib/plankton/shape/logic-impl.js 2141) }
lib/plankton/shape/logic-impl.js 2142) }
lib/plankton/shape/logic-impl.js 2143) else {
lib/plankton/shape/logic-impl.js 2144) lib_shape.inspection_add(inspection, `expected JS-type '${jstype_expected}' but got '${jstype_actual}'`);
lib/plankton/shape/logic-impl.js 2145) }
lib/plankton/shape/logic-impl.js 2146) }
lib/plankton/shape/logic-impl.js 2147) return inspection;
lib/plankton/shape/logic-impl.js 2148) }
lib/plankton/shape/logic-impl.js 2149) /**
lib/plankton/shape/logic-impl.js 2150) * @author fenris
lib/plankton/shape/logic-impl.js 2151) */
lib/plankton/shape/logic-impl.js 2152) function promise_show(parameters, _show) {
lib/plankton/shape/logic-impl.js 2153) let str;
lib/plankton/shape/logic-impl.js 2154) // core
lib/plankton/shape/logic-impl.js 2155) {
lib/plankton/shape/logic-impl.js 2156) str = "promise";
lib/plankton/shape/logic-impl.js 2157) }
lib/plankton/shape/logic-impl.js 2158) // in/out
lib/plankton/shape/logic-impl.js 2159) {
lib/plankton/shape/logic-impl.js 2160) str += ("<"
lib/plankton/shape/logic-impl.js 2161) +
lib/plankton/shape/logic-impl.js 2162) [
lib/plankton/shape/logic-impl.js 2163) _show(parameters.shape_result),
lib/plankton/shape/logic-impl.js 2164) _show(parameters.shape_reason),
lib/plankton/shape/logic-impl.js 2165) ].join(",")
lib/plankton/shape/logic-impl.js 2166) +
lib/plankton/shape/logic-impl.js 2167) ">");
lib/plankton/shape/logic-impl.js 2168) }
lib/plankton/shape/logic-impl.js 2169) // soft
lib/plankton/shape/logic-impl.js 2170) {
lib/plankton/shape/logic-impl.js 2171) if (parameters.soft) {
lib/plankton/shape/logic-impl.js 2172) str = `~${str}`;
lib/plankton/shape/logic-impl.js 2173) }
lib/plankton/shape/logic-impl.js 2174) }
lib/plankton/shape/logic-impl.js 2175) return str;
lib/plankton/shape/logic-impl.js 2176) }
lib/plankton/shape/logic-impl.js 2177) /**
lib/plankton/shape/logic-impl.js 2178) * @author fenris
lib/plankton/shape/logic-impl.js 2179) */
lib/plankton/shape/logic-impl.js 2180) lib_shape.register({
lib/plankton/shape/logic-impl.js 2181) "name": "promise",
lib/plankton/shape/logic-impl.js 2182) "make": promise_make,
lib/plankton/shape/logic-impl.js 2183) "inspect": promise_inspect,
lib/plankton/shape/logic-impl.js 2184) "stance": promise_stance,
lib/plankton/shape/logic-impl.js 2185) "show": promise_show,
lib/plankton/shape/logic-impl.js 2186) });
lib/plankton/shape/logic-impl.js 2187) })(lib_shape || (lib_shape = {}));
lib/plankton/shape/logic-impl.js 2188) /*
lib/plankton/shape/logic-impl.js 2189) This file is part of »bacterio-plankton:shape«.
lib/plankton/shape/logic-impl.js 2190)
|
[upd] server:lib:plankton
Christian Fraß authored 3 years ago
|
server/lib/plankton/shape/logic-impl.js 2191) Copyright 2016-2021 'Christian Fraß, Christian Neubauer, Martin Springwald GbR'
|