Skip to content
This repository was archived by the owner on Dec 15, 2022. It is now read-only.

Commit 2c1fe65

Browse files
author
Nathan Sobo
committed
Implement IconServices singleton with lazy getter
This avoids constructing this object at eval-time, which interferes with building Atom's v8 snapshot when this package is bundled. /cc @Alhadis
1 parent a0a4f67 commit 2c1fe65

File tree

3 files changed

+13
-9
lines changed

3 files changed

+13
-9
lines changed

lib/fuzzy-finder-view.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import path from 'path'
88
import SelectListView from 'atom-select-list'
99

1010
import {repositoryForPath} from './helpers'
11-
import IconServices from './icon-services'
11+
import getIconServices from './get-icon-services'
1212

1313
export default class FuzzyFinderView {
1414
constructor () {
@@ -96,7 +96,7 @@ export default class FuzzyFinderView {
9696
this.secondaryLine.appendChild(highlight(projectRelativePath, matches, 0))
9797
li.appendChild(this.secondaryLine)
9898

99-
IconServices.updateIcon(this)
99+
getIconServices().updateIcon(this)
100100
return li
101101
}
102102
})
Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,12 @@
11
const DefaultFileIcons = require('./default-file-icons')
22
const {Emitter, CompositeDisposable} = require('atom')
33

4+
let iconServices
5+
module.exports = function () {
6+
if (!iconServices) iconServices = new IconServices()
7+
return iconServices
8+
}
9+
410
class IconServices {
511
constructor () {
612
this.emitter = new Emitter()
@@ -55,5 +61,3 @@ class IconServices {
5561
}
5662
}
5763
}
58-
59-
module.exports = new IconServices()

lib/main.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
const {Disposable} = require('atom')
2-
const IconServices = require('./icon-services')
2+
const getIconServices = require('./get-icon-services')
33

44
module.exports = {
55
activate (state) {
@@ -49,13 +49,13 @@ module.exports = {
4949
},
5050

5151
consumeElementIcons (service) {
52-
IconServices.setElementIcons(service)
53-
return new Disposable(() => IconServices.resetElementIcons())
52+
getIconServices().setElementIcons(service)
53+
return new Disposable(() => getIconServices().resetElementIcons())
5454
},
5555

5656
consumeFileIcons (service) {
57-
IconServices.setFileIcons(service)
58-
return new Disposable(() => IconServices.resetFileIcons())
57+
getIconServices().setFileIcons(service)
58+
return new Disposable(() => getIconServices().resetFileIcons())
5959
},
6060

6161
serialize () {

0 commit comments

Comments
 (0)