4.7.84 • Published 12 months ago

@taktikorg/quos-tenetur-cum v4.7.84

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

@taktikorg/quos-tenetur-cum Version Badge

github actions coverage License Downloads

npm badge

Define an accessor property on an object. In an engine without descriptors, in loose mode, when only a getter is provided, nonEnumerable is false, and nonConfigurable is false, wil fall back to assignment - otherwise, it will throw.

The two non* options can also be passed null, which will use the existing state if available.

The loose option will mean that if you attempt to set a nonconfigurable/nonwritable accessor property with set, in an environment without descriptor support, it will fall back to normal assignment (and eagerly evaluate the getter).

Usage

var defineAccessorProperty = require('@taktikorg/quos-tenetur-cum');
var assert = require('assert');

var str = 'value';
var strThunk = function () { return str; };
var strSetter = function (v) { str = v; };
var random = function () { return Math.random(); };

var obj = {};
defineAccessorProperty(
	obj,
	'key',
	{
		get: strThunk,
		set: strSetter,
	}
);
defineAccessorProperty(
	obj,
	'key2',
	{
		get: random, // at least one of "get" or "set" must be provided
		nonConfigurable: true, // optional
		nonEnumerable: true, // optional
		loose: false, // optional
	}
);

assert.deepEqual(
	Object.getOwnPropertyDescriptors(obj),
	{
		key: {
			configurable: true,
			enumerable: true,
			get: strThunk,
			set: strSetter,
		},
		key2: {
			configurable: false,
			enumerable: false,
			get: random,
			set: undefined,
		},
	}
);
4.7.84

12 months ago

4.7.83

12 months ago

4.7.82

12 months ago

4.7.81

12 months ago

4.7.80

12 months ago

4.7.79

12 months ago

4.7.78

12 months ago

4.7.77

1 year ago

4.7.76

1 year ago

4.7.75

1 year ago

4.7.74

1 year ago

4.7.73

1 year ago

4.6.73

1 year ago

4.6.72

1 year ago

4.6.71

1 year ago

4.6.70

1 year ago

4.6.69

1 year ago

4.6.68

1 year ago

4.6.67

1 year ago

4.6.66

1 year ago

4.6.65

1 year ago

4.5.65

1 year ago

4.5.64

1 year ago

4.5.63

1 year ago

4.5.62

1 year ago

4.5.61

1 year ago

4.5.60

1 year ago

4.5.59

1 year ago

4.5.58

1 year ago

4.5.57

1 year ago

4.5.56

1 year ago

4.5.55

1 year ago

4.5.54

1 year ago

4.5.53

1 year ago

4.5.52

1 year ago

4.5.51

1 year ago

4.5.50

1 year ago

4.4.50

1 year ago

3.4.50

1 year ago

3.4.49

1 year ago

3.4.48

1 year ago

3.4.47

1 year ago

3.4.46

1 year ago

3.4.45

1 year ago

3.4.44

1 year ago

3.4.43

1 year ago

3.4.42

1 year ago

3.4.41

1 year ago

3.4.40

1 year ago

3.4.39

1 year ago

3.4.38

1 year ago

3.4.37

1 year ago

3.4.36

1 year ago

3.4.35

1 year ago

3.4.34

1 year ago

3.4.33

1 year ago

3.4.32

1 year ago

3.4.31

1 year ago

3.4.30

1 year ago

3.4.29

1 year ago

3.4.28

1 year ago

3.4.27

1 year ago

3.4.26

1 year ago

3.4.25

1 year ago

3.3.25

1 year ago

3.3.24

1 year ago

3.3.23

1 year ago

3.3.22

1 year ago

3.3.21

1 year ago

3.2.21

1 year ago

3.2.20

1 year ago

3.2.19

1 year ago

3.2.18

1 year ago

3.2.17

1 year ago

3.2.16

1 year ago

3.2.15

1 year ago

2.2.15

1 year ago

2.2.14

1 year ago

2.1.14

1 year ago

2.1.13

1 year ago

2.0.13

1 year ago

2.0.12

1 year ago

2.0.11

1 year ago

2.0.10

1 year ago

2.0.9

1 year ago

2.0.8

1 year ago

1.0.8

1 year ago

1.0.7

1 year ago

1.0.6

1 year ago

1.0.5

1 year ago

1.0.4

1 year ago

1.0.3

1 year ago

1.0.2

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago