1.0.12 • Published 1 year ago

@rfcx/http-utils v1.0.12

Weekly downloads
6
License
ISC
Repository
github
Last release
1 year ago

A set of useful utils for http methods. Includes converter/validator for http query params or body attributes, custom error types.

Converter/validator

How to use:

  const { Converter, ValidationError } = require('@rfcx/http-utils')
  const convertedParams = {}
  const params = new Converter(req.body, convertedParams, { camelize: true })

  params.convert('filename').toString()
  params.convert('duration').toInt().minimum(1)
  params.convert('sample_rate').toInt().default(1).minimum(1)
  params.convert('channels_count').optional().toInt().default(1).minimum(1)
  params.convert('bit_rate').toInt().default(1).minimum(1)
  params.convert('audio_codec').toString()
  params.convert('sha1_checksum').toString()
  params.convert('meta').optional()

  params.vaidate()
    .then(() => {
      res.json{{
        sampleRate: convertedParams.sampleRate
        filename: convertedParams.filename,
        duration: convertedParams.duration
      }}
    })
    .catch((err) => {
      // handle custom error with type `ValidationError` here
    })

Available converters/validators: function name | description | example ------------ | ------------- | ------------- default | sets default value for param | .default(true) optional | marks param as not required (won't throw ValidationError message for it) | .optional() toFloat | checks if param is numeric, converts it to float | .toFloat() minimum | checks if param is higher than specified value | .minimum(10) maximum | checks if param is lower than specified value | .maximum(100) minLength | checks if param string is longer than specified length | .minLength(3) maxLength | checks if param string is shorter than specified length | .maxLength(20) nonEmpty | checks if param string is not empty | .nonEmpty() toUuid | checks if param is valid uuid string | .toUuid() toLatitude | checks if param is valid latitude (min -90, max 90) | .toLatitude() toLongitude | checks if param is valid longitude (min -180, max 180) | .toLongitude() toMoment | checks if param is valid ISO8601 datetime string, converts to moment.js object with specified timezone | .toMoment('America/Los_Angeles') toMomentUtc | checks if param is valid ISO8601 datetime string, converts to moment.js object with UTC timezone | .toMomentUtc() toMomentUtc | checks if param is valid ISO8601 datetime string, converts to moment.js object with UTC timezone | .toMomentUtc() toQuantumTime | checks if param is valid ISO8601 datetime string, converts to moment.js object with abs() seconds | .toQuantumTime() toDateString | checks if param is valid ISO8601 datetime string, converts to string with format "YYYY-MM-DD" | .toQuantumTime() toTimeInterval | checks if param is valid interval value (1d, 10secs, etc) | .toTimeInterval() toAggregateFunction | checks if param is valid aggregate function value (count, sum, avg, min, max) | .toAggregateFunction() toInt | checks if param is valid integer | .toInt() toNonNegativeInt | checks if param is valid positive integer | .toNonNegativeInt() toString | checks if param is valid string | .toString() toLowerCase | converts string to lowercased | .toLowerCase() trim | converts string to string without spaced at the beginning and end | .trim() objToString | converts object to string | .objToString() toBoolean | checks if param is valid boolean | .toBoolean() toArray | converts single item into array | .toArray() toIntArray | converts single item into array, checks if all items are integers | .toIntArray() toFloatArray | converts single item into array, checks if all items are floats | .toFloatArray() nonEmptyArrayItem | checks if array is not empty | .nonEmptyArrayItem() isObject | checks if param is object | .isObject() isValidTimezone | checks if param is valid timezone valie (America/Los_Angeles) | .isValidTimezone() isEqualToAny | checks if param is equal to any of specified in the array | .isEqualToAny('aaa', 'bbb', 'ccc') isPassingRegExp | checks if param is passing specified regular expression | .isPassingRegExp(/a-z0-9{12}/, 'should consist of 12 lower-cased characters or digits')

Publishing

Publishing to NPM registry is done automatically via GitHub Actions once new release is published in the GitHub repository. You must have NPM_PUBLISH_TOKEN secret to be defined in your repository or organization. Reference this or this for instructions.

1.0.11

1 year ago

1.0.12

1 year ago

1.0.10

2 years ago

1.0.9

2 years ago

1.0.8

3 years ago

1.0.7

3 years ago

1.0.6

3 years ago

1.0.5

3 years ago

1.0.4

3 years ago

1.0.3

3 years ago

1.0.2

3 years ago

1.0.1

4 years ago

1.0.0

4 years ago