simple git installed
This commit is contained in:
1 parent
e2a8f4be8e
commit
f2e744cb7e
276 files changed
+11110
-1
No files matched your search
+112
@@ -0,0 +1,112 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.asNumber = exports.asStringArray = exports.asArray = exports.objectToString = exports.remove = exports.append = exports.folderExists = exports.forEachLineWithContent = exports.toLinesWithContent = exports.last = exports.first = exports.splitOn = exports.isUserFunction = exports.asFunction = exports.NOOP = void 0;
|
||||
const file_exists_1 = require("@kwsites/file-exists");
|
||||
const NOOP = () => {
|
||||
};
|
||||
exports.NOOP = NOOP;
|
||||
/**
|
||||
* Returns either the source argument when it is a `Function`, or the default
|
||||
* `NOOP` function constant
|
||||
*/
|
||||
function asFunction(source) {
|
||||
return typeof source === 'function' ? source : exports.NOOP;
|
||||
}
|
||||
exports.asFunction = asFunction;
|
||||
/**
|
||||
* Determines whether the supplied argument is both a function, and is not
|
||||
* the `NOOP` function.
|
||||
*/
|
||||
function isUserFunction(source) {
|
||||
return (typeof source === 'function' && source !== exports.NOOP);
|
||||
}
|
||||
exports.isUserFunction = isUserFunction;
|
||||
function splitOn(input, char) {
|
||||
const index = input.indexOf(char);
|
||||
if (index <= 0) {
|
||||
return [input, ''];
|
||||
}
|
||||
return [
|
||||
input.substr(0, index),
|
||||
input.substr(index + 1),
|
||||
];
|
||||
}
|
||||
exports.splitOn = splitOn;
|
||||
function first(input, offset = 0) {
|
||||
return isArrayLike(input) && input.length > offset ? input[offset] : undefined;
|
||||
}
|
||||
exports.first = first;
|
||||
function last(input, offset = 0) {
|
||||
if (isArrayLike(input) && input.length > offset) {
|
||||
return input[input.length - 1 - offset];
|
||||
}
|
||||
}
|
||||
exports.last = last;
|
||||
function isArrayLike(input) {
|
||||
return !!(input && typeof input.length === 'number');
|
||||
}
|
||||
function toLinesWithContent(input, trimmed = true, separator = '\n') {
|
||||
return input.split(separator)
|
||||
.reduce((output, line) => {
|
||||
const lineContent = trimmed ? line.trim() : line;
|
||||
if (lineContent) {
|
||||
output.push(lineContent);
|
||||
}
|
||||
return output;
|
||||
}, []);
|
||||
}
|
||||
exports.toLinesWithContent = toLinesWithContent;
|
||||
function forEachLineWithContent(input, callback) {
|
||||
return toLinesWithContent(input, true).map(line => callback(line));
|
||||
}
|
||||
exports.forEachLineWithContent = forEachLineWithContent;
|
||||
function folderExists(path) {
|
||||
return file_exists_1.exists(path, file_exists_1.FOLDER);
|
||||
}
|
||||
exports.folderExists = folderExists;
|
||||
/**
|
||||
* Adds `item` into the `target` `Array` or `Set` when it is not already present.
|
||||
*/
|
||||
function append(target, item) {
|
||||
if (Array.isArray(target)) {
|
||||
if (!target.includes(item)) {
|
||||
target.push(item);
|
||||
}
|
||||
}
|
||||
else {
|
||||
target.add(item);
|
||||
}
|
||||
return item;
|
||||
}
|
||||
exports.append = append;
|
||||
function remove(target, item) {
|
||||
if (Array.isArray(target)) {
|
||||
const index = target.indexOf(item);
|
||||
if (index >= 0) {
|
||||
target.splice(index, 1);
|
||||
}
|
||||
}
|
||||
else {
|
||||
target.delete(item);
|
||||
}
|
||||
return item;
|
||||
}
|
||||
exports.remove = remove;
|
||||
exports.objectToString = Object.prototype.toString.call.bind(Object.prototype.toString);
|
||||
function asArray(source) {
|
||||
return Array.isArray(source) ? source : [source];
|
||||
}
|
||||
exports.asArray = asArray;
|
||||
function asStringArray(source) {
|
||||
return asArray(source).map(String);
|
||||
}
|
||||
exports.asStringArray = asStringArray;
|
||||
function asNumber(source, onNaN = 0) {
|
||||
if (source == null) {
|
||||
return onNaN;
|
||||
}
|
||||
const num = parseInt(source, 10);
|
||||
return isNaN(num) ? onNaN : num;
|
||||
}
|
||||
exports.asNumber = asNumber;
|
||||
//# sourceMappingURL=util.js.map
|
||||
Reference in new issue
Block a user