UNPKG

luhn-generator

Version:

A generator of numbers that passes the validation of Luhn algorithm or Luhn formula, also known as the 'modulus 10' or 'mod 10' algorithm

55 lines (45 loc) 1.43 kB
import standards from '../../standards'; import matchesFn from '../../commons/matches'; /** * Return the spec for an HTML element from the standards object. Since the spec is determined by the node and what attributes it has, a node is required. * @param {VirtualNode} vNode The VirtualNode to get the spec for. * @return {Object} The standard spec object */ function getElementSpec(vNode) { const standard = standards.htmlElms[vNode.props.nodeName]; // invalid element name (could be an svg or custom element name) if (!standard) { return {}; } if (!standard.variant) { return standard; } // start with the information at the top level const { variant, ...spec } = standard; // loop through all variants (excluding default) finding anything // that matches for (const variantName in variant) { if (!variant.hasOwnProperty(variantName) || variantName === 'default') { continue; } const { matches, ...props } = variant[variantName]; if (matchesFn(vNode, matches)) { for (const propName in props) { if (props.hasOwnProperty(propName)) { spec[propName] = props[propName]; } } } } // apply defaults if properties were not found for (const propName in variant.default) { if ( variant.default.hasOwnProperty(propName) && typeof spec[propName] === 'undefined' ) { spec[propName] = variant.default[propName]; } } return spec; } export default getElementSpec;