Skip to content

Commit 426ba9b

Browse files
committed
feat(objects): add 2 new methods for object return by toEnum function
The toEnum function now return enum with method toString, includes that check if the given value can be one of the enum, and a types method that return the enum keys.
1 parent eefd543 commit 426ba9b

1 file changed

Lines changed: 31 additions & 13 deletions

File tree

sources/cores/objects.js

Lines changed: 31 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -219,20 +219,38 @@ export function createInterval ( particles, path, interval ) {
219219

220220
export function toEnum ( enumValues ) {
221221

222-
return Object.freeze( Object.defineProperty( enumValues, 'toString', {
223-
configurable: false,
224-
enumerable: false,
225-
writable: false,
226-
value: function _toString () {
227-
228-
const keys = Object.keys( this )
229-
let result = ''
230-
for ( let index = 0, numberOfValues = keys.length ; index < numberOfValues ; index++ ) {
231-
result += `${keys[ index ]}, `
232-
}
233-
result = result.slice( 0, -2 )
234-
return result
222+
return Object.freeze( Object.defineProperties( enumValues, {
223+
toString: {
224+
configurable: false,
225+
enumerable: false,
226+
writable: false,
227+
value: function _toString () {
228+
229+
const keys = Object.keys( this )
230+
let result = ''
231+
for ( let index = 0, numberOfValues = keys.length ; index < numberOfValues ; index++ ) {
232+
result += `${keys[ index ]}, `
233+
}
234+
result = result.slice( 0, -2 )
235+
return result
235236

237+
}
238+
},
239+
includes: {
240+
configurable: false,
241+
enumerable: false,
242+
writable: false,
243+
value: function _includes ( key ) {
244+
return Object.values( this ).includes( key )
245+
}
246+
},
247+
types: {
248+
configurable: false,
249+
enumerable: false,
250+
writable: false,
251+
value: function _types () {
252+
return Object.keys( this )
253+
}
236254
}
237255
} ) )
238256

0 commit comments

Comments
 (0)