@mountainpass/hooked-cli
Version:
A tool for runnable scripts
79 lines (78 loc) • 2.64 kB
JavaScript
export const checkIfRecognisedAsOldScript = (script) => {
// if old script type, suggest a fix...
if (typeof script.$stdin === 'string') {
throw new Error('Old script format detected. Please use $ask instead of $stdin.');
}
};
export const hasEnvScript = (script) => {
return typeof script !== 'undefined' && isDefined(script.$env);
};
export const isJobsSerialScript = (script) => {
return Array.isArray(script.$jobs_serial);
};
export const isWritePathScript = (script) => {
return typeof script.$path === 'string';
};
export const isCmdScript = (script) => {
return typeof script.$cmd === 'string';
};
export const isDockerCmdScript = (script) => {
return typeof script.$cmd === 'string' && typeof script.$image === 'string';
};
export const isSSHCmdScript = (script) => {
return typeof script.$cmd === 'string' && typeof script.$ssh === 'string';
};
export const isEnvScript = (script) => {
return typeof script.$env !== 'undefined';
};
export const isResolveScript = (script) => {
return typeof script.$resolve === 'string';
};
export const isStdinScript = (script) => {
return typeof script.$ask === 'string';
};
export const isInternalScript = (script) => {
return typeof script.$internal === 'function';
};
export const isScript = (script) => {
return (typeof script === 'object' || typeof script === 'function') &&
script !== null &&
(isWritePathScript(script) ||
isCmdScript(script) ||
isJobsSerialScript(script) ||
isStdinScript(script) ||
isEnvScript(script) ||
isResolveScript(script) ||
isInternalScript(script));
};
export const isStdinScriptFieldsMapping = (script) => {
return typeof script !== 'undefined' &&
isString(script.name) &&
isString(script.value) &&
(isString(script.short) || typeof script.short === 'undefined');
};
export const isUndefined = (o) => typeof o === 'undefined';
export const isDefined = (o) => {
return typeof o !== 'undefined' && o !== null;
};
export const isDefinedAny = (o) => {
return typeof o !== 'undefined' && o !== null;
};
export const isString = (o) => {
return typeof o === 'string';
};
export const isNumber = (o) => {
return typeof o === 'number';
};
export const isBoolean = (o) => {
return typeof o === 'boolean';
};
export const isObject = (o) => {
return typeof o === 'object';
};
export const isFunction = (o) => {
return typeof o === 'function';
};
export const sortCaseInsensitive = (a, b) => {
return a.localeCompare(b, undefined, { sensitivity: 'base' });
};