|
- from generation.isNotKeyword import *
-
- def pipeSource(name, entity, structure):
- props = entity.pipes[name]
- if "vm" in props:
- return "core.vm." + name
- elif "$vm" in props:
- return "core.vm.$" + name
- else:
- # Если это что-то неизвестное заранее, то ищем строку,
- # отличную от известных ключевых слов для инструкции pipe.
- default = "world"
- src = next(filter(isNotKeyword, props), default)
- # Прямое обращение к VM.
- if src.startswith("vm."):
- src = "core." + src
- # Обращение к константе шины.
- elif src.startswith("K."):
- busKey = src
- busValueType = structure.model.fields[name][0]
- src = f"Bus.events.compactMap { Bus.convertKeyValue({busKey}.rawValue, \$0) }.map { (k: String, v: {busValueType}) in v }.eraseToAnyPublisher()"
- # Значение по умолчанию.
- elif src == default:
- return default + "." + name
- return src
|