1.0.0 • Published 12 days ago

@ffras4vnpm/veritatis-quasi-quam v1.0.0

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

@ffras4vnpm/veritatis-quasi-quam Version Badge

github actions coverage License Downloads

npm badge

Returns true if a value has the characteristics of a valid JavaScript data descriptor.

Examples

true when the descriptor has valid properties with valid values. false when not an object or when the object has invalid properties.

var isDataDesc = require('@ffras4vnpm/veritatis-quasi-quam');
var assert = require('assert');

assert.equal(true, isDataDesc({ value: 'foo' }));
assert.equal(true, isDataDesc({ value: function () {} }));
assert.equal(true, isDataDesc({ value: true }));

assert.equal(false, isDataDesc('a'));
assert.equal(false, isDataDesc(null));
assert.equal(false, isDataDesc([]));

assert.equal(false, isDataDesc({ value: 'foo', bar: 'baz' }));
assert.equal(false, isDataDesc({ value: 'foo', bar: 'baz' }));
assert.equal(false, isDataDesc({ value: 'foo', get: function () {} }));
assert.equal(false, isDataDesc({ get: function () {}, value: 'foo' }) );
 
assert.equal(false, isDataDesc({ value: 'foo', enumerable: 'foo' }));
assert.equal(false, isDataDesc({ value: 'foo', configurable: 'foo' }));
assert.equal(false, isDataDesc({ value: 'foo', writable: 'foo' }));

Valid properties

The only valid data descriptor properties are the following:

  • configurable (required)
  • enumerable (required)
  • value (optional)
  • writable (optional)

To be a valid data descriptor, either value or writable must be defined.

Invalid properties

A descriptor may have additional invalid properties (an error will not be thrown).

var foo = {};

Object.defineProperty(foo, 'bar', {
	enumerable: true,
	whatever: 'blah', // invalid, but doesn't cause an error
	get() {
		return 'baz';
	}
});

assert.equal(foo.bar, 'baz');

Related projects

  • is-accessor-descriptor: Returns true if a value has the characteristics of a valid JavaScript accessor descriptor.
  • is-descriptor: Returns true if a value has the characteristics of a valid JavaScript descriptor. Works for… more

Tests

Simply clone the repo, npm install, and run npm test

