@epistemology-factory/crocks-web
Advanced tools
Comparing version 0.2.8 to 0.2.9
{ | ||
"name": "@epistemology-factory/crocks-web", | ||
"version": "0.2.8", | ||
"version": "0.2.9", | ||
"description": "Functions to help write web applications with crocks", | ||
@@ -5,0 +5,0 @@ "scripts": { |
@@ -7,12 +7,16 @@ "use strict"; | ||
// isDefinedFailure :: [String] -> a -> ValidationFailure | ||
const isDefinedFailure = validationFailure( | ||
CONSTRAINTS.IS_DEFINED, | ||
DEFAULT_MESSAGES[CONSTRAINTS.IS_DEFINED] | ||
) | ||
const isDefined = makeValidator( | ||
require("crocks/predicates/isDefined"), | ||
validationFailure( | ||
CONSTRAINTS.IS_DEFINED, | ||
DEFAULT_MESSAGES[CONSTRAINTS.IS_DEFINED] | ||
) | ||
isDefinedFailure | ||
) | ||
module.exports = { | ||
isDefined | ||
isDefined, | ||
isDefinedFailure | ||
} |
@@ -6,2 +6,3 @@ "use strict"; | ||
IS_ISO_DATE: "is-iso-date", | ||
IS_JSON: "is-json", | ||
IS_OBJECT: "is-object", | ||
@@ -14,2 +15,3 @@ IS_STRING: "is-string", | ||
[CONSTRAINTS.IS_ISO_DATE]: "should be an ISO date", | ||
[CONSTRAINTS.IS_JSON]: "must be valid JSON", | ||
[CONSTRAINTS.IS_OBJECT]: "must be an object", | ||
@@ -16,0 +18,0 @@ [CONSTRAINTS.IS_STRING]: "must be a string", |
@@ -71,2 +71,3 @@ "use strict"; | ||
// getHeader :: a -> String -> b -> c | ||
const getHeaderOr = curry((value, header) => | ||
@@ -73,0 +74,0 @@ compose(option(value), getHeader(header)) |
"use strict"; | ||
const bimap = require("crocks/pointfree/bimap"); | ||
const compose = require("crocks/helpers/compose"); | ||
const constant = require("crocks/combinators/constant"); | ||
const converge = require("crocks/combinators/converge"); | ||
const curry = require("crocks/helpers/curry"); | ||
const flip = require("crocks/combinators/flip"); | ||
const identity = require("crocks/combinators/identity"); | ||
const pipe = require("crocks/helpers/pipe"); | ||
const pipeK = require("crocks/helpers/pipeK"); | ||
const { isSchemaValid } = require("../../validation/validators"); | ||
const { getPath } = require("@epistemology-factory/crocks-ext/Result"); | ||
const { parse } = require("@epistemology-factory/crocks-ext/node/json"); | ||
const { invalidJsonFailure } = require("../../validation/validators/json"); | ||
const { isSchemaValid, isDefinedFailure } = require("../../validation/validators"); | ||
const { validationError } = require("./errors"); | ||
// toArray :: a -> [ a ] | ||
const toArray = (x) => [ x ] | ||
const missingBody = | ||
pipe( | ||
compose(toArray, flip(isDefinedFailure, undefined)), | ||
validationError | ||
) | ||
// parseJSON :: [ String ] -> a -> Result Object Object | ||
const parseJSON = curry((path) => | ||
converge( | ||
flip(bimap, identity), | ||
compose(constant, validationError, toArray, invalidJsonFailure(path)), | ||
parse | ||
) | ||
) | ||
// parseBody :: (a -> Result Object) -> Object -> Result Object | ||
const parseBody = curry((parse) => | ||
pipeK( | ||
getPath(missingBody, [ "body" ]), | ||
parse([ "body" ]) | ||
) | ||
) | ||
// validateRequest :: Schema -> Object -> Result Object | ||
@@ -18,3 +54,5 @@ const validateRequest = (schema) => | ||
module.exports = { | ||
parseBody, | ||
parseJSON, | ||
validateRequest | ||
} |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
29927
25
825