UNPKG

lr-core

Version:
57 lines (42 loc) 1.55 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.LineTypes = undefined; var _LineTypes = require('./LineTypes.js'); Object.defineProperty(exports, 'LineTypes', { enumerable: true, get: function () { return _interopRequireDefault(_LineTypes).default; } }); exports.createLineFromJson = createLineFromJson; var _LineTypes2 = _interopRequireDefault(_LineTypes); var _SolidLine = require('./SolidLine.js'); var _SolidLine2 = _interopRequireDefault(_SolidLine); var _AccLine = require('./AccLine.js'); var _AccLine2 = _interopRequireDefault(_AccLine); var _SceneryLine = require('./SceneryLine.js'); var _SceneryLine2 = _interopRequireDefault(_SceneryLine); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const LEFT_EXTENDED = 1; const RIGHT_EXTENDED = 2; function createLineFromJson(data) { if (data.extended) { data.leftExtended = !!(LEFT_EXTENDED & data.extended); data.rightExtended = !!(RIGHT_EXTENDED & data.extended); } switch (data.type) { case undefined: throw new TypeError(`Line JSON requires type: ${ data.toString() }`); case _LineTypes2.default.SOLID: return new _SolidLine2.default(data); case _LineTypes2.default.ACC: return new _AccLine2.default(data); case _LineTypes2.default.SCENERY: return new _SceneryLine2.default(data); default: console.warn(`Line JSON has unknown type, creating as scenery line: ${ data.toString() }`); // return new Line(data) } }