Script commands may now be added to a package.
This adds the pkgBuilder.addCommand() method, which permits adding a command (such as 'eslint':'eslint ./') to the npm scripts list. Change-Id: I0ebfa9cbc0a526363cd2c8d1a0b697f5748e0771
This commit is contained in:
		@@ -120,12 +120,31 @@
 | 
			
		||||
    return defaultValue || undefined;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * Create a specific NPM script command, invoked by 'npm run <name>' or 'npm <name>'.
 | 
			
		||||
   *
 | 
			
		||||
   * @param {String} name The name of the script.
 | 
			
		||||
   * @param {String} command The command to invoke.
 | 
			
		||||
   * @returns {void}
 | 
			
		||||
   */
 | 
			
		||||
  function addCommand (name, command) {
 | 
			
		||||
 | 
			
		||||
    // sanity check, does 'scripts' exist?
 | 
			
		||||
    if (!pkgContent.hasOwnProperty('scripts')) {
 | 
			
		||||
      pkgContent.scripts = {};
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // Save/Override the command.
 | 
			
		||||
    pkgContent.scripts[name] = command;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  module.exports = {
 | 
			
		||||
    fromJSON: readPackage,
 | 
			
		||||
    toJSON: writePackage,
 | 
			
		||||
    setValues: setValues,
 | 
			
		||||
    getValues: getValues,
 | 
			
		||||
    getValue: getValue,
 | 
			
		||||
    addDependencies: addDependencies
 | 
			
		||||
    addDependencies: addDependencies,
 | 
			
		||||
    addCommand: addCommand
 | 
			
		||||
  };
 | 
			
		||||
})();
 | 
			
		||||
 
 | 
			
		||||
@@ -187,5 +187,25 @@
 | 
			
		||||
        expect(builder.getValues()).toEqual({dependencies: {}});
 | 
			
		||||
      });
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    describe('addCommand', function () {
 | 
			
		||||
      it('should add a command', function () {
 | 
			
		||||
        builder.fromJSON('{"scripts":{}}');
 | 
			
		||||
        builder.addCommand('foo', 'bar');
 | 
			
		||||
        expect(builder.getValue('scripts').foo).toBe('bar');
 | 
			
		||||
      });
 | 
			
		||||
 | 
			
		||||
      it('should overwrite an existing command', function () {
 | 
			
		||||
        builder.fromJSON('{"scripts":{"foo":"bar"}}');
 | 
			
		||||
        builder.addCommand('foo', 'lol');
 | 
			
		||||
        expect(builder.getValue('scripts').foo).toBe('lol');
 | 
			
		||||
      });
 | 
			
		||||
 | 
			
		||||
      it('should create the scripts hash if it doesn\'t exist', function () {
 | 
			
		||||
        builder.fromJSON('{}');
 | 
			
		||||
        builder.addCommand('foo', 'bar');
 | 
			
		||||
        expect(builder.getValue('scripts')).toBeDefined();
 | 
			
		||||
      });
 | 
			
		||||
    });
 | 
			
		||||
  });
 | 
			
		||||
})();
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user