Nightly Perpetrated Mischief

    query-cast
    TypeScript icon, indicating that this package has built-in type declarations

    2.0.1 • Public • Published

    query-cast Tests Coverage Status Dependabot badge

    Is a small utility which helps you parse and cast the query (or search) params of the url:

    import { queryCast, Types } from 'query-cast';
    
    const schema = {
      foo: Types.FLOAT,
      bar: Types.BOOLEAN,
      baz: Types.STRING
    };
    
    const cast = queryCast(schema);
    
    cast('?foo=12.15&bar=false&baz=baaaz'); // {foo: 12.15, bar: false, baz: 'baaaz'}

    You may ask, why do you need to create a cast function first? Because in this case you can combine as many cast functions as you want using combineQueryCasts method:

    import { combineQueryCasts, squeryCast, Types } from 'query-cast';
    
    const foo = queryCast({
      foo: Types.FLOAT
    });
    
    const barBaz = queryCast({
      bar: Types.BOOLEAN,
      baz: Types.STRING
    });
    
    const cast = combineQueryCasts({
      foo,
      barBaz
    });
    
    cast('?foo=12.15&bar=false&baz=baaaz'); // {foo: {foo: 12.15}, barBaz: {bar: false, baz: 'baaaz'}}

    You may think of it as a reducers from redux library. So, you split these parsers into small peacies and use them separately or combine when you need some of them at the same time.

    API

    query-cast is based on typeable.js. So, schema definition is the same as for typeable library.

    queryCast(schema)

    Create cast function based upon schema.

    • schema: {[key: string]: Types | [Types]} – describe the shape of the output. You should use the types from Types-enum from the lib while defining it. List of supported types below:

      • Types.STRING – string value will left as is
      • Types.BOOLEAN – convert to boolean. Any number which is greater than 0, Infinity, '1', 'yes', '+' will be cast to true.
      • Types.INTEGER – convert to integer
      • Types.FLOAT – convert to float
      • Types.NUMBER – alias of Types.FLOAT
      • Types.DATE – convert to Date-object
      • Types.ANY – the same as Types.STRING

    combineQueryCasts(casts)

    Create a new cast function based upon the object, whose params are different cast functions and gather the result into a single object, whose keys correspond to the keys of the passed cast functions.

    • casts: {[key: string]: queryCast} – An object whose values correspond to different cast functions that need to be combined into one.

    Install

    npm i query-cast

    DownloadsWeekly Downloads

    2

    Version

    2.0.1

    License

    MIT

    Unpacked Size

    18.6 kB

    Total Files

    8

    Last publish

    Collaborators

    • romic