@jdeighan/coffee-utils 11.0.1 → 11.0.2
Sign up to get free protection for your applications and to get access to all the features.
- package/package.json +1 -1
- package/src/coffee_utils.coffee +11 -2
- package/src/coffee_utils.js +17 -2
- package/src/taml.coffee +10 -6
- package/src/taml.js +14 -9
package/package.json
CHANGED
package/src/coffee_utils.coffee
CHANGED
@@ -162,13 +162,22 @@ export isBoolean = (x) ->
|
|
162
162
|
|
163
163
|
# ---------------------------------------------------------------------------
|
164
164
|
|
165
|
-
export isObject = (x) ->
|
165
|
+
export isObject = (x, lReqKeys=undef) ->
|
166
166
|
|
167
|
-
|
167
|
+
result = (typeof x == 'object') \
|
168
168
|
&& ! isString(x) \
|
169
169
|
&& ! isArray(x) \
|
170
170
|
&& ! isHash(x) \
|
171
171
|
&& ! isNumber(x)
|
172
|
+
if result
|
173
|
+
if defined(lReqKeys)
|
174
|
+
assert isArray(lReqKeys), "lReqKeys is not an array"
|
175
|
+
for key in lReqKeys
|
176
|
+
if ! x.hasOwnProperty(key)
|
177
|
+
return false
|
178
|
+
return true
|
179
|
+
else
|
180
|
+
return false
|
172
181
|
|
173
182
|
# ---------------------------------------------------------------------------
|
174
183
|
|
package/src/coffee_utils.js
CHANGED
@@ -177,8 +177,23 @@ export var isBoolean = function(x) {
|
|
177
177
|
};
|
178
178
|
|
179
179
|
// ---------------------------------------------------------------------------
|
180
|
-
export var isObject = function(x) {
|
181
|
-
|
180
|
+
export var isObject = function(x, lReqKeys = undef) {
|
181
|
+
var i, key, len1, result;
|
182
|
+
result = (typeof x === 'object') && !isString(x) && !isArray(x) && !isHash(x) && !isNumber(x);
|
183
|
+
if (result) {
|
184
|
+
if (defined(lReqKeys)) {
|
185
|
+
assert(isArray(lReqKeys), "lReqKeys is not an array");
|
186
|
+
for (i = 0, len1 = lReqKeys.length; i < len1; i++) {
|
187
|
+
key = lReqKeys[i];
|
188
|
+
if (!x.hasOwnProperty(key)) {
|
189
|
+
return false;
|
190
|
+
}
|
191
|
+
}
|
192
|
+
}
|
193
|
+
return true;
|
194
|
+
} else {
|
195
|
+
return false;
|
196
|
+
}
|
182
197
|
};
|
183
198
|
|
184
199
|
// ---------------------------------------------------------------------------
|
package/src/taml.coffee
CHANGED
@@ -4,7 +4,7 @@ import yaml from 'js-yaml'
|
|
4
4
|
|
5
5
|
import {assert, error, croak} from '@jdeighan/unit-tester/utils'
|
6
6
|
import {
|
7
|
-
undef, oneline, isString, chomp, escapeStr,
|
7
|
+
undef, defined, notdefined, oneline, isString, chomp, escapeStr,
|
8
8
|
} from '@jdeighan/coffee-utils'
|
9
9
|
import {untabify, tabify, splitLine} from '@jdeighan/coffee-utils/indent'
|
10
10
|
import {slurp} from '@jdeighan/coffee-utils/fs'
|
@@ -63,24 +63,28 @@ export taml = (text) ->
|
|
63
63
|
export fromTAML = taml
|
64
64
|
|
65
65
|
# ---------------------------------------------------------------------------
|
66
|
+
# --- a replacer is (key, value) -> newvalue
|
66
67
|
|
67
|
-
|
68
|
+
myReplacer = (name, value) ->
|
68
69
|
|
69
|
-
if
|
70
|
+
if isString(value)
|
71
|
+
return escapeStr(value)
|
72
|
+
else
|
70
73
|
return value
|
71
|
-
return escapeStr(value)
|
72
74
|
|
73
75
|
# ---------------------------------------------------------------------------
|
74
76
|
|
75
77
|
export toTAML = (obj, hOptions={}) ->
|
76
78
|
|
77
|
-
{useTabs, sortKeys, escape} = hOptions
|
79
|
+
{useTabs, sortKeys, escape, replacer} = hOptions
|
80
|
+
if notdefined(replacer)
|
81
|
+
replacer = myReplacer
|
78
82
|
str = yaml.dump(obj, {
|
79
83
|
skipInvalid: true
|
80
84
|
indent: 3
|
81
85
|
sortKeys: !!sortKeys
|
82
86
|
lineWidth: -1
|
83
|
-
replacer
|
87
|
+
replacer
|
84
88
|
})
|
85
89
|
if useTabs
|
86
90
|
str = str.replace(/ /g, "\t")
|
package/src/taml.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
// Generated by CoffeeScript 2.7.0
|
2
2
|
// taml.coffee
|
3
|
-
var
|
3
|
+
var myReplacer, squote;
|
4
4
|
|
5
5
|
import yaml from 'js-yaml';
|
6
6
|
|
@@ -12,6 +12,8 @@ import {
|
|
12
12
|
|
13
13
|
import {
|
14
14
|
undef,
|
15
|
+
defined,
|
16
|
+
notdefined,
|
15
17
|
oneline,
|
16
18
|
isString,
|
17
19
|
chomp,
|
@@ -90,25 +92,28 @@ export var taml = function(text) {
|
|
90
92
|
export var fromTAML = taml;
|
91
93
|
|
92
94
|
// ---------------------------------------------------------------------------
|
93
|
-
|
94
|
-
|
95
|
+
// --- a replacer is (key, value) -> newvalue
|
96
|
+
myReplacer = function(name, value) {
|
97
|
+
if (isString(value)) {
|
98
|
+
return escapeStr(value);
|
99
|
+
} else {
|
95
100
|
return value;
|
96
101
|
}
|
97
|
-
return escapeStr(value);
|
98
102
|
};
|
99
103
|
|
100
104
|
// ---------------------------------------------------------------------------
|
101
105
|
export var toTAML = function(obj, hOptions = {}) {
|
102
|
-
var escape, sortKeys, str, useTabs;
|
103
|
-
({useTabs, sortKeys, escape} = hOptions);
|
106
|
+
var escape, replacer, sortKeys, str, useTabs;
|
107
|
+
({useTabs, sortKeys, escape, replacer} = hOptions);
|
108
|
+
if (notdefined(replacer)) {
|
109
|
+
replacer = myReplacer;
|
110
|
+
}
|
104
111
|
str = yaml.dump(obj, {
|
105
112
|
skipInvalid: true,
|
106
113
|
indent: 3,
|
107
114
|
sortKeys: !!sortKeys,
|
108
115
|
lineWidth: -1,
|
109
|
-
replacer
|
110
|
-
return value;
|
111
|
-
}
|
116
|
+
replacer
|
112
117
|
});
|
113
118
|
if (useTabs) {
|
114
119
|
str = str.replace(/ /g, "\t");
|