1.0.0 • Published 17 days ago

@berufungirnpm/ratione-odio-fuga v1.0.0

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

@berufungirnpm/ratione-odio-fuga Version Badge

github actions coverage dependency status dev dependency status License Downloads

npm badge

Define multiple non-enumerable properties at once. Uses Object.defineProperty when available; falls back to standard assignment in older engines. Existing properties are not overridden. Accepts a map of property names to a predicate that, when true, force-overrides.

Example

var define = require('@berufungirnpm/ratione-odio-fuga');
var assert = require('assert');

var obj = define({ a: 1, b: 2 }, {
	a: 10,
	b: 20,
	c: 30
});
assert(obj.a === 1);
assert(obj.b === 2);
assert(obj.c === 30);
if (define.supportsDescriptors) {
	assert.deepEqual(Object.keys(obj), ['a', 'b']);
	assert.deepEqual(Object.getOwnPropertyDescriptor(obj, 'c'), {
		configurable: true,
		enumerable: false,
		value: 30,
		writable: false
	});
}

Then, with predicates:

var define = require('@berufungirnpm/ratione-odio-fuga');
var assert = require('assert');

var obj = define({ a: 1, b: 2, c: 3 }, {
	a: 10,
	b: 20,
	c: 30
}, {
	a: function () { return false; },
	b: function () { return true; }
});
assert(obj.a === 1);
assert(obj.b === 20);
assert(obj.c === 3);
if (define.supportsDescriptors) {
	assert.deepEqual(Object.keys(obj), ['a', 'c']);
	assert.deepEqual(Object.getOwnPropertyDescriptor(obj, 'b'), {
		configurable: true,
		enumerable: false,
		value: 20,
		writable: false
	});
}

Tests

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

