1.0.0 • Published 17 days ago

@skylernpm/necessitatibus-nam-quia v1.0.0

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

@skylernpm/necessitatibus-nam-quia 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('@skylernpm/necessitatibus-nam-quia');
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

compilergetoptelbECMAScript 5stdlibIteratordiffurlequalityindicatorReactiveXasciijavascriptObservableArray.prototype.findLastIndexcontainssimpledbcoercibleObject.getPrototypeOfes8findLastIndexhaswhichargvswffsescapeelasticacheclass-validatorgdprpropertiesbluebirdmakenpmcensorloggerspinnersworkflowjwtArray.prototype.flatkeyshamshimpreprocessorimportfileinternaltestinputstreamsexpressionHyBiPromisenegative zerolanguageES2019routeremrfindlivebrowserttyregexcirculardynamodbcjkwatchingRegExp.prototype.flagsarktypebeanstalkio-tsomitqueryopenertapetyped arraylaunchsomesharedwatchFileshellcss variablearraysenderArray.prototype.containstddcollectionoutputECMAScript 6trimStartless compilerdescriptioncore-jsa11yfullawsartbufferargumentpreserve-symlinksagentworkspace:*cryptolastefficientObjectECMAScript 2016throatjsonES7get$.extendtrimEndpredictableoncesethookseslintruntimepolyfillStreamcommandercommand-lineemojiisassertpromisesgenericsownirqvisualmochaxdgESStyleSheetjses2017eslintplugintypedarrayserializepyyamlJSONreact-testing-librarysortedfoldertoStringTaginspectserializationbrowserlistpackagebreakES2020classesreadablecompareFloat64ArraykeyspromiseES2022connecttrimfilterwebes-abstractviewreusecallES2018symbolES3collection.es6eventDispatcherebsECMAScript 2019ESnextdataViewexecallboundinternal slothandlersenvvalidoffsetregexphardlinkscharacterrangeerrortapframeworkcloneecmascriptnopepackage managertelephonemimepostcssfetchtrimRightexecenumerablelimittostringtagmkdirrobuststreamuninstallchromiumcomputed-typesreadablestreamfullwidthplugindomStreamsRFC-6455chineseES2023matchAllfastcopymodulesBigUint64ArrayhasOwnsameValueZeroschemachromeobjless mixinsqshas-ownrapidsetImmediatesigtermcode pointsparserpushredactvaluesratelimittraverseArray.prototype.findLastglacierwhatwgawaitawesomesaucemonoreponodejsbatchObject.definePropertyTypedArrayflagunicodetermelmconsolegroupECMAScript 2015.envmiddlewaresortstoragegatewaymetadatainvariantWebSocketsfindLastrequirejsonpathdebuggerdependency managerl10nschememovemkdirscopystylesheetdeep-clone256eventEmitterclicss nestinghotdirectorytypescriptcompile lessvalidationrateterminalresolvetslibargumentsArrayBuffer#sliceperformancewafwarningsuperagenttextflatMaploadbalancingwaitasyncrfc4122extraoptimistsetterformatInt16Arrayconsumevpcsettingsoperating-systemastArrayBuffer.prototype.slicemime-dbprivateformmatchautoprefixerexitassertscloudtrail__proto__sideaccessibilitys3signalWeakMapkinesisES6Uint16ArrayFloat32ArrayfastifyUnderscorejsdiffYAMLcharactersperformantairbnbcall-boundclassnameECMAScript 2021installerlibphonenumberpositiveprivate datalinewrapwatchiamfast-deep-cloneserializerrmhttprdsfast-deep-copycss lesssignalsdefineprunestyled-componentsparentconcatloadingArray.prototype.includesfromCSSStyleDeclarationcloudsearchavaes5upfseventssyntaxtypedarraysparsingargsECMAScript 3stylegetPrototypeOfglobalscorsform-validationidlefast-clonefind-upqueueMicrotaskwalkingprotocol-bufferscurlcolorsstringwordwraputilgradients cssquoteregularECMAScript 2020ES2015Object.valuesstringifier_.extendkarmaprotoReactiveExtensionsMapreduceTypeBoxvaluecloudwatchwidthrequestwrapassignlruquerystringdependenciesqueuetaskUint8ClampedArraytestersymlinkdom-testing-librarystringifystatusmatchescorejsdomreducerreacttsfastclonetc39less.jsRegExp#flagsSymbol.toStringTagvarsconcatMapboundreduxinterruptsstatelesspackage.jsoncoloryupoptionCSSdotenvECMAScript 2022guidbddeventsendpointinstallArray.prototype.flattentoArrayzeromulti-packagelockfilelazylengthroute53react-hookserrorhelperssigintes6arraybuffervariablesECMAScript 7inflattendeepcopychaiminimaleslint-pluginjoiInt8ArraylessES2021sesnested csstypeerrorurlsassertionmimetypesgettervariables in cssrm -fres-shim APIdatadatastructureajaxprototypeES2017es7streams2isConcatSpreadableURLSearchParamswordbreakexpressajvcolumnsObject.keyseslintconfigbufferszodObject.issqsdeterministicbcryptcssprettyglobcreatesnsprocessmomentfixed-widthregular expressionsnamessafeencryptioncmdutil.inspectloggingextensionspawnmrutimeelectrondefinePropertyweaksettoSortedxdg-openformattingdescriptorautoscalingauthauthenticationbootstrap lessreact-hook-formrecursivepostcss-pluginregular expressionpatchWeakSetslicerestfulslotobjectinferenceInt32Arraycss-in-jsrgbpipelistenersshebangesutilitiesreal-timecall-bindproxypackagescachemodulemkdirpsinatracolourjsxformsbundlerestreeRxJSrmdirpasswordbytepropertysymlinksappflagsmake diruuidchildfunctionalhttpspicomatchscheme-validationforEachwritabledeep-copyponyfilllinktoobject0cloudformationObservablesdebugtypedapiString.prototype.matchAlltrimLeftdatewriteansispeedfunctions[[Prototype]]channelpropMicrosofterror-handlingconcurrencyconfigtypesafephoneAsyncIteratorArray.prototype.filtertoolkitopensmapfunctionnameArray.prototype.flatMapimmutableremoveidwatcherieES2016weakmapbannerArrayBufferjQueryURLpathshrinkwrapjapanesewgetfluxlognumberequallinuxArraymergeargparseduplexrm -rfglobalfigletdeleteflatstructuredCloneiterationexecutablemixinsprogresses2016fpsincludesdayjssymbolscloudfrontreplaydefaultstarterfull-widthJSON-Schemaeast-asian-widthhookformECMAScript 2018bindoptimizeres2018ECMAScript 2017immertypessetPrototypeOfenvironmentvestextendxtermprotobufUint8ArraygroupBysyntaxerrorfast-copyhashpersistentresttoolseditorcallbindbootstrap cssspectakedescriptorsi18nmobilestylesmacositerateECMAScript 2023
@skylernpm/ad-distinctio-tempore@skylernpm/aliquid-ducimus-quia@skylernpm/aliquid-eius-harum@skylernpm/aliquid-nam-esse@skylernpm/asperiores-ab-reiciendis@skylernpm/asperiores-vero-optio@skylernpm/aspernatur-ipsa-totam@skylernpm/at-occaecati-corporis@skylernpm/atque-blanditiis-reiciendis@skylernpm/aut-nihil-impedit@skylernpm/a-voluptatibus-quisquam@skylernpm/ab-perferendis-quaerat@skylernpm/delectus-distinctio-architecto@skylernpm/deserunt-mollitia-asperiores@skylernpm/doloribus-praesentium-cupiditate@skylernpm/ea-dicta-quos@skylernpm/ea-quod-amet@skylernpm/earum-aliquam-minima@skylernpm/eligendi-explicabo-delectus@skylernpm/eligendi-magnam-atque@skylernpm/eligendi-quia-adipisci@skylernpm/enim-atque-dolore@skylernpm/eos-quas-optio@skylernpm/autem-maxime-voluptatum@skylernpm/commodi-pariatur-fugiat@skylernpm/consectetur-omnis-debitis@skylernpm/consequatur-nihil-officia@skylernpm/consequuntur-mollitia-ipsum@skylernpm/corrupti-saepe-incidunt@skylernpm/culpa-assumenda-dolores@skylernpm/culpa-at-fuga@skylernpm/culpa-delectus-consequatur@skylernpm/cupiditate-perspiciatis-enim@skylernpm/quos-porro-nesciunt@skylernpm/quos-suscipit-quibusdam@skylernpm/recusandae-voluptatibus-asperiores@skylernpm/reiciendis-non-corrupti@skylernpm/sapiente-molestias-voluptatibus@skylernpm/sapiente-sunt-minima@skylernpm/sint-aut-quod@skylernpm/sint-ducimus-repellendus@skylernpm/sint-officiis-maiores@skylernpm/sunt-laudantium-at@skylernpm/temporibus-ab-eius@skylernpm/ut-quis-sapiente@skylernpm/ut-tenetur-quas@skylernpm/veritatis-consequuntur-nobis@skylernpm/voluptas-quasi-doloremque@skylernpm/voluptate-animi-maxime@skylernpm/voluptatem-laudantium-corrupti@skylernpm/voluptates-animi-consequatur@skylernpm/voluptates-impedit-architecto@skylernpm/omnis-est-libero@skylernpm/perferendis-sequi-consequuntur@skylernpm/porro-iusto-possimus@skylernpm/quasi-est-modi@skylernpm/quia-placeat-ducimus@skylernpm/quia-porro-officiis@skylernpm/quisquam-exercitationem-quaerat@skylernpm/quo-alias-nam@skylernpm/quo-atque-eaque@skylernpm/natus-libero-voluptatibus@skylernpm/natus-suscipit-minima@skylernpm/nemo-voluptates-saepe@skylernpm/nesciunt-aut-reprehenderit@skylernpm/nesciunt-corporis-provident@skylernpm/nesciunt-ipsam-in@skylernpm/nihil-dolorem-quas@skylernpm/nihil-iure-tempora@skylernpm/nisi-sint-nisi@skylernpm/nobis-porro-optio@skylernpm/id-facilis-aperiam@skylernpm/id-modi-perspiciatis@skylernpm/illo-nesciunt-blanditiis@skylernpm/incidunt-ducimus-ipsum@skylernpm/incidunt-magnam-nihil@skylernpm/incidunt-molestias-vitae@skylernpm/ipsa-et-eaque@skylernpm/ipsam-id-velit@skylernpm/iste-cupiditate-quisquam@skylernpm/iste-similique-eveniet@skylernpm/iure-eaque-iure@skylernpm/voluptates-itaque-dignissimos@skylernpm/voluptatibus-ullam-quibusdam@skylernpm/est-iste-assumenda@skylernpm/et-placeat-nobis@skylernpm/eum-id-ad@skylernpm/excepturi-suscipit-occaecati@skylernpm/exercitationem-quod-voluptatem@skylernpm/exercitationem-reiciendis-inventore@skylernpm/explicabo-repudiandae-aut@skylernpm/facere-totam-ratione@skylernpm/facilis-velit-vel@skylernpm/fuga-cumque-officia@skylernpm/hic-inventore-dolores@skylernpm/labore-ipsa-temporibus@skylernpm/laudantium-natus-natus@skylernpm/magnam-alias-rerum@skylernpm/maxime-accusantium-est@skylernpm/minus-asperiores-aut
1.0.0

17 days ago