Security News
PyPI Introduces Digital Attestations to Strengthen Python Package Security
PyPI now supports digital attestations, enhancing security and trust by allowing package maintainers to verify the authenticity of Python packages.
svelte-formula
Advanced tools
Formula is a zero-configuration reactive form library for Svelte, currently in early development.
This library uses HTML form attributes to do validation, and works with the localised message from the browser.
npm i svelte-formula
To use Formula, create the directive and store values by calling the formula()
method in the library, this returns
the form
action and the available stores.
While the library is zero-configuration it does support options which can be passed as an object to the formula
constructor method.
Options | Type | Description |
---|---|---|
local | string | Optional locale for id sorting when using multiple values |
The form
action can be used with any element and not just <form>
elements - it checks for all child form elements
that have a name
attribute and return some kind of validity. If used with a form element it will provide values on
submit, as well as the current value of the form.
<script>
import { onDestroy } from 'svelte'
import { formula } from 'svelte-formula'
const { form, formValues, submitValues, validity, touched, formValid } = formula();
const valueSub = formValues.subscribe(values => console.log(values));
const submitSub = submitValues.subscribe(values => console.log(values));
function handleSubmit(e) {
e.preventDefault();
}
onDestroy(() => {
valueSub();
submitSub();
})
</script>
<form use:form on:submit={handleSubmit}>
<div class='form-field'>
<label for='username'>Username</label>
<input type='text' id='username' name='username' required />
<span hidden={$validity?.username?.valid}>{ validity?.username?.message }</span>
</div>
<div class='form-field'>
<label for='password'>Password</label>
<input type='password' id='password' name='password' required minlength='8' />
<span hidden={$validity?.password?.valid}>{ validity?.password?.message }</span>
</div>
<button disabled={!$formValid}>Save</button>
</form>
The formValues
store can be subscribed to and will emit every time the user types into, or blurs off from a field. The
value is a Object
that contains a key/value map of all form fields with the key being the name
property of the
element
Similar to the formValues
object, the subscription only emits when a form submit event occurs, and only emits when
using a <form>
element
A store that contains a key/value Object
where again the key is the name
property. The value is another object with
the following properties
valid
- Boolean
- If the field is validinvalid
- Boolean
- if the field is invalidmessage
- String
- The message returned from the HTML validityerrors
- Object
- A map of errors that are true returned by
the Constraint Validation
API.A store that is a single Boolean
value if the form is currently valid or not - this only emits when the form validity
changes
A store that updates when fields are marked as touched - contains an Object
with key/value of name
and Boolean
,
fields are added to the store as they receive a focus
event
A store that updates when fields are marked as dirty - contains an Object
with key/value of name
and Boolean
,
fields where the user triggers a blur
event, and the value has been changed from the original value.
id
attributes, with an array of results sorted by ID alphabeticallyIcon made by Eucalyp from flaticon.com
[0.1.1] 2021-02-15
First config option for formula
- allowing the locale for sorting to be overridden if you don't want to use the
users own locale
Support for multiple input types that are not checkboxes (e.g text
, number
, etc) - when using this each input with
the same name REQUIRES and id
property. Returns an array sorted on the id
property alphabetically in the users'
locale if detected (and always falls back to en
if not), if this needs to be overridden it can be passed to the
formula constructor (e.g formula({ locale: 'de' });
)
FAQs
Reactive Forms for Svelte
The npm package svelte-formula receives a total of 96 weekly downloads. As such, svelte-formula popularity was classified as not popular.
We found that svelte-formula 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
PyPI now supports digital attestations, enhancing security and trust by allowing package maintainers to verify the authenticity of Python packages.
Security News
GitHub removed 27 malicious pull requests attempting to inject harmful code across multiple open source repositories, in another round of low-effort attacks.
Security News
RubyGems.org has added a new "maintainer" role that allows for publishing new versions of gems. This new permission type is aimed at improving security for gem owners and the service overall.