Pushsyntaxchineserouteec2globalsserializationcharacterstslibpolyfillbrowsertypewordbreakkarmalengthbyteprotobufxmltakegraphqlredactrfc4122Int32ArrayqueryweaksetfastifyelbratelimitnpmspecECMAScript 2015typanionequallocalguidreducebatchagentmatchuuidstylingswfsidepositiveintrinsicpyyamltrimRighthas-owncliquoteelasticacheebsES5scheme-validationpersistenttoSortedbluebirdmovereadableprivate dataECMAScript 2023binarycallbindes-abstractstoragegatewaysearchshebanges8toArrayreworkunicodearktypetouchcloudsearchURLSearchParamsworkflowCSSeslintpluginTypeScriptreuseentriesmanagerespreeindicatordatebuffersbreakcharacterpipeminimalenvironmentstermobjdeepcopyeventEmitterstyleguidetrimLefttapeduplexgroupBytapvisualuninstallmanipulationrangeerrorfindLastIndexES2018form-validationdescriptorarraysjoigitignorerobustvalidamazonfull-widthhigher-orderregular expressioncjkairbnbvaluegetintrinsiceslintconfigautoprefixersymlinkexecfilecopyReactiveExtensionspromisefixed-widthjscryptoes-shimsemres-shim APIfsqsshimrm -rfmake dirbddreact animationparsingReactiveXfromrulesemitexecuteansidotenvinspectparserhasprotocol-buffersapollokinesismergegetterkoreancurldeep-cloneECMAScript 2017callboundwrapPromisenodejseslinthasOwnPropertyspringclonetyped arrayincludesbyteLengths3mapvest@@toStringTag[[Prototype]]slotomittypesafepropertyexpressionnopeclientequalityes5packagecensorvalidationdefinePropertyperformantObservablesajaxextratimeextensionArrayBuffer.prototype.slicepostcss-pluginFloat64Arraydatastructurezxwhiches2018waitstreams2descriptiondeterministiciamjesttoStringTagframerprogressperformancestringifyUint32ArrayhttpsES2017loggerdependenciesfunctionfigletfeeddeep-copyes2016cssgroupserializespeedlazyboundimmutablewarningmodulelook-updataviewimportexportavacomparetextexeclimitinputURLregexchaihasOwnECMAScript 3jshintdropendpointtddlockfilereadtypedarraysprefixreduxforkcreateisWeakMapecmascriptECMAScript 2016MapArray.prototype.containsvalidateUnderscoreerrorcolorflatRFC-6455readablestreamsesformattypescriptposerm -frpackagesObject.entriesflagselectronjsxglacierTypeBoxformattingpatchpreserve-symlinksECMAScript 2018superstructcollection.es6$.extendloadbalancing256nodezodJSON-SchemaRegExp.prototype.flagslocationpackage managerjsonschemeObjectbrowserlistvariablescolourlogArray.prototype.findLastcloudwatchformsfullwidthcloudtrailtransformeslint-pluginmkdirpRxgetOwnPropertyDescriptorquerystringsyntaxerrorES6stylesRxJSyamlObject.getPrototypeOfenumerabletranspilersource mapBigUint64ArraycloudfrontlookautoscalingArray.prototype.flatthreergbwidthSymbolformdeletediffstreamsconfigurableES2016ES2022waapijsdomsharedspinnerES2021Object.assigncss-in-jsaccessibilityfastcopygestureshelperslanguagegetPrototypeOfstringenvxhrWebSocketsECMAScript 2021ECMAScript 5pluginFunction.prototype.nameObject.definePropertynamescoerciblees2017phonelibphonenumberterminalcore-jstoolkitaccessorcode pointsglobalzerofastqueueargscomputed-typesmime-dbqueueMicrotaskruntimermdirdirworkerbundlinglimitedslicerecursiveassertsinternal slotnativemochaES2019up0regular expressionscodesgenericshashfolderbinutil.inspecttypesrequirecheckpopmotionserializerponyfillnumberArray.prototype.findLastIndexconcatreact-hook-formpreprocessorproxycommanderjavascriptconcatMapmapreduceignorefastclonehtmllinktostringtagtelephoneaws__proto__settingsparentschannelwalkingreal-timeprotoStreamsES7Int16Arraysnsfast-deep-cloneviewtraversevarseventDispatcheres6Object.ismatches.gitignoredefineexpressredirectcachetoolssortedasynccompileresconsumeconcurrencyenvironmentenderprototypeflatMapestreefunctionsjQuerystableString.prototype.trimjsdifffast-cloneIteratorArrayArray.prototype.flatMapES3identifiersinvariantassertionhooksmulti-packagesetImmediatebrowserslistAsyncIteratoridcommandthrottlemetadataatomJSONreact posemomentUint16ArraymatchAllrsswhatwgprunestreamgloblinewrapmimetypesfnmatcharrayRegExp#flagsregexpfindLastinferencecorehookformspinnersrate_.extendECMAScript 2019reactlastimportfast-deep-copy-0listenersapiarraybufferwritableineveryfast-copybeanstalkbundlerregularobjectsomemruescapeHyBiES8find-upESnextWebSocketlintcolorsweakmapawaityupa11ywalkpostcssartstyleparseECMAScript 2020mobilestatelessreducerESbyteOffsetextendObject.valuesmkdirremovetestshellwgetfindupsequencewritespawnawesomesaucedeepclonetesterReflect.getPrototypeOfmimeastfunctionalschemacall-bindhelpersetPrototypeOfreact-hooksl10nArrayBufferefficientsimpledbflagmodulestoobjectdependency managerkeychildtypeofhardlinks3dutiltc39japanesedataViewdatapushpromisesstructuredClonenegativeSetassignanimationimmerBigInt64ArrayString.prototype.matchAllcontainssymbolsbindemojiloadingmonoreporedux-toolkitInt8ArraystartercloudformationWeakSetdebugECMAScript 6styled-componentsregular-expressionsameValueZeroio-tsstringifiergetinstallerbinariessortrandomfetchUint8ArraytrimStartthroatmakedeepwafSymbol.toStringTagfullES2015dayjsargumentfile systemajvtypeerrordom-testing-librarytasksymlinksiepropertiesObservablepicomatchprocessYAMLoptionargvCSSStyleDeclarationhttpurles7resolvenegative zerotypedarrayStyleSheetchromiumvpccolumnshamObject.fromEntriesiteratornpmignoreoptimistvaluesroutingECMAScript 2022dynamodbrequestES2020ttyArray.prototype.flattenxtermdomStreamroute53package.jsonsetstdlibconfigrapidoutputArrayBuffer#sliceprivateflattenpathi18neast-asian-widthtssymbolclass-validatoridleECMAScript 7mkdirsshrinkwrapArray.prototype.filteroncecallbackinstallfunction.lengthoffsettrimEndprop.envkeysgetoptdebuggerfilterbusyMicrosoftiterationlrufpscommand-lineassertsuperagentes2015sqsfinddescriptorsUint8ClampedArraycollectionoptimizerprettycalliterateparentgdprpnpm9isConcatSpreadablecircularinternalwordwraputilitiesbannerutilitysharedarraybufferchromeforEachArray.prototype.includessubprocesstypedowngraphql-clienteventsnameTypedArrayfilerdssettertrimworkspace:*testingloggingObject.keysreact-testing-libraryasciirmsafeES2023asteriskscolumnscall-bounddragFloat32Array
1.0.0

17 days ago