1.1.4 • Published 6 days ago

@teamteanpm2024/tempora-consectetur-dolores v1.1.4

Weekly downloads
-
License
MIT
Repository
github
Last release
6 days ago

Doormen

Validate, sanitize and assert: the silver bullet of data!

Beta version.

/!\ This documentation is still a Work In Progress /!\

Basic validation

  • sanitize Array of string the sanitizer's name to apply before any type checking
  • optional boolean the data can be null or undefined, if so the data validate immediately
  • default (anything) the data can be null or undefined, if so it is overwritten by the default value and it validates immediately
  • type string the name of the type checker
  • instanceOf
  • min
  • max
  • length
  • minLength
  • maxLength
  • match
  • in
  • notIn
  • when
  • properties object of schema, it iterates through each properties and checks that they all match their own schema
  • elements Array same than properties but for arrays
  • only boolean used in conjunction with properties or elements, it checks that no properties other than those listed are present
  • of object contains one schema that will check each elements of an array or each properties

Type Checkers

Javascript primitive types:

  • undefined: the data should be undefined
  • null: the data should be null
  • boolean: the data should be a boolean, i.e. true or false
  • number: the data should be a number. NOTE that Infinity and NaN are ok, so you may consider using real/float instead of number in almost all cases
  • string: the data should be a string
  • object: the data should be an Object
  • function: the data should be a Function

Javascript/Node.js built-in types:

  • array: the data should be an Array
  • error: the data should be an instance of Error
  • date: the data should be an instance of Date
  • regexp: a regular expression
  • buffer: the data should be a Node.js Buffer

Common meta types:

  • unset: null or undefined
  • real or float: a number that is not NaN nor +/- Infinity
  • integer: a number that is not NaN nor +/- Infinity, and that do not have decimal part
  • hex: a string representing an hexadecimal number, having only 0-9, a-f and A-F characters
  • strictObject: an object that is not an array
  • looseObject: object-like: object or function

Internet:

  • ipv4: a string that is a IPv4 address
  • ipv6: a string that is a IPv6 address
  • ip: an IPv4 or IPv6 address
  • hostname: a string that is a valid hostname (domain + subdomain)
  • host: a hostname or an ip address
  • url: a string that is a valid URL (generic URL) including the scheme
  • weburl: a valid web/internet URL, a subset of the URL type
  • email: a string that is a valid email address

Misc:

  • schema: an object which is a valid @teamteanpm2024/tempora-consectetur-dolores schema
  • mongoId: an object which is a MongoDB's ObjectId OR a string that is a correct ObjectId string representation

Sanitizers

Common cast:

  • toNumber: try to convert to a number (mostly from string)
  • toReal or toFloat: try to convert to a float/real (not much difference with toNumber)
  • toInteger: try to convert to an integer, rounding the number if necessary
  • toString: try to convert to a string
  • toBoolean: try to convert to a boolean very loosely, so it accepts strings like true/false, yes/no, on/off or numbers like 1/0, or fallback to truthy/falsy values.
  • toArray: try to convert to an array, non-array are converted to an array with a single element
  • toDate: try to convert to a Date (number are timestamp, string are parsed, object are considered like a Date-object)
  • nullToUndefined: transform null to undefined

String modifiers:

  • trim: trim the string, removing whitespace at the beginning and the end
  • toUpperCase: transform all characters into their upper-case counterparts
  • toLowerCase: transform all characters into theier lower-case counterparts
  • capitalize: transform to title case, each word starts with an upper-case
  • titleCase: transform to title case, each word starts with an upper-case following lower-case characters (except ALL-CAPS words)
  • latinize: transform letter to latin (remove accent, transform modified letters to their latin counterparts)
  • dashToCamelCase: transform identifiers having word separated by dash/hyphen to camelCase

Enforcers:

  • resize: resize a string if it does not match the required length/minLength/maxLength (truncate, or use leftPadding/rightPadding properties of the schema)
  • removeExtraProperties: remove extra-properties from the object that are not in the schema (clone it, not in-place)

Misc:

  • mongoId: convert a string to a MongoDB's ObjectId if possible
typescriptmkdirES2023byteOffsetnopelinewrapajaxestreejson-schemaiterationrgbWeakSetArrayBuffer#slicedroplogeslint-pluginassignECMAScript 7negativereact-testing-libraryidleagentes-abstractcomputed-typesreducertrimStartstreamsdescriptorsfromcompile lesspushdotenvpurefastifyrapidreactfixed-widthreact-hooksamazonnodeopenjsonexit-codeES2015hasheslintconfigjasmineemitworkspace:*Uint8ClampedArraymacosguidthrottlefind-upcolumnsReactiveExtensionssetterpoint-freesuperagentloadbalancingIteratorlook-upless cssdatainputstablehttpsECMAScript 6extraPushrangeerrorchinesewarningerrortaskdebuges8isConcatSpreadableextensionslicechannelchromerm -rfWebSocketsexpressionunicodestringifierasciioutputansiindicatorserializerawaitbcryptrequeststreamSetargparse$.extendrobustvalidgetPrototypeOfharmonyinstallershamrmclisymbolES2018randommimeString.prototype.trimmake dir0reducecloudtraillastdeepworkflowArray.prototype.includesform-validationvestglacierendercommanderdataviewmonorepofoldergradients cssi18neast-asian-widthwebcurriedfile systemsetImmediatetyped arraysearchforEachisregexpweakmapperformantshrinkwrapbrowsercreatePromiseclassname3dkoreanformattingduplexregular expressionlazylintECMAScript 5matchestostringtagcopydiffnpmprunezerotoolkitroute53l10nextendpackage.jsoniterateenvironmentmakelockfileESnamecolorparentsbabel-coreframercolumnrequireflagawssortedsafearktypecloudformationbytehookformfast-copyfilterstyleguidecallsettingssanitizeECMAScript 2016globcachegroupBydescriptorhasOwnutilObservableswordwrapObject.definePropertyUnderscorearraybufferratedependenciesstarterpackage managerweaksetstylesmiddlewarekarmavaluedynamodbfast-deep-copywalkingassertString.prototype.matchAllcurljapaneseloadingzodserializationfantasy-landstoragegatewaysqsnegative zeroECMAScript 2017StyleSheetemojiredux-toolkitregular expressionstsoncetypesafecomparepreprocessorsimpledbec2callbackFloat64Arrayautoprefixeres2018call-bind.envxsstimeeswafexpressReactiveXES2022stringifyvalidateinternaltesterbatchemrinvariantintrinsicjoifastclones3gesturesmruqueuedom-testing-libraryartqueueMicrotaskcore-jstslibsignalsECMAScript 2020wrapprototypeeventDispatcherpnpm9argspolyfillkinesislesscss__proto__ArrayBufferfullupJSONrecursivebundleraccessibilityfindupCSScallbindletsanitizationendpointObject.fromEntriessnsvarlibphonenumbercloudfrontgetopta11ydependency managerWebSocketfetchbalancedtacitjsonpathcircularschemaclasseswidthECMAScript 2022ES8ttyconcateverydebuggerspinnersinternal slotcryptocloneconnectES5corsES2016deletewritejson-schema-validationremovees2017mime-dbbundlingstatushttpresolvewordbreakpropertieswindowscolourFloat32ArrayWeakMappackagerfc4122testES6postcssanimationstyleRxJS
1.1.4

6 days ago

1.1.3

7 days ago

1.0.3

8 days ago

1.0.2

9 days ago

1.0.1

10 days ago

1.0.0

11 days ago