theprogrammablemind_4wp 8.3.0-beta.5 → 8.3.0-beta.7

Sign up to get free protection for your applications and to get access to all the features.
package/package.json CHANGED
@@ -65,6 +65,6 @@
65
65
  "sort-json": "^2.0.0",
66
66
  "uuid": "^8.3.2"
67
67
  },
68
- "version": "8.3.0-beta.5",
68
+ "version": "8.3.0-beta.7",
69
69
  "license": "UNLICENSED"
70
70
  }
package/src/config.js CHANGED
@@ -387,32 +387,45 @@ const handleBridgeProps = (config, bridge, { addFirst, uuid } = {}) => {
387
387
  config.config.generators.push(addUUID(generator))
388
388
  }
389
389
  }
390
- if (bridge.evaluator) {
391
- const semantic = {
392
- where: bridge.evaluator.where || bridge.where || helpers.where(3),
393
- match: ({ context }) => bridge.id == context.marker && context.evaluate,
394
- apply: (args) => bridge.evaluator(args),
395
- applyWrapped: bridge.evaluator,
396
- property: 'evaluator'
390
+
391
+ const addSemantic = (semantic, evaluate) => {
392
+ const match = semantic.match || (() => true)
393
+ let apply = semantic
394
+ // if I do apply == semantic.apply or semantic there is one function that has apply defined for some reason even though not explicitly set
395
+ if (semantic.apply && typeof semantic !== 'function') {
396
+ apply = semantic.apply
397
+ }
398
+ const semanticDef = {
399
+ where: semantic.where || bridge.where || helpers.where(4),
400
+ match: (args) => bridge.id == args.context.marker && !!args.context.evaluate == evaluate && match(args),
401
+ apply: (args) => apply(args),
402
+ applyWrapped: semantic,
403
+ property: evaluate ? 'evaluator':'semantic',
397
404
  }
398
405
  if (addFirst) {
399
- config.config.semantics.unshift(addUUID(semantic))
406
+ config.config.semantics.unshift(addUUID(semanticDef))
400
407
  } else {
401
- config.config.semantics.push(addUUID(semantic))
408
+ config.config.semantics.push(addUUID(semanticDef))
402
409
  }
403
410
  }
411
+
412
+ if (bridge.evaluator) {
413
+ addSemantic(bridge.evaluator, true)
414
+ }
415
+
404
416
  if (bridge.semantic) {
405
- const semantic = {
406
- where: bridge.semantic.where || bridge.where || helpers.where(3),
407
- match: ({ context }) => bridge.id == context.marker && !context.evaluate,
408
- apply: (args) => bridge.semantic(args),
409
- applyWrapped: bridge.semantic,
410
- property: 'semantic'
417
+ addSemantic(bridge.semantic, false)
418
+ }
419
+
420
+ if (bridge.evaluators) {
421
+ for (const evaluator of bridge.evaluators) {
422
+ addSemantic(evaluator, true)
411
423
  }
412
- if (addFirst) {
413
- config.config.semantics.unshift(addUUID(semantic))
414
- } else {
415
- config.config.semantics.push(addUUID(semantic))
424
+ }
425
+
426
+ if (bridge.semantics) {
427
+ for (const semantic of bridge.semantics) {
428
+ addSemantic(semantic, false)
416
429
  }
417
430
  }
418
431
  }
@@ -423,8 +436,8 @@ const handleCalculatedProps = (baseConfig, moreConfig, { addFirst, uuid } = {})
423
436
  if (moreConfig.bridges) {
424
437
  moreConfig.bridges = moreConfig.bridges.map((bridge) => {
425
438
  bridge = { ...bridge }
426
- const valid = ['after', 'before', 'bridge', 'development', 'evaluator', 'generatorp', 'generatorr', 'generatorpr', 'generators', 'operator', 'id', 'convolution', 'inverted', 'isA', 'children', 'parents',
427
- 'level', 'optional', 'selector', 'semantic', 'words', /Bridge$/, 'localHierarchy', 'levelSpecificHierarchy', 'where', 'uuid']
439
+ const valid = ['after', 'before', 'bridge', 'development', 'evaluator', 'evaluators', 'generatorp', 'generatorr', 'generatorpr', 'generators', 'operator', 'id', 'convolution', 'inverted', 'isA', 'children', 'parents',
440
+ 'level', 'optional', 'selector', 'semantic', 'semantics', 'words', /Bridge$/, 'localHierarchy', 'levelSpecificHierarchy', 'where', 'uuid']
428
441
  helpers.validProps(valid, bridge, 'bridge')
429
442
  handleBridgeProps(baseConfig, bridge, { addFirst, uuid })
430
443
  return bridge
@@ -1149,13 +1162,16 @@ class Config {
1149
1162
  delete bridge.generatorr
1150
1163
  delete bridge.generatorpr
1151
1164
  delete bridge.evaluator
1165
+ delete bridge.evaluators
1152
1166
  delete bridge.semantic
1167
+ delete bridge.semantics
1153
1168
  if (!bridge.bridge) {
1154
1169
  bridge.bridge = "{ ...next(operator) }"
1155
1170
  }
1156
1171
  return bridge
1157
1172
  })
1158
1173
  } else {
1174
+ /* done in updateQueries now
1159
1175
  config.generators = (config.generators || []).map((generator) => {
1160
1176
  generator = { ...generator }
1161
1177
  delete generator.where
@@ -1190,6 +1206,7 @@ class Config {
1190
1206
  }
1191
1207
  return bridge
1192
1208
  })
1209
+ */
1193
1210
  }
1194
1211
  return config
1195
1212
  }
@@ -321,7 +321,6 @@ const processContextsB = async ({ config, hierarchy, semantics, generators, json
321
321
  const mostCalled = semantics.getMostCalled()
322
322
  e.message += `\nThe most called semantic was:\nnotes: ${mostCalled.notes}\nmatch: ${mostCalled.matcher.toString()}\napply: ${mostCalled._apply.toString()}\n`
323
323
  }
324
- // contextPrime = semantics.apply(args, { marker: 'error', context, error: e })
325
324
  if (isInstance) {
326
325
  console.log('error', e.error)
327
326
  }
package/src/helpers.js CHANGED
@@ -312,24 +312,18 @@ const updateQueries = (queryOrConfig) => {
312
312
 
313
313
  const functionsToStrings = (config) => {
314
314
  config = { ...config }
315
- const mapGenerator = (generator) => {
316
- if (generator.apply) {
317
- return { ...generator, match: generator.match.toString(), apply: generator.apply.toString() }
315
+ defToStrings = (def) => {
316
+ if (def.apply) {
317
+ return { ...def, match: def.match.toString(), apply: def.apply.toString() }
318
318
  } else {
319
- return [generator[0].toString(), generator[1].toString()]
319
+ return [def[0].toString(), def[1].toString()]
320
320
  }
321
321
  }
322
322
  if (config.generators) {
323
- config.generators = config.generators.map(mapGenerator)
323
+ config.generators = config.generators.map(defToStrings)
324
324
  }
325
325
  if (config.semantics) {
326
- config.semantics = config.semantics.map((semantic) => {
327
- if (semantic.apply) {
328
- return { ...semantic, match: semantic.match.toString(), apply: semantic.apply.toString() }
329
- } else {
330
- return [semantic[0].toString(), semantic[1].toString()]
331
- }
332
- })
326
+ config.semantics = config.semantics.map(defToStrings)
333
327
  }
334
328
  if (config.bridges) {
335
329
  config.bridges = config.bridges.map((bridge) => {
@@ -338,7 +332,7 @@ const functionsToStrings = (config) => {
338
332
  bridge.generator = bridge.generator.toString()
339
333
  }
340
334
  if (bridge.generators) {
341
- bridge.generators = bridge.generators.map(mapGenerator)
335
+ bridge.generators = bridge.generators.map(defToStrings)
342
336
  }
343
337
  if (bridge.generatorp) {
344
338
  bridge.generatorp = bridge.generatorp.toString()
@@ -349,9 +343,15 @@ const functionsToStrings = (config) => {
349
343
  if (bridge.semantic) {
350
344
  bridge.semantic = bridge.semantic.toString()
351
345
  }
346
+ if (bridge.semantics) {
347
+ bridge.semantics = bridge.semantics.toString()
348
+ }
352
349
  if (bridge.evaluator) {
353
350
  bridge.evaluator = bridge.evaluator.toString()
354
351
  }
352
+ if (bridge.evaluators) {
353
+ bridge.evaluators = bridge.evaluators.toString()
354
+ }
355
355
  return bridge
356
356
  })
357
357
  }