M
M
Modélico
Search…
Proxies
Most built-in types in Modélico (List, Set, Map, EnumMap and Date) are wrappers around native structures. Except for a few built-in basic methods, it is necessary to retrieve those structures to access their properties and methods (eg. list.inner().reduce).
However, if your environment supports ES2015 proxies, Modélico provides utilities to get around this:
  • M.proxyDate
  • M.proxyList
  • M.proxySet
  • M.proxyMap, M.proxyEnumMap, M.proxyStringMap
Example:
import M from 'modelico'
const p = M.proxyDate
const defaultDate = M.Date.of(new Date('1988-04-16'))
const proxiedDate = p(defaultDate)
// without proxies
defaultDate.inner().getFullYear() // => 1988
// with proxies
proxiedDate.getFullYear() // => 1988
Please note that native methods that modify the structure in place will instead return a new Modélico object:
// without proxies
const tmpDate = defaultDate.inner()
tmpDate.setFullYear(2000)
const defaultDate2 = M.Date.of(tmpDate)
defaultDate.inner().getFullYear() // => 1988 (still)
defaultDate2.inner().getFullYear() // => 2000
// with proxies
const proxiedDate2 = proxiedDate.setFullYear(2000)
proxiedDate.getFullYear() // => 1988 (still)
proxiedDate2.getFullYear() // => 2000
See proxy tests for more details.
Copy link