1 | "use strict";
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 | exports.objectProperties = objectProperties;
|
7 | exports.objectProperty = objectProperty;
|
8 |
|
9 | var _undefined = require("../is/undefined");
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 |
|
18 | function objectProperty(that, key, getter) {
|
19 |
|
20 |
|
21 | if (!Object.prototype.hasOwnProperty.call(that, key) && (0, _undefined.isUndefined)(that[key])) {
|
22 | Object.defineProperty(that, key, {
|
23 | enumerable: true,
|
24 |
|
25 |
|
26 |
|
27 | get: () => getter(key)
|
28 | });
|
29 | }
|
30 | }
|
31 | /**
|
32 | * @name objectProperties
|
33 | * @summary Assign get properties on the input object
|
34 | */
|
35 |
|
36 |
|
37 | function objectProperties(that, keys, getter) {
|
38 | for (let i = 0; i < keys.length; i++) {
|
39 | objectProperty(that, keys[i], k => getter(k, i));
|
40 | }
|
41 | } |
\ | No newline at end of file |