UNPKG

metal-soy-critic

Version:
27 lines (26 loc) 927 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const util_1 = require("./util"); const chalk = require("chalk"); function formatMessage(node) { const firstLine = node.items[0].mark.start.line; const lastLine = node.items[node.items.length - 1].mark.start.line; return `Lines ${firstLine} to ${lastLine}`; } function validateSortedParams(soyContext) { const messages = []; soyContext.visit({ MapLiteral(node) { const keys = node.items.map(item => item.key.value); if (!util_1.isSorted(keys)) { messages.push(formatMessage(node)); } } }); if (messages.length) { return util_1.toResult(false, `These ${chalk.yellow('map keys')} should be ${chalk.yellow('sorted')}:\n\n` + util_1.joinErrors(messages)); } return util_1.toResult(true); } exports.default = validateSortedParams;