diff --git a/src/flux/models/account.coffee b/src/flux/models/account.coffee index 102893ae5..4fed98530 100644 --- a/src/flux/models/account.coffee +++ b/src/flux/models/account.coffee @@ -1,6 +1,8 @@ ModelWithMetadata = require './model-with-metadata' Attributes = require '../attributes' _ = require 'underscore' +CategoryStore = null +Contact = null ### Public: The Account model represents a Account served by the Nylas Platform API. @@ -80,14 +82,14 @@ class Account extends ModelWithMetadata # Returns a {Contact} model that represents the current user. me: -> - Contact = require './contact' + Contact ?= require './contact' return new Contact accountId: @id name: @name email: @emailAddress meUsingAlias: (alias) -> - Contact = require './contact' + Contact ?= require './contact' return @me() unless alias return Contact.fromString(alias, accountId: @id) @@ -133,15 +135,15 @@ class Account extends ModelWithMetadata return @provider canArchiveThreads: -> - CategoryStore = require '../stores/category-store' + CategoryStore ?= require '../stores/category-store' CategoryStore.getArchiveCategory(@)? canTrashThreads: -> - CategoryStore = require '../stores/category-store' + CategoryStore ?= require '../stores/category-store' CategoryStore.getTrashCategory(@)? defaultFinishedCategory: -> - CategoryStore = require '../stores/category-store' + CategoryStore ?= require '../stores/category-store' preferDelete = NylasEnv.config.get('core.reading.backspaceDelete') archiveCategory = CategoryStore.getArchiveCategory(@) trashCategory = CategoryStore.getTrashCategory(@) diff --git a/src/flux/models/file.coffee b/src/flux/models/file.coffee index f710548a9..62214a133 100644 --- a/src/flux/models/file.coffee +++ b/src/flux/models/file.coffee @@ -3,6 +3,7 @@ Model = require './model' Actions = require '../actions' Attributes = require '../attributes' _ = require 'underscore' +RegExpUtils = null ### Public: File model represents a File object served by the Nylas Platform API. @@ -68,7 +69,7 @@ class File extends Model return "Unnamed Attachment" safeDisplayName: -> - RegExpUtils = require '../../regexp-utils' + RegExpUtils ?= require '../../regexp-utils' return @displayName().replace(RegExpUtils.illegalPathCharactersRegexp(), '-') # Public: Returns the file extension that should be used for this file. diff --git a/src/flux/models/query-subscription-pool.coffee b/src/flux/models/query-subscription-pool.coffee index 636dfaad9..75574e668 100644 --- a/src/flux/models/query-subscription-pool.coffee +++ b/src/flux/models/query-subscription-pool.coffee @@ -1,5 +1,6 @@ _ = require 'underscore' QuerySubscription = require './query-subscription' +DatabaseStore = null ### Public: The QuerySubscriptionPool maintains a list of all of the query @@ -75,7 +76,7 @@ class QuerySubscriptionPool return query.sql() _setup: => - DatabaseStore = require '../stores/database-store' + DatabaseStore ?= require '../stores/database-store' DatabaseStore.listen @_onChange _onChange: (record) => diff --git a/src/flux/nylas-api.coffee b/src/flux/nylas-api.coffee index e4cc4a888..0f024bf5e 100644 --- a/src/flux/nylas-api.coffee +++ b/src/flux/nylas-api.coffee @@ -305,7 +305,6 @@ class NylasAPI # Step 3: Retrieve any existing models from the database for the given IDs. ids = _.pluck(unlockedJSONs, 'id') - DatabaseStore = require './stores/database-store' DatabaseStore.findAll(klass).where(klass.attributes.id.in(ids)).then (models) -> existingModels = {} existingModels[model.id] = model for model in models diff --git a/src/flux/stores/database-store.coffee b/src/flux/stores/database-store.coffee index da8028274..5e2ffdaa5 100644 --- a/src/flux/stores/database-store.coffee +++ b/src/flux/stores/database-store.coffee @@ -13,6 +13,7 @@ PriorityUICoordinator = require '../../priority-ui-coordinator' DatabaseSetupQueryBuilder = require './database-setup-query-builder' DatabaseChangeRecord = require './database-change-record' DatabaseTransaction = require './database-transaction' +JSONBlob = null {ipcRenderer} = require 'electron' @@ -436,7 +437,7 @@ class DatabaseStore extends NylasStore Promise.resolve(result) findJSONBlob: (id) -> - JSONBlob = require '../models/json-blob' + JSONBlob ?= require '../models/json-blob' new JSONBlobQuery(JSONBlob, @).where({id}).one() # Private: Mutation hooks allow you to observe changes to the database and diff --git a/src/flux/stores/draft-factory.coffee b/src/flux/stores/draft-factory.coffee index 160b440ee..cf8875af4 100644 --- a/src/flux/stores/draft-factory.coffee +++ b/src/flux/stores/draft-factory.coffee @@ -6,6 +6,7 @@ AccountStore = require './account-store' ContactStore = require './contact-store' MessageStore = require './message-store' FocusedPerspectiveStore = require './focused-perspective-store' +DraftStore = null InlineStyleTransformer = require '../../services/inline-style-transformer' SanitizeTransformer = require '../../services/sanitize-transformer' @@ -166,7 +167,7 @@ class DraftFactory return Promise.resolve(candidateDrafts.pop()) else if behavior is 'prefer-existing-if-pristine' - DraftStore = require './draft-store' + DraftStore ?= require './draft-store' return Promise.all(candidateDrafts.map (candidateDraft) => DraftStore.sessionForClientId(candidateDraft.clientId) ).then (sessions) => diff --git a/src/flux/stores/draft-store-proxy.coffee b/src/flux/stores/draft-store-proxy.coffee index 2394402d2..3df4bffb5 100644 --- a/src/flux/stores/draft-store-proxy.coffee +++ b/src/flux/stores/draft-store-proxy.coffee @@ -5,6 +5,7 @@ ExtensionRegistry = require '../../extension-registry' {Listener, Publisher} = require '../modules/reflux-coffee' SyncbackDraftTask = require '../tasks/syncback-draft-task' CoffeeHelpers = require '../coffee-helpers' +DraftStore = null _ = require 'underscore' @@ -93,7 +94,7 @@ class DraftStoreProxy @include Listener constructor: (@draftClientId, draft = null) -> - DraftStore = require './draft-store' + DraftStore ?= require './draft-store' @listenTo DraftStore, @_onDraftChanged @_draft = false @@ -144,8 +145,6 @@ class DraftStoreProxy # Reverse draft transformations performed by third-party plugins when the draft # was last saved to disk - DraftStore = require './draft-store' - return Promise.each ExtensionRegistry.Composer.extensions(), (ext) -> if ext.applyTransformsToDraft and ext.unapplyTransformsToDraft Promise.resolve(ext.unapplyTransformsToDraft({draft})).then (untransformed) -> diff --git a/src/services/inline-style-transformer.coffee b/src/services/inline-style-transformer.coffee index 9be9566d6..0333c91fd 100644 --- a/src/services/inline-style-transformer.coffee +++ b/src/services/inline-style-transformer.coffee @@ -2,6 +2,7 @@ RegExpUtils = require '../regexp-utils' crypto = require 'crypto' _ = require 'underscore' +userAgentDefault = null class InlineStyleTransformer constructor: -> @@ -34,7 +35,7 @@ class InlineStyleTransformer i = body.search(RegExpUtils.looseStyleTag()) return body if i is -1 - userAgentDefault = require '../chrome-user-agent-stylesheet-string' + userAgentDefault ?= require '../chrome-user-agent-stylesheet-string' return "#{body[0...i]}#{body[i..-1]}" _onInlineStylesResult: (event, {html, key}) =>