Giter Site home page Giter Site logo

dsheiko / bycontract Goto Github PK

View Code? Open in Web Editor NEW
30.0 30.0 6.0 1.54 MB

Argument validation library based on JSDOC syntax

Home Page: https://dsheiko.gitbook.io/bycontract/

JavaScript 61.60% TypeScript 38.40%
interface jsdoc static-types validate validation

bycontract's People

Contributors

artemsway avatar bitdeli-chef avatar dsheiko avatar dworthen avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

bycontract's Issues

Unexpected ByContractError with "|" and "Object.<>" and "Array.<>"

Testing from DevTools.


byContract.validate('foo', `('foo'|'bar')`)

Expected : 'foo'
Actual : ByContractError: expected ('foo'|'bar') but got string

byContract.validate({ 'foo': true, 'bar': 1 }, `Object.<string, boolean|number>`)

Expected : {foo: true, bar: 1}
Actual : ByContractError: expected Object.<string, boolean|number> but failed on each: invalid contract string, invalid contract "number>"

byContract.validate([true, 1], `Array.<boolean|number>`)

Expected : (2) [true, 1]
Actual : ByContractError: expected Array.<boolean|number> but failed on each: invalid contract string, invalid contract "number>"

byContract.validate({ 'foo': { 'bar': true }}, `Object.<string, Object.<string, boolean>>`)

Expected : {foo: {…}}
Actual : ByContractError: object property foo: invalid contract "boolean>"

byContract.validate([{ 'foo': true, 'bar': 1 }], `Array.<Object.<string, boolean|number>>`)

Expected : [{…}]
Actual : ByContractError: expected Array.<Object.<string, boolean|number>> but failed on each: invalid contract string, invalid contract "number>>"

byContract.validate({ foo: [true, 1] }, `Object.<string, Array.<boolean|number>>`)

Expected : {foo: Array(2)}
Actual : ByContractError: expected Object.<string, Array.<boolean|number>> but failed on each: invalid contract string, invalid contract "number>>"


Thanks

Confusing documentation

I am sorry, but documentation is super confusing.

I just want to implement simple validation for object passed.

export const requestCreateService = async (payload) => {
  console.log(payload,arguments)
  const payloadType = {
    title: 'string',
    body: 'string',
    createdBy: 'string',
    categoryID: 'number',
    priority: 'string=',
    files: 'array=',
  }
  validate(arguments, [payloadType])
}

that does not work, because essentially, arguments has loads of other objects not just payload.

How can I point so it does check only payload object ? also ideally how can I check if payload was passed at all ?

Licence?

"bycontract" looks really great and is a real gapfiller! Under which licence do you distribute your library? Thank you for sharing!

typescript issue

When importing this in typescript I get a TS2306 error. Any ideas how to fix this?

/node_modules/bycontract/index.d.ts' is not a module.

Top level declaration file contains implicit any and missing declare/export

Hello,

I am receiving the following errors when running tsc.

node_modules/bycontract/index.d.ts(1,1): error TS1046: Top-level declarations in .d.ts files must start with either a 'declare' or 'export' modifier.
node_modules/bycontract/index.d.ts(1,10): error TS7010: 'validate', which lacks return-type annotation, implicitly has an 'any' return type.
node_modules/bycontract/index.d.ts(7,10): error TS7010: 'typedef', which lacks return-type annotation, implicitly has an 'any' return type.
node_modules/bycontract/index.d.ts(9,17): error TS7010: 'validateJsdoc', which lacks return-type annotation, implicitly has an 'any' return type.

I am running typescript version 3.6.3.

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.