Security News
MITRE Marks Major Milestone, Minting 400 CNAs as NVD Backlog Grows
MITRE has just minted its 400th CNA, as the NVD struggles to tame its backlog of CVEs awaiting analysis, which has increased by 30% since June.
@lion/validate
Advanced tools
Readme
🛠 Status: Pilot Phase
Lion Web Components are still in an early alpha stage; they should not be considered production ready yet.
The goal of our pilot phase is to gather feedback from a private group of users. Therefore, during this phase, we kindly ask you to:
- not publicly promote or link us yet: (no tweets, blog posts or other forms of communication about Lion Web Components)
- not publicly promote or link products derived from/based on Lion Web Components
As soon as Pilot Phase ends we will let you know (feel free to subscribe to this issue https://github.com/ing-bank/lion/issues/1)
Validation is applied by default to all form controls via the ValidateMixin.
For a detailed description of the validation system and the ValidateMixin
, please see ValidationSystem.
npm i --save @lion/validate
import '@lion/input/lion-input.js';
import { %ValidatorName% } from '@lion/validate';
Note that we import an lion-input here as an example of a form control implementing ValidateMixin. We could equally well use lion-textarea, lion-select, lion-fieldset etc. to illustrate our example.
All validators are provided as pure functions. They should be applied to the formcontrol (implementing
ValidateMixin
) as follows:
import '@lion/input/lion-input.js';
import { Required, IsString, MaxLength, DefaultSuccess, Validator } from '@lion/validate';
const isInitialsRegex = /^([A-Z]\.)+$/;
class IsInitialsExample extends Validator {
constructor(...args) {
super(...args);
this.name = 'IsExampleInitials';
}
execute(value) {
let hasError = false;
if (!IsString || !isInitialsRegex.test(value.toLowerCase())) {
hasError = true;
}
return hasError;
}
static getMessage({ fieldName }) {
return `Please enter a valid {fieldName} in the format "A.B.C.".`;
}
}
<lion-input
label="Initials"
name="initials"
.validators="${[new Required(), new MaxLength(10), new IsInitialsExample(null, { type: 'warning' }), new DefaultSuccess()]}"
></lion-input>
In the example above we use different types of validators.
A validator applied to .validators
expects an array with a function, a parameters object and
optionally an additional configuration object.
MinMaxLength({ min: 5, max: 10 });
The custom IsInitialsExample
checks if the value is fitting our regex, but does not prevent the user from submitting other values.
Retrieving validity states is as easy as checking for:
myInitialsInput.hasFeedbackFor.include('error');
FAQs
Validate your form elements
The npm package @lion/validate receives a total of 4 weekly downloads. As such, @lion/validate popularity was classified as not popular.
We found that @lion/validate demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
MITRE has just minted its 400th CNA, as the NVD struggles to tame its backlog of CVEs awaiting analysis, which has increased by 30% since June.
Security News
New report from the White House aims to address gaps in open source security, calling for more funding, tighter supply chain controls, and stronger collaboration.
Security News
Explore the security risks of using npm shrinkwrap, the potential for outdated dependencies, and best practices for mitigating these concerns in your projects.