From 484e78f09605c161c5f756fe66c460afcf0dec50 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Wed, 25 Mar 2015 14:39:26 -0700 Subject: [PATCH] Conditionally include deprecations in Package --- src/package.coffee | 37 +++++++++++++++++++------------------ 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/src/package.coffee b/src/package.coffee index ebc771123..7b590aab4 100644 --- a/src/package.coffee +++ b/src/package.coffee @@ -4,10 +4,9 @@ _ = require 'underscore-plus' async = require 'async' CSON = require 'season' fs = require 'fs-plus' -EmitterMixin = require('emissary').Emitter {Emitter, CompositeDisposable} = require 'event-kit' Q = require 'q' -{deprecate} = require 'grim' +{includeDeprecations, deprecate} = require 'grim' ModuleCache = require './module-cache' ScopedProperties = require './scoped-properties' @@ -21,8 +20,6 @@ catch error # stylesheets, keymaps, grammar, editor properties, and menus. module.exports = class Package - EmitterMixin.includeInto(this) - @isBundledPackagePath: (packagePath) -> if atom.packages.devMode return false unless atom.packages.resourcePath.startsWith("#{process.resourcesPath}#{path.sep}") @@ -43,11 +40,11 @@ class Package metadata ?= {} metadata.name = packageName - if metadata.stylesheetMain? + if includeDeprecations and metadata.stylesheetMain? deprecate("Use the `mainStyleSheet` key instead of `stylesheetMain` in the `package.json` of `#{packageName}`", {packageName}) metadata.mainStyleSheet = metadata.stylesheetMain - if metadata.stylesheets? + if includeDeprecations and metadata.stylesheets? deprecate("Use the `styleSheets` key instead of `stylesheets` in the `package.json` of `#{packageName}`", {packageName}) metadata.styleSheets = metadata.stylesheets @@ -87,14 +84,6 @@ class Package onDidDeactivate: (callback) -> @emitter.on 'did-deactivate', callback - on: (eventName) -> - switch eventName - when 'deactivated' - deprecate 'Use Package::onDidDeactivate instead' - else - deprecate 'Package::on is deprecated. Use event subscription methods instead.' - EmitterMixin::on.apply(this, arguments) - ### Section: Instance Methods ### @@ -174,7 +163,7 @@ class Package if @mainModule? if @mainModule.config? and typeof @mainModule.config is 'object' atom.config.setSchema @name, {type: 'object', properties: @mainModule.config} - else if @mainModule.configDefaults? and typeof @mainModule.configDefaults is 'object' + else if includeDeprecations and @mainModule.configDefaults? and typeof @mainModule.configDefaults is 'object' deprecate """Use a config schema instead. See the configuration section of https://atom.io/docs/latest/hacking-atom-package-word-count and https://atom.io/docs/api/latest/Config for more details""" @@ -268,7 +257,7 @@ class Package [stylesheetPath, atom.themes.loadStylesheet(stylesheetPath, true)] getStylesheetsPath: -> - if fs.isDirectorySync(path.join(@path, 'stylesheets')) + if includeDeprecations and fs.isDirectorySync(path.join(@path, 'stylesheets')) deprecate("Store package style sheets in the `styles/` directory instead of `stylesheets/` in the `#{@name}` package", packageName: @name) path.join(@path, 'stylesheets') else @@ -339,7 +328,7 @@ class Package deferred = Q.defer() - if fs.isDirectorySync(path.join(@path, 'scoped-properties')) + if includeDeprecations and fs.isDirectorySync(path.join(@path, 'scoped-properties')) settingsDirPath = path.join(@path, 'scoped-properties') deprecate("Store package settings files in the `settings/` directory instead of `scoped-properties/`", packageName: @name) else @@ -467,7 +456,7 @@ class Package else if _.isArray(commands) @activationCommands[selector].push(commands...) - if @metadata.activationEvents? + if includeDeprecations and @metadata.activationEvents? deprecate """ Use `activationCommands` instead of `activationEvents` in your package.json Commands should be grouped by selector as follows: @@ -585,3 +574,15 @@ class Package stack = error.stack ? error atom.notifications.addFatalError(message, {stack, detail, dismissable: true}) + +if includeDeprecations + EmitterMixin = require('emissary').Emitter + EmitterMixin.includeInto(Package) + + Package::on = (eventName) -> + switch eventName + when 'deactivated' + deprecate 'Use Package::onDidDeactivate instead' + else + deprecate 'Package::on is deprecated. Use event subscription methods instead.' + EmitterMixin::on.apply(this, arguments)