Diversos utilitários para seu Gruntfile e suas tarefas.
Retorna o "tipo" do valor. Como o typeof
mas retorna o valor interno da [[Classe]]
. Resultados possíveis são "number"
, "string"
, "boolean"
, "function"
, "regexp"
, "array"
, "date"
, "error"
, "null"
, "undefined"
e o vasto "object"
.
grunt.util.kindOf(value)
Retorna uma nova instância Error (que pode ser lançada) com a mensagem adequada. Se um objeto Error for especificado em vez de uma message
, este objeto será retornado.
Além disso, se um objeto Error for especificado para origError
e o Grunt tiver sido executado com a opção --debug 9
, o stack original Error vai ser retornado.
grunt.util.error(message [, origError])
O caractere para avanço de linha, normalizado para o padrão atual do sistema operacional. (\r\n
no Windows, \n
em outros sistemas)
Fornecido uma string, retorna uma nova string com todos os avanços de linhas normalizados para o padrão atual do sistema operacional. (\r\n
no Windows, \n
em outros sistemas)
grunt.util.normalizelf(string)
Percorre recursivamente objetos e arrays, executando callbackFunction
para cada valor que não for um objeto. Se continueFunction
retornar false
, o objeto ou valor fornecido será ignorado.
grunt.util.recurse(object, callbackFunction, continueFunction)
Retorna a string str
repetida n
vezes.
grunt.util.repeat(n, str)
Recebido str
de "a/b"
, Se n
for 1
, retorna "a"
no lugar de "b"
. Você pode especificar um separador customizado se '/' não funcionar para você.
grunt.util.pluralize(n, str, separator)
Gera um processo filho, mantendo o controle dos seus stdout, stderr e códigos de saída. O método retorna uma referência ao filho gerado. Quando o filho existir, a função doneFunction
é chamada.
grunt.util.spawn(options, doneFunction)
O objeto options
possui as possíveis propriedades:
var options = {
// O comando a ser executado. Ele deve ser um caminho do sistema.
cmd: commandToExecute,
// Se especificado, o mesmo grunt bin que está em execução será gerado
// como um comando filho, no lugar da opção "cmd". O padrão é false.
grunt: boolean,
// Um array de argumentos para passar ao comando.
args: arrayOfArguments,
// Opções adicionais para o processo de criação do child_process Node.js.
opts: nodeSpawnOptions,
// Se o valor for definido e um erro ocorrer, ele vai ser utilizado como valor
// e null será passado como o valor do erro.
fallback: fallbackValue
};
A função doneFunction
aceita os possíveis argumentos:
function doneFunction(error, result, code) {
// Se o código de saída foi diferente de zero e um retorno não foi especificado, um objeto de erro,
// caso contrário, nulo.
error
// O objeto resultante é um objeto com as propriedades .stdout, .stderr,
// e .code (código de saída).
result
// Quando resultado é forçada para uma string, o valor é stdout se o código de saída for zero,
// fallback se o código de saída foi diferente de zero e um fallback foi especificado, ou stderr
// se o código de saída foi diferente de zero e um fallback for especificado.
String(result)
// O código de saída numérico.
code
}
Dado um array ou objeto array-like, retorna um array. Ótimo para converter objetos arguments
para arrays.
grunt.util.toArray(arrayLikeObject)
Normaliza ambas as funções que "retorna um valor" e "passa o resultado para um callback" para sempre passar o resultado a um callback especificado. Se a função original retornar um valor, esse valor será agora passado ao callback, depois de todos os argumentos predefinidos. Se a função original passou um valor para o callback, ela continuará a fazê-lo.
grunt.util.callbackify(syncOrAsyncFunction)
Este exemplo pode ilustar melhor:
function add1(a, b) {
return a + b;
}
function add2(a, b, callback) {
callback(a + b);
}
var fn1 = grunt.util.callbackify(add1);
var fn2 = grunt.util.callbackify(add2);
fn1(1, 2, function(result) {
console.log('1 plus 2 equals ' + result);
});
fn2(1, 2, function(result) {
console.log('1 plus 2 equals ' + result);
});
Uma biblioteca interna para resolver propriedades profundamente aninhadas em objetos.
Uma biblioteca interna para tarefas em execução.
Obsoleto
Todas as bibliotecas externas que estão listadas abaixo estão obsoletas.
Por favor, use o npm para gerenciar estas bibliotecas externas nas dependências do seu projeto.
Por exemplo, se você quiser usar a biblioteca Lo-Dash, instale-a primeiro npm install lodash
,
então use no seu Gruntfile
: var _ = require('lodash');
Obsoleto
grunt.util._.str
está disponível para os métodos que estão em conflito com os métodos Lo-Dash existentes.
Obsoleto
Async - Utilitários Async para o node e browser.
Obsoleto
JavaScript Hooker - Fuções Monkey-patch (hook) para depuração e outras coisas.