feat(babel6): Fix default loading in nylas exports and component kit

This commit is contained in:
Evan Morikawa 2016-05-03 17:53:07 -07:00
parent e355971dd2
commit 3a6f3b9302
2 changed files with 20 additions and 8 deletions

View file

@ -1,20 +1,24 @@
# Publically exposed Nylas UI Components
class NylasComponentKit
@default = (requireValue) -> requireValue.default ? requireValue
@load = (prop, path) ->
Object.defineProperty @prototype, prop,
get: -> require "../components/#{path}"
get: ->
NylasComponentKit.default(require "../components/#{path}")
@loadFrom = (prop, path) ->
Object.defineProperty @prototype, prop,
get: ->
exported = require "../components/#{path}"
exported = NylasComponentKit.default(require "../components/#{path}")
return exported[prop]
@loadDeprecated = (prop, path, {instead} = {}) ->
{deprecate} = require '../deprecate-utils'
Object.defineProperty @prototype, prop,
get: deprecate prop, instead, @, ->
exported = require "../components/#{path}"
exported = NylasComponentKit.default(require "../components/#{path}")
return exported
enumerable: true

View file

@ -3,34 +3,42 @@ StoreRegistry = require('../store-registry').default
DatabaseObjectRegistry = require('../database-object-registry').default
class NylasExports
@default = (requireValue) -> requireValue.default ? requireValue
# Will lazy load when requested
@lazyLoad = (prop, path) ->
Object.defineProperty @, prop,
get: -> require("../#{path}")
get: ->
NylasExports.default(require("../#{path}"))
enumerable: true
@lazyLoadCustomGetter = (prop, get) ->
Object.defineProperty @, prop, {get, enumerable: true}
@lazyLoadAndRegisterStore = (klassName, path) ->
constructorFactory = -> require("../flux/stores/#{path}")
constructorFactory = ->
NylasExports.default(require("../flux/stores/#{path}"))
StoreRegistry.register(klassName, constructorFactory)
@lazyLoad(klassName, "flux/stores/#{path}")
@lazyLoadAndRegisterModel = (klassName, path) ->
constructorFactory = -> require("../flux/models/#{path}")
constructorFactory = ->
NylasExports.default(require("../flux/models/#{path}"))
DatabaseObjectRegistry.register(klassName, constructorFactory)
@lazyLoad(klassName, "flux/models/#{path}")
@lazyLoadAndRegisterTask = (klassName, path) ->
constructorFactory = -> require("../flux/tasks/#{path}")
constructorFactory = ->
NylasExports.default(require("../flux/tasks/#{path}"))
TaskRegistry.register(klassName, constructorFactory)
@lazyLoad(klassName, "flux/tasks/#{path}")
@lazyLoadDeprecated = (prop, path, {instead} = {}) ->
{deprecate} = require '../deprecate-utils'
Object.defineProperty @, prop,
get: deprecate prop, instead, @, -> require("../#{path}")
get: deprecate prop, instead, @, ->
NylasExports.default(require("../#{path}"))
enumerable: true
# Actions