function validatePlugins(pluginInfos) { var hadWarning = false; pluginInfos.forEach(function(info) { var npmInfo = info.npmInfo; var pluginInfo = info.pluginInfo; info.ownersToRemove = []; info.ownersToAdd = []; if (npmInfo) { var warnings = []; if (npmInfo.name != pluginInfo.id) { warnings.push('Plugin ID is different on NPM: ' + npmInfo.name); } var latestVer = npmInfo['dist-tags']['latest']; var expectedLocalVer = semver.inc(latestVer, 'patch') + '-dev'; if (pluginInfo.version != latestVer && pluginInfo.version != expectedLocalVer) { warnings.push('Published version is ' + latestVer + ' but local version is ' + pluginInfo.version); } var expectedAttachment = pluginInfo.id + '-' + latestVer + '.tgz'; var attachments = npmInfo._attachments; if (!attachments[expectedAttachment] || attachments[expectedAttachment].length < 1000) { warnings.push('Looks to be missing .tgz!'); } info.npmOwners.forEach(function(owner) { if (!TARGET_OWNERS[owner]) { warnings.push('Has extra owner "' + owner + '"'); info.ownersToRemove.push(owner); } }); Object.keys(TARGET_OWNERS).forEach(function(owner) { if (info.npmOwners.indexOf(owner) == -1) { warnings.push('Missing owner "' + owner + '"'); info.ownersToAdd.push(owner); } }); if (warnings.length) { warnings.forEach(function(msg) { console.warn(pluginInfo.id + ': ' + msg); }); hadWarning = true; } else { console.log(pluginInfo.id + '@' + latestVer + ': Everything checks out.'); } } else { console.log(pluginInfo.id + ': Is not published yet.'); } }); return Q(hadWarning); }
function fixPlugins(pluginInfos) { var ret = Q(); pluginInfos.forEach(function(info) { var pluginId = info.pluginInfo.id; info.ownersToRemove.forEach(function(owner) { ret = ret.then(function() { console.log('plugman owner rm ' + owner + ' ' + pluginId); return cordovalib.plugman.raw.owner(['rm', owner, pluginId]); }); }); info.ownersToAdd.forEach(function(owner) { ret = ret.then(function() { console.log('plugman owner add ' + owner + ' ' + pluginId); return cordovalib.plugman.raw.owner(['add', owner, pluginId]); }); }); }); return ret; }
Document.prototype.read = function() { if (!this.path) { return Q(""); } return Q.nfbind(this.service.invoke)('read', this.path, this.creatorId); };
defer.resolve(doc); }); return defer.promise; } var testKeyword = 'mobile phone', testPages = 3, testPageSize = 10, storedKw; // Connect to database mongoose.connect(config.mongo.uri, config.mongo.options); Q([]) .then(function(){ return saveKeyword(testKeyword); }) .then(function(savedKeyword){ console.log(savedKeyword); storedKw = savedKeyword; return checkKeyword(storedKw.keyword, testPages, testPageSize); }) .then(function(checkResult){ return saveKeywordCheck(storedKw._id, checkResult); }) .catch(function(err){ if(util.isError(err)) {
var filter = function(stations) { return q(stations.filter(function(station) { return !!station.location; })); };
beforeDataTrigger = function() {return Q(true)};
afterDataTrigger = function() {return Q(true)};
return mapAsList(arr, (value, key) => { return Q(iter(value, key)) .then((result) => { return [key, result]; }); })
beforeEach(() => { sandbox.stub(promiseUtils); promiseUtils.sequence.returns(q()); sandbox.stub(temp); });
function check() { if (api.requests.length === count) { return Q(api.requests); } return Q.delay(10).then(check); }
.then(function(user) { return Q(user.destroy()) .then(function() { res.json(200, {}) }) })
BitGo.prototype.reject = function(msg, callback) { return Q().thenReject(new Error(msg)).nodeify(callback); };
function formatItem(info, item) { var objformat = dataobjformatters.format; return Q(objformat(item, info.pickList.get('formatter'))) .then(function(title) { return {value: item.url(), title: title}; }); }
// From table picklist; // function fromTable(info) { var plModel = schema.getModel(info.pickList.get('tablename')); var plItemCollection = new plModel.LazyCollection({domainfilter: true}); return Q(plItemCollection.fetch({ limit: info.limit })) .then(function() { return formatItems(info, plItemCollection); }); }
Document.prototype.write = function(content) { if (!this.path) { return Q(null); } return Q.nfbind(this.service.invoke)('write', this.path, content, this.creatorId); };
isEnabled: function (selectedItemIds) { return Q(action.hasPropertyValue('enabled') ? invokeProperty(selectedItemIds, function () { return action.propertyValue('enabled'); }) : true).then(function (v) { return !!v }); },
isHidden: function (selectedItemIds) { return Q(action.hasPropertyValue('hidden') ? invokeProperty(selectedItemIds, function () { return action.propertyValue('hidden'); }) : false).then(function (v) { return !!v }); },
return torrenter.removeTorrent(item, true).then(function() { return Q(undefined); }).catch(function(error) {
return function(...args) { return Q() .then(() => { return func(...args); }); };
square(10).then(function(result) { //Transform result data and continue chaining var transformedData = result / 2; return Q(transformedData); })
const hook_preSave = function(next, options) { //console.log('PRE-SAVE HOOK %j', this._id); if(this.__noon_status) { //console.log('DUPLICATE PRE-SAVE %j', this._id); return next(); } var THIS = this; var isUpdate = !this.isNew; //Hang onto some info we need to retain for the "post" hook this.__noon_status = { options, isUpdate }; var beforeDataTrigger; if(options.skipTriggers) { beforeDataTrigger = function() {return Q(true)}; } else { beforeDataTrigger = datatrigger[isUpdate ? 'processBeforeUpdate' : 'processBeforeCreate']; if(options.currentUser) { THIS._current_user = options.currentUser; } } var keyFilter; if(options.filterTriggers) { keyFilter = options.filterTriggers; } var firstPromise; if(isUpdate) { //Grab prev version firstPromise = db[THIS._bo_meta_data.class_name].findOne({_id:THIS._id}).exec().then(function(result) { if(!result) { console.log('Save called on deleted object: %s.%s', THIS._bo_meta_data.class_name, THIS._id); return next(new Error("$update-on-deleted")); } //Check that the version id matches: var newVer = new VersionId(THIS.__ver); var currVer = new VersionId(result.__ver); if(!currVer.relationshipTo(newVer).same) { console.log('Version mismatch on %s.%s - THIS: %s current: %s', THIS._bo_meta_data.class_name, THIS._id, THIS.__ver, result.__ver); return next(new Error("$version-mismatch-error")); } THIS._previous = {__ver:result.__ver}; for(var fieldName in THIS._bo_meta_data.type_desc_map) { if(fieldName.indexOf('_') !== 0) THIS._previous[fieldName] = result[fieldName]; } }); } else { firstPromise = Q(true); } firstPromise .then(beforeDataTrigger.bind(null, THIS, keyFilter, options)) //invoke "before" data triggers .then( function() { //console.log("SAVE after 'before' triggers: %j", THIS); FieldTypeService.processToDb(THIS); //"Increment" version id if(options.useVersionId) { THIS.__ver = options.useVersionId; //New one may be provided by caller (for replication, bootstrap) } else { if(isUpdate) { var vid = new VersionId(THIS._previous.__ver); vid.increment(); THIS.__ver = vid.toString(); } else { THIS.__ver = VersionId.newVersionIdString(); } } next(); }, function(err) { err = err instanceof Error ? err : new Error(err); next(err); } ); };
it('should demonstrate Q.isPromise', function (done) { //NOTE: This checks if Q promise specifically expect(Q.isPromise(true)).toBeFalsy(); expect(Q.isPromise(Q(999))).toBeTruthy(); done(); });
module.exports.check_requirements = function(project_root) { return Q(); // Requirements always met. };
it('should demonstrate Q.isPromiseAlike', function (done) { //NOTE: This checks if a promise (i.e., that has a then function) expect(Q.isPromiseAlike(true)).toBeFalsy(); expect(Q.isPromiseAlike(Q(999))).toBeTruthy(); done(); });
var sm = createSessionManager(function(mocks){ mocks['q-io/fs'].exists = sinon.stub().returns(Q(false)); });
it('should demonstrate promise.all', function (done) { Q.all([Q(), Q(999)]).done(function (result) { expect(result).toEqual([ undefined, 999 ]); done(); }); });
return prepareTemplate(scriptContent).then(function(template) { return Q({ request: { template: template, context: reporter.context }, response: {} }); });
.then(function() { // Create a convenience gitignore shelljs.cp('-f', path.join(ccaRoot, 'templates', 'DEFAULT_GITIGNORE'), path.join('.', '.gitignore')); return Q(); })
return steps.reduce(Q.when, Q()).then(function () { return Q(that); });
refundPledge: function(pledge,options){ // There's no refunding to do! // Credit Card will never take anything that's not claimed return Q(true); },