mobilegetoptes2016postcss-pluginjson-schema-validatorcliframer.envECMAScript 2018ES2019readablestreamfastifybabelstringifierspeedexitapollowalkpromisecharacterpackage managerFunction.prototype.nametapyamlsymlinksvestexpression3dstreamcompilertypeofjasminecss nestingartdeepcopygetimportlinttermrapidrfc4122chinesecharactersconfigfull-widthreact-hook-formkoreanpromisesdeepcircularclientprivate dataMicrosoftfromnumberreuseasciiBigInt64Arrayregular expressionsutilityencryptioncolorswhichhookspicomatchSetconsolefolderfast-clonechaiformbrowserlist-0tc39ArrayBuffer.prototype.sliceentriesWebSocketsTypeBoxnodejscontainsassertioninstallerjQueryhelperslanguageless.jsObject.keyscolourelectronmomentcallboundi18nieomitcurriedhigher-orderdataviewgettermovevarmodulesloggingpersistentcorsconcatredactbreakreducebyteLengthwatchingbuffersjsonpathredux-toolkitfullES2017sigintsameValueZeroserializationcheckparseeventEmitterprototypestablesignalsinvariantslotfast-deep-copystylingpackagechromiumUint16ArrayfseventsavanopeshamshellstructuredClonefastcopyemitArray.prototype.flattenhasOwnRegExp.prototype.flagsnested csssanitizationfpcsscss lessisConcatSpreadablejsxoffsetmacoscommand-lineFloat64ArrayloadinglinkArray.prototype.flatextendcollection.es6real-timewaitstylesheetsometrimEndconnectjwtextrastringifyRFC-6455react poserandomclassesuser-streamsdeep-copynodeio-tstestingtacitcodesstarterreduxes2018negative zeroformatmatchesstatusECMAScript 2015fantasy-landaccessoresoptimizernamesvalidationJSON-SchemaRegExp#flagsassignjsdomcolumnpipethrottlelastquerystringmimenativewordwrapreact animation$.extendtoStringTagfindLastIndexes-abstractdragpnpm9parentsequalshrinkwrapUint32ArrayirqgetOwnPropertyDescriptorfunctionsArray.prototype.flatMapmatchAllhasstreamsworkerhashenumerablelinewrap[[Prototype]]AsyncIteratorescapebundlertypeerrorjson-schema-validationawaitRxJSvalueurls256Array.prototype.findLastIndexjsdeepcloneserializermatchjsonschemaintrinsicargparsesortediteratorObservabledatachildoutputInt8Arrayfindupstylesargsfullwidthequalitywritablea11yslicepathECMAScript 2023typedarraysinternal slotpatchclassnamestddobjrobusttscurlinstalles2015websiteasyncansiparentrmdirramdasignalObject.isspinnercorepluginchannelWeakMapvalidatewebcode pointsStreamsshebangdircompile lessbcryptruntimeprogresscore-jsflagsdescriptionupsetImmediateprotocol-buffersmkdirsESnext@@toStringTagbrowserslistbabel-corelook-upeventshookformtakehttpspopmotiongesturesgradients css3metadataprocessdebuggerassertsES3handlersdefaultString.prototype.trimminimalemojiECMAScript 2019yuperroropenerarrayjapanesetrimStartes-shim APIunicodemiddlewarepolyfillcallbindprunescheme-validationinferenceeslintconfigtypanionfile systemthreecallpropenvironmenttypesafevalidindicatorEStslibfindefficientutilsdom-testing-libraryECMAScript 2016writeTypedArrayquotepostcssreadableargvrm -rfboundnpmfixed-widthtypeObject.fromEntriesfetchArrayBufferjsdiffECMAScript 2017setternegativebytexdg-openwgetwindowsregexrangeerrorsanitizeStreamless csslaunchpasswordjoityped arrayECMAScript 2020uninstallautoprefixerurlES2022assertes2017createmakeArray.prototype.includeswrapFloat32Arrayes6symlinkECMAScript 2022sortfast-copycomputed-typesestreeeditorflatsafeCSSStyleDeclarationlockfileInt32Arrayxhrschemaexecxdgresolvestreams2optionphonestyledirectoryweakmapdescriptorsglobxssspawnObject.entriesbddstringUnderscoreYAMLPushfind-upcensorponyfilltypesES2018TypeScriptstyleguide__proto__argumentfastdomflaggetPrototypeOfwidthimmertranspilerbundlinglibphonenumbertrimRightfindLastutilperformanceqsrgbserializesymbolswarninglruWebSocketES7whatwglimitedclonehttpmime-dbiterateduplexIteratorfileajaxdeleteremovelistenerseslintargumentsconfigurableless compilerbluebirdReactiveXPromiselookObject.valuesregexpoptimistanimationbannermulti-packagecolumnsloggerjavascriptfsdescriptorprivaterequestes8react-hooksmochaweaksetiscss variableharmonyES8mrulessMapflatMaptextpackagesECMAScript 2021tostringtagmodulemkdirpeventDispatcheres7variables in cssECMAScript 7diffview0chromeUint8Arrayinputcachefunctionalautherror-handlingsigtermkeytoobjectonceBigUint64Arraycallbackinternalspringframeworkrm -frES2023URLttycommandmixinspreprocessorES5HyBiauthenticationArray.prototype.containsinterruptsperformantschemevisualpreserve-symlinkseslintpluginsuperstructrecursivegradients csssequenceWeakSetexpresssymbolReactiveExtensionsvaluesreact-testing-librarygroupBysyntaxerrortapepyyamlenvtouchawesomesauceeslint-pluginutil.inspectinspectgetintrinsiccryptocolorl10nbrowserSymbol.toStringTaglimitfilterArrayzerocall-boundimmutabledatesharedArray.prototype.findLastwatchpureexecall-bindtypescriptbufferdefinePropertytraverseregulargroupwatcherObjectvalidatores-shimsshimfastclonelazywaapieast-asian-widthES2015URLSearchParamslogcommanderidmkdirtoSortedpoint-freeES2016taskobjectprotoeverypropertycjkgenericsparserrmlengthdropguidjson-schemabootstrap lessconstECMAScript 3linuxenderconsumebatcharraybufferappStyleSheetdeep-cloneairbnbmonorepogdpr_.extendapiextensionpropertiesopenReflect.getPrototypeOfObject.assigndotenvjestcollectiondependency managerString.prototype.matchAllRxiterationECMAScript 6queuebindthroatArray.prototype.filtercomparepositiveexit-codereducerconcurrencymergeclass-validatoraccessibilityspinnersexecutablequerykeysprefixtoArraytrimLefttoolkitdependencieslesscsstrimmaparraysreadformsES6telephonegraphqlincludesfunctionspecInt16Arrayregular expressionajvarktypewordbreaktypedecmascriptclassnameObservablessuperagenttesterxtermrequire
1.0.0

12 days ago