db-vendo-client/parse/line.js

39 lines
907 B
JavaScript
Raw Normal View History

2017-11-11 22:35:41 +01:00
'use strict'
const slugg = require('slugg')
2017-12-12 03:28:54 +01:00
// todo: are p.number and p.line ever different?
2018-01-05 18:46:19 +01:00
const createParseLine = (profile, operators) => {
const parseLine = (p) => {
if (!p) return null // todo: handle this upstream
const res = {
type: 'line',
id: null,
name: p.line || p.name,
public: true
}
2018-01-23 02:37:08 +01:00
// todo: what is p.prodCtx && p.prodCtx.num?
2017-11-11 22:35:41 +01:00
2018-01-05 18:46:19 +01:00
// This is terrible, but FPTF demands an ID. Let's pray for VBB to expose an ID.
2018-01-23 02:37:08 +01:00
// todo: find a better way
2018-01-05 18:46:19 +01:00
else if (p.line) res.id = slugg(p.line.trim())
else if (p.name) res.id = slugg(p.name.trim())
2018-01-05 18:46:19 +01:00
if (p.cls) res.class = p.cls
if (p.prodCtx && p.prodCtx.catCode !== undefined) {
res.productCode = +p.prodCtx.catCode
}
2018-01-05 18:46:19 +01:00
// todo: parse mode, remove from profiles
2017-11-12 21:23:29 +01:00
2018-01-05 18:46:19 +01:00
if ('number' === typeof p.oprX) {
res.operator = operators[p.oprX] || null
}
return res
}
return parseLine
2017-11-11 22:35:41 +01:00
}
2018-01-05 18:46:19 +01:00
module.exports = createParseLine