Comments (16)
Added now in 2.2.0!
from sveltekit-superforms.
Ok, I'll give it a try
from sveltekit-superforms.
Great, let me know if you have any questions.
from sveltekit-superforms.
I couldn't find if it's possible to introspect the schema to easily generate a JSON Schema, so if that's not possible, you need to use a RequiredDefaultsOption
as in the Arktype adapter: https://github.com/ciscoheat/sveltekit-superforms/blob/main/src/lib/adapters/arktype.ts
from sveltekit-superforms.
You need to add 'simple'
as an option, since it uses the RequireDefaultsOption. Check how the Arktype test does it.
from sveltekit-superforms.
Awesome, that fixed a bunch of them :)
Only one test remaining, probably has to do with how I handle validation errors
from sveltekit-superforms.
You can fix that by adding Vine's valid schema types (for an object, including side-effects) to src\lib\adapters\typeSchema.ts
from sveltekit-superforms.
Hello, nice suggestion! If VineJS is ESM compatible and tree-shakeable (that works well with Rollup), it should be no problem. Check the TypeBox adapter as it has a pre-compile stage that can be useful. Then you need to add a test for the library here.
from sveltekit-superforms.
thanks! I have the basis down and am working on validating the tests (none work for now) xD
https://github.com/matfire/sveltekit-superforms/tree/feature/vine-adapter
from sveltekit-superforms.
Got it! now 1 test passes :). I'll keep working on the others.
looks like I have an issue with the date field, though. Since Vine is made to parse http request bodies, it cannot handle Date objects ? Would it be okay to filter out that section of the test data ?
from sveltekit-superforms.
You mean that Vine won't accept Date
as input? That's a bit unfortunate, since you can also use superValidate
for any input (as in loading data from a DB), not just http requests. But if you can make a distinction in the test suite that the dates are strings in certain cases, I guess it's ok. Please make an attempt. :)
from sveltekit-superforms.
I'd imagine something along the line of:
- inside the schemaTest function, the different input objects could be duplicated
- adding a
dateAsString
optional param toschemaTest
(so as not to break all tests) defaulting to false - if that param is true, modify the different inputs so the date is a simple string
- execute the tests normally
would that be alright ?
from sveltekit-superforms.
Sounds very good!
from sveltekit-superforms.
done! still some tests not passing, but getting close (mostly the default value for "name" not being taken into account and the regex not working the way I wanted it to)
from sveltekit-superforms.
One thing I see is that since the adapter is "simple" (requires default values), you should pass the default values to the createAdapter
function (but not on the client adapter)
return createAdapter({
superFormValidationLibrary: 'vine',
validate: async (data: unknown) => validate(schema, data),
jsonSchema: createJsonSchema(options),
defaults: options.defaults
});
I'll make a guide for adapters when this is done...!
from sveltekit-superforms.
Alright, all tests are valid. Just one more issue and it should ready for a pr.
It's a type issue. Looking at the other validators' examples, I typed my function as follows:
function _vine<T extends SchemaTypes>(
schema: T,
options: RequiredDefaultsOptions<T>
): ValidationAdapter<Record<string, unknown>>
with SchemaTypes coming from vine
.
The error is: Type 'T' does not satisfy the constraint 'Schema'.
from sveltekit-superforms.
Related Issues (20)
- Dynamic Default Values? HOT 16
- Installing Superforms Causes Cloudflare Deployment to Fail HOT 7
- New reset-behaviour HOT 18
- Small typo in docs: reference to z despite switching the validation library to Joi HOT 2
- In SPA mode, navigating to a page that triggers a redirect inside `onUpdate` fails silently HOT 1
- TypeError: Cannot read properties of undefined (reading 'defaults') at Module.superValidate HOT 1
- Reverse In and Out type parameter in superForm return type HOT 1
- FormPathLeaves<FormObj, Date> = never HOT 2
- When I build, I am getting a Circular Dependency warning. HOT 4
- using pick on a valibot schema causes superforms to fail to submit when use:enhance is on. HOT 3
- Allow using superForms without a schema HOT 5
- Zod superRefine not updating $errors HOT 5
- zod() Incompatible with z.ZodType HOT 3
- Version 2.6.2 breaks my SvelteKit app, causing infinite loading on localhost HOT 3
- Custom callback for when submission is completed HOT 5
- Form gets cleared after submit. HOT 3
- Error: Unsupported valibot schema: enum HOT 2
- Support for schema references ($ref) HOT 4
- Target attribute not supported on <form> with use:enhance HOT 2
- Superdebug collapsed too much when without label HOT 7
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from sveltekit-superforms.