Skip to content

Commit

Permalink
feat: rewrite in TS, start using named exports
Browse files Browse the repository at this point in the history
BREAKING CHANGE: previously: "import flattenAllArrays from ..." - now: "import { flattenAllArrays }
from ..."
  • Loading branch information
revelt committed Jan 3, 2021
1 parent 474db39 commit f54f983
Show file tree
Hide file tree
Showing 16 changed files with 4,171 additions and 4,009 deletions.
3 changes: 2 additions & 1 deletion packages/object-flatten-all-arrays/.npmignore
@@ -1,4 +1,4 @@
# .... generated using www.npmjs.com/package/lect ....
# generated using codsen.com/os/lect
#
#
# __ ______ ______ ______
Expand All @@ -23,3 +23,4 @@ test
.prettierignore
rollup.config.js
testStats.md
tsconfig.json
4 changes: 2 additions & 2 deletions packages/object-flatten-all-arrays/README.md
Expand Up @@ -34,7 +34,7 @@ npm i object-flatten-all-arrays

```js
import { strict as assert } from "assert";
import flattenAllArrays from "object-flatten-all-arrays";
import { flattenAllArrays } from "object-flatten-all-arrays";

assert.deepEqual(
flattenAllArrays({
Expand Down Expand Up @@ -74,6 +74,6 @@ Please [visit codsen.com](https://codsen.com/os/object-flatten-all-arrays/) for

MIT License

Copyright (c) 2010-2020 Roy Revelt and other contributors
Copyright (c) 2010-2021 Roy Revelt and other contributors

<img src="https://codsen.com/images/png-codsen-ok.png" width="98" alt="ok" align="center"> <img src="https://codsen.com/images/png-codsen-1.png" width="148" alt="codsen" align="center"> <img src="https://codsen.com/images/png-codsen-star-small.png" width="32" alt="star" align="center">
Expand Up @@ -9,90 +9,60 @@

'use strict';

Object.defineProperty(exports, '__esModule', { value: true });

var _objectSpread = require('@babel/runtime/helpers/objectSpread2');
var merge = require('lodash.merge');
var clone = require('lodash.clonedeep');
var isObj = require('lodash.isplainobject');

function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }

var _objectSpread__default = /*#__PURE__*/_interopDefaultLegacy(_objectSpread);
var merge__default = /*#__PURE__*/_interopDefaultLegacy(merge);
var clone__default = /*#__PURE__*/_interopDefaultLegacy(clone);
var isObj__default = /*#__PURE__*/_interopDefaultLegacy(isObj);

function _defineProperty(obj, key, value) {
if (key in obj) {
Object.defineProperty(obj, key, {
value: value,
enumerable: true,
configurable: true,
writable: true
});
} else {
obj[key] = value;
}

return obj;
}

function ownKeys(object, enumerableOnly) {
var keys = Object.keys(object);

if (Object.getOwnPropertySymbols) {
var symbols = Object.getOwnPropertySymbols(object);
if (enumerableOnly) symbols = symbols.filter(function (sym) {
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
});
keys.push.apply(keys, symbols);
}

return keys;
}

function _objectSpread2(target) {
for (var i = 1; i < arguments.length; i++) {
var source = arguments[i] != null ? arguments[i] : {};

if (i % 2) {
ownKeys(Object(source), true).forEach(function (key) {
_defineProperty(target, key, source[key]);
});
} else if (Object.getOwnPropertyDescriptors) {
Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
} else {
ownKeys(Object(source)).forEach(function (key) {
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
});
}
}

return target;
}
var version = "4.9.1";

var isArr = Array.isArray;
function flattenAllArrays(originalIncommingObj, originalOpts) {
//
// internal functions
// ==================
function arrayContainsStr(arr) {
return arr.some(function (val) {
return typeof val === "string";
});
}
} // setup
// =====


var defaults = {
flattenArraysContainingStringsToBeEmpty: false
};
var opts = _objectSpread2(_objectSpread2({}, defaults), originalOpts);

var opts = _objectSpread__default['default'](_objectSpread__default['default']({}, defaults), originalOpts);

var incommingObj = clone__default['default'](originalIncommingObj);
var isFirstObj;
var combinedObj;
var firstObjIndex;
if (isArr(incommingObj)) {
var firstObjIndex; // action
// ======
// 1. check current

if (Array.isArray(incommingObj)) {
if (opts.flattenArraysContainingStringsToBeEmpty && arrayContainsStr(incommingObj)) {
return [];
}

isFirstObj = null;
combinedObj = {};
firstObjIndex = 0;

for (var i = 0, len = incommingObj.length; i < len; i++) {
if (isObj__default['default'](incommingObj[i])) {
combinedObj = merge__default['default'](combinedObj, incommingObj[i]);

if (isFirstObj === null) {
isFirstObj = true;
firstObjIndex = i;
Expand All @@ -102,24 +72,29 @@ function flattenAllArrays(originalIncommingObj, originalOpts) {
}
}
}

if (isFirstObj !== null) {
incommingObj[firstObjIndex] = clone__default['default'](combinedObj);
}
}
} // 2. traverse deeper


if (isObj__default['default'](incommingObj)) {
Object.keys(incommingObj).forEach(function (key) {
if (isObj__default['default'](incommingObj[key]) || isArr(incommingObj[key])) {
if (isObj__default['default'](incommingObj[key]) || Array.isArray(incommingObj[key])) {
incommingObj[key] = flattenAllArrays(incommingObj[key], opts);
}
});
} else if (isArr(incommingObj)) {
incommingObj.forEach(function (el, i) {
if (isObj__default['default'](incommingObj[i]) || isArr(incommingObj[i])) {
} else if (Array.isArray(incommingObj)) {
incommingObj.forEach(function (_el, i) {
if (isObj__default['default'](incommingObj[i]) || Array.isArray(incommingObj[i])) {
incommingObj[i] = flattenAllArrays(incommingObj[i], opts);
}
});
}

return incommingObj;
}

module.exports = flattenAllArrays;
exports.flattenAllArrays = flattenAllArrays;
exports.version = version;

0 comments on commit f54f983

Please sign in to comment.