/*jslint vars: true, plusplus: true, devel: true, nomen: true, regexp: true, indent: 4, maxerr: 50 */ /*global define, $, brackets */ /** * Template for managers * @class Template * @classdesc Template for managers to follow. Since you are working with nodejs * and most things are asyncronous, return a jQuery deferred (ES6 promises will come when the Chrome * version is updated in brackets). Remember to resolve your deferred. Either resolve a single * object or an array of objects. * * Take a look at the bower class for examples of this. * * To use Node, each command must be wrapped in a done function * * Node.done(function(nodeComamnd) { * var ls = nodeComamnd(dir._path, 'ls', ['-l', '-a']); * ls.fail(function (err) { * console.log('command failed', err); * }); * ls.done(function (stdout) { * console.log(stdout); * }); * }); * * @see domain * @see bower */ define(function (require, exports, module) { 'use strict'; // Dependencies var NodeConnection = brackets.getModule("utils/NodeConnection"), ExtensionUtils = brackets.getModule("utils/ExtensionUtils"), ProjectManager = brackets.getModule("project/ProjectManager"), projectDirectory = ProjectManager.getProjectRoot(), Node = require("modules/Node"), Result = require("modules/Result"), Status = require("modules/Status"), DOMAIN = "brackets-cardboard", PATH = projectDirectory._path, MANAGER = "template.js", //same as your file name NAME = "Template"; //display name Node.fail(function (err){ console.error('Error with Node', err); }); /** * Install command * @memberof Template * @param {String} packageName A unique name of a package/dependency to install * @return {Status} Status object */ function install (packageName) { } /** * Uninstall command * @memberof Template * @param {String} packageName A unique name of a package/dependency to uninstall * @return {Status} Status object */ function uninstall (packageName) { } /** * Update command * @memberof Template * @param {String} packageName A unique name of a package/dependency to update * @return {Status} Status object */ function update (packageName) { } /** * Search for package/dependency * @memberof Template * @param {String} query Search query * @return {Array} Array of Result objects */ function search (query) { } /** * Lists installed packages/dependencies * @memberof Template * @return {Array} Array of Result objects */ function getInstalled () { } // Helper methods /** * Determines if the manager is available/reachable from brackets-cardboard * @memberof Template * @return {Object} Object with keys of manager and displayAs */ function isAvailable () { return { "manager" : MANAGER, "displayAs" : NAME }; } /** * Gets the README URL of a package/dependency * @memberof Template * @param {String} packageName A unique name of a package/dependency * @return {String} README URL of package/dependency */ function getReadme (packageName) { } /** * Gets the URL of a package/dependency * @memberof Template * @param {String} packageName A unique name of a package/dependency * @return {String} URL of package/dependency */ function getUrl (packageName) { } exports.install = install; exports.uninstall = uninstall; exports.update = update; exports.search = search; exports.getInstalled = getInstalled; exports.isAvailable = isAvailable; exports.getReadme = getReadme; exports.getUrl = getUrl; }); //sdg