Giter VIP home page Giter VIP logo

Comments (16)

ciscoheat avatar ciscoheat commented on May 23, 2024 2

Added now in 2.2.0!

from sveltekit-superforms.

matfire avatar matfire commented on May 23, 2024 1

Ok, I'll give it a try

from sveltekit-superforms.

ciscoheat avatar ciscoheat commented on May 23, 2024 1

Great, let me know if you have any questions.

from sveltekit-superforms.

ciscoheat avatar ciscoheat commented on May 23, 2024 1

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.

ciscoheat avatar ciscoheat commented on May 23, 2024 1

You need to add 'simple' as an option, since it uses the RequireDefaultsOption. Check how the Arktype test does it.

from sveltekit-superforms.

matfire avatar matfire commented on May 23, 2024 1

Awesome, that fixed a bunch of them :)
Only one test remaining, probably has to do with how I handle validation errors

from sveltekit-superforms.

ciscoheat avatar ciscoheat commented on May 23, 2024 1

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.

ciscoheat avatar ciscoheat commented on May 23, 2024

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.

matfire avatar matfire commented on May 23, 2024

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.

matfire avatar matfire commented on May 23, 2024

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.

ciscoheat avatar ciscoheat commented on May 23, 2024

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.

matfire avatar matfire commented on May 23, 2024

I'd imagine something along the line of:

  • inside the schemaTest function, the different input objects could be duplicated
  • adding a dateAsString optional param to schemaTest (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.

ciscoheat avatar ciscoheat commented on May 23, 2024

Sounds very good!

from sveltekit-superforms.

matfire avatar matfire commented on May 23, 2024

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.

ciscoheat avatar ciscoheat commented on May 23, 2024

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.

matfire avatar matfire commented on May 23, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.