@nymphjs/sorter 1.0.0-beta.12 → 1.0.0-beta.121
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +448 -0
- package/README.md +2 -2
- package/dist/Sorter.d.ts +57 -0
- package/dist/Sorter.js +216 -0
- package/dist/Sorter.js.map +1 -0
- package/dist/Sorter.test.js +435 -0
- package/dist/Sorter.test.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/{lib → dist}/testArtifacts.d.ts +1 -0
- package/{lib → dist}/testArtifacts.js +7 -6
- package/dist/testArtifacts.js.map +1 -0
- package/jest.config.js +31 -5
- package/package.json +26 -30
- package/src/Sorter.test.ts +202 -20
- package/src/Sorter.ts +115 -76
- package/src/index.ts +2 -2
- package/src/testArtifacts.ts +1 -0
- package/tsconfig.json +7 -4
- package/typedoc.json +4 -0
- package/lib/Sorter.d.ts +0 -20
- package/lib/Sorter.js +0 -144
- package/lib/Sorter.js.map +0 -1
- package/lib/Sorter.test.js +0 -274
- package/lib/Sorter.test.js.map +0 -1
- package/lib/index.d.ts +0 -3
- package/lib/index.js +0 -24
- package/lib/index.js.map +0 -1
- package/lib/testArtifacts.js.map +0 -1
- package/webpack.config.js +0 -28
- /package/{lib → dist}/Sorter.test.d.ts +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Sorter.test.js","sourceRoot":"","sources":["../src/Sorter.test.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
package/dist/index.js
CHANGED
|
@@ -1,2 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
export * from './Sorter.js';
|
|
2
|
+
import Sorter from './Sorter.js';
|
|
3
|
+
export { Sorter };
|
|
2
4
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","mappings":"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","sources":["webpack://@nymphjs/sorter/webpack/universalModuleDefinition","webpack://@nymphjs/sorter/./lib/Sorter.js","webpack://@nymphjs/sorter/./lib/index.js","webpack://@nymphjs/sorter/webpack/bootstrap","webpack://@nymphjs/sorter/webpack/startup"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"@nymphjs/sorter\"] = factory();\n\telse\n\t\troot[\"@nymphjs/sorter\"] = factory();\n})(this, () => {\nreturn ","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nclass Sorter {\n constructor(array) {\n this.sortProperty = null;\n this.sortParent = null;\n this.collator = new Intl.Collator();\n this.comparator = undefined;\n this.array = array;\n }\n _arraySortProperty(a, b) {\n const prop = this.sortProperty;\n const parent = this.sortParent;\n if (parent != null &&\n a[parent] instanceof Object &&\n b[parent] instanceof Object) {\n const aParentProp = a[parent][prop];\n const bParentProp = b[parent][prop];\n if (typeof aParentProp !== 'undefined' ||\n typeof bParentProp !== 'undefined') {\n if (this.comparator != null) {\n const result = this.comparator(aParentProp, bParentProp);\n if (result !== 0) {\n return result;\n }\n }\n else if (typeof aParentProp === 'string' &&\n typeof bParentProp === 'string') {\n const result = this.collator.compare(aParentProp, bParentProp);\n if (result !== 0) {\n return result;\n }\n }\n else if (aParentProp > bParentProp) {\n return 1;\n }\n else if (aParentProp < bParentProp) {\n return -1;\n }\n }\n }\n const aProp = a[prop];\n const bProp = b[prop];\n if (this.comparator != null) {\n return this.comparator(aProp, bProp);\n }\n else if (typeof aProp === 'string' && typeof bProp === 'string') {\n return this.collator.compare(aProp, bProp);\n }\n else if (aProp > bProp) {\n return 1;\n }\n else if (aProp < bProp) {\n return -1;\n }\n return 0;\n }\n hsort(property, parentProperty, sortOptions) {\n this.sort(property, sortOptions);\n if (typeof parentProperty === 'undefined' || parentProperty === null) {\n return this.array;\n }\n let newArray = [];\n let changed;\n while (this.array.length) {\n changed = false;\n for (let key = 0; key < this.array.length; key++) {\n if (!(parentProperty in this.array[key]) ||\n this.array[key][parentProperty] == null ||\n typeof this.array[key][parentProperty].$inArray !== 'function' ||\n !this.array[key][parentProperty].$inArray([\n ...newArray,\n ...this.array,\n ])) {\n newArray.push(this.array[key]);\n this.array.splice(key, 1);\n changed = true;\n break;\n }\n else if (typeof this.array[key][parentProperty].$arraySearch === 'function') {\n const pkey = this.array[key][parentProperty].$arraySearch(newArray);\n if (pkey !== -1) {\n const ancestry = [this.array[key][parentProperty].guid];\n let newKey = pkey;\n while (newKey + 1 < newArray.length &&\n parentProperty in newArray[newKey + 1] &&\n newArray[newKey + 1][parentProperty] != null &&\n ancestry.indexOf(newArray[newKey + 1][parentProperty].guid) !== -1) {\n ancestry.push(newArray[newKey + 1].guid);\n newKey += 1;\n }\n newKey += 1;\n if (newKey < newArray.length) {\n newArray.splice(newKey, 0, this.array[key]);\n }\n else {\n newArray.push(this.array[key]);\n }\n this.array.splice(key, 1);\n changed = true;\n break;\n }\n }\n }\n if (!changed) {\n if (this.array.length) {\n newArray = newArray.concat(this.array);\n this.array.splice(0, this.array.length);\n }\n }\n }\n this.array.splice(0, 0, ...newArray);\n return this.array;\n }\n psort(property, parentProperty, { caseSensitive = false, reverse = false, collatorOptions = undefined, comparator = undefined, } = {}) {\n this.sortProperty = property;\n this.sortParent = parentProperty;\n this.collator = new Intl.Collator(undefined, collatorOptions || {\n sensitivity: caseSensitive ? 'case' : 'base',\n caseFirst: 'false',\n });\n this.comparator = comparator;\n this.array.sort(this._arraySortProperty.bind(this));\n if (reverse) {\n this.array.reverse();\n }\n return this.array;\n }\n sort(property, { caseSensitive = false, reverse = false, collatorOptions = undefined, comparator = undefined, } = {}) {\n this.sortProperty = property;\n this.sortParent = null;\n this.collator = new Intl.Collator(undefined, collatorOptions || {\n sensitivity: caseSensitive ? 'case' : 'base',\n });\n this.comparator = comparator;\n this.array.sort(this._arraySortProperty.bind(this));\n if (reverse) {\n this.array.reverse();\n }\n return this.array;\n }\n}\nexports.default = Sorter;\n//# sourceMappingURL=Sorter.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Sorter = void 0;\n__exportStar(require(\"./Sorter\"), exports);\nconst Sorter_1 = __importDefault(require(\"./Sorter\"));\nexports.Sorter = Sorter_1.default;\n//# sourceMappingURL=index.js.map","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(568);\n"],"names":["root","factory","exports","module","define","amd","this","Object","defineProperty","value","constructor","array","sortProperty","sortParent","collator","Intl","Collator","comparator","undefined","_arraySortProperty","a","b","prop","parent","aParentProp","bParentProp","result","compare","aProp","bProp","hsort","property","parentProperty","sortOptions","sort","changed","newArray","length","key","$inArray","push","splice","$arraySearch","pkey","ancestry","guid","newKey","indexOf","concat","psort","caseSensitive","reverse","collatorOptions","sensitivity","caseFirst","bind","__createBinding","create","o","m","k","k2","desc","getOwnPropertyDescriptor","__esModule","writable","configurable","enumerable","get","__exportStar","p","prototype","hasOwnProperty","call","__importDefault","mod","Sorter","Sorter_1","default","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,OAAO,MAAuB,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,MAAM,EAAe,CAAC"}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.TestModel = void 0;
|
|
4
1
|
let counter = 0;
|
|
5
|
-
class TestModel {
|
|
2
|
+
export class TestModel {
|
|
3
|
+
static class = 'TestModel';
|
|
4
|
+
guid;
|
|
5
|
+
name;
|
|
6
|
+
number;
|
|
7
|
+
fallback;
|
|
8
|
+
parent;
|
|
6
9
|
constructor() {
|
|
7
10
|
this.guid = 'guid-' + counter++;
|
|
8
11
|
return this;
|
|
@@ -19,6 +22,4 @@ class TestModel {
|
|
|
19
22
|
return -1;
|
|
20
23
|
}
|
|
21
24
|
}
|
|
22
|
-
exports.TestModel = TestModel;
|
|
23
|
-
TestModel.class = 'TestModel';
|
|
24
25
|
//# sourceMappingURL=testArtifacts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testArtifacts.js","sourceRoot":"","sources":["../src/testArtifacts.ts"],"names":[],"mappings":"AAAA,IAAI,OAAO,GAAG,CAAC,CAAC;AAEhB,MAAM,OAAO,SAAS;IACpB,MAAM,CAAC,KAAK,GAAG,WAAW,CAAC;IAEpB,IAAI,CAAS;IACb,IAAI,CAAU;IACd,MAAM,CAAU;IAChB,QAAQ,CAAU;IAClB,MAAM,CAAa;IAE1B;QACE,IAAI,CAAC,IAAI,GAAG,OAAO,GAAG,OAAO,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,QAAQ,CAAC,KAAkB;QACzB,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IACzC,CAAC;IAED,YAAY,CAAC,KAAkB;QAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC5C,OAAO,CAAC,CAAC;YACX,CAAC;QACH,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;IACZ,CAAC;CACF"}
|
package/jest.config.js
CHANGED
|
@@ -1,6 +1,32 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
const jestConfig = {
|
|
2
|
+
extensionsToTreatAsEsm: ['.ts', '.tsx'],
|
|
3
|
+
testMatch: [
|
|
4
|
+
'<rootDir>/src/**/__tests__/**/*.{js,ts,jsx,tsx,mjs,mts}',
|
|
5
|
+
'<rootDir>/src/**/?(*.)(spec|test).{js,ts,jsx,tsx,mjs,mts}',
|
|
6
|
+
],
|
|
7
|
+
transform: {
|
|
8
|
+
'^.+\\.(ts|tsx|mts)$': [
|
|
9
|
+
'@swc/jest',
|
|
10
|
+
{
|
|
11
|
+
jsc: {
|
|
12
|
+
parser: {
|
|
13
|
+
syntax: 'typescript',
|
|
14
|
+
tsx: true,
|
|
15
|
+
decorators: true,
|
|
16
|
+
},
|
|
17
|
+
target: 'es2023',
|
|
18
|
+
},
|
|
19
|
+
module: {
|
|
20
|
+
type: 'commonjs',
|
|
21
|
+
},
|
|
22
|
+
},
|
|
23
|
+
],
|
|
24
|
+
},
|
|
25
|
+
transformIgnorePatterns: ['[/\\\\]node_modules[/\\\\].+\\.(js|jsx|mjs)$'],
|
|
26
|
+
moduleDirectories: ['node_modules', 'src'],
|
|
27
|
+
moduleNameMapper: {
|
|
28
|
+
'^(\\.|\\.\\.)\\/(.+)\\.js': '$1/$2',
|
|
29
|
+
},
|
|
6
30
|
};
|
|
31
|
+
|
|
32
|
+
export default jestConfig;
|
package/package.json
CHANGED
|
@@ -1,51 +1,47 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nymphjs/sorter",
|
|
3
|
-
"version": "1.0.0-beta.
|
|
4
|
-
"description": "
|
|
5
|
-
"
|
|
6
|
-
"main": "
|
|
7
|
-
"types": "
|
|
3
|
+
"version": "1.0.0-beta.121",
|
|
4
|
+
"description": "Nymph.js - Sorter",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"types": "dist/index.d.ts",
|
|
8
8
|
"keywords": [
|
|
9
9
|
"nymph",
|
|
10
10
|
"ORM",
|
|
11
11
|
"object relational mapper"
|
|
12
12
|
],
|
|
13
13
|
"scripts": {
|
|
14
|
-
"clean": "
|
|
15
|
-
"
|
|
16
|
-
"
|
|
17
|
-
"
|
|
18
|
-
"
|
|
19
|
-
"
|
|
20
|
-
"watch
|
|
21
|
-
"watch:js": "webpack --watch",
|
|
22
|
-
"prepare": "npm run clean && npm run build",
|
|
23
|
-
"test": "jest --detectOpenHandles",
|
|
24
|
-
"test:watch": "jest --watch"
|
|
14
|
+
"clean": "test -d dist && rm -r dist || true",
|
|
15
|
+
"build": "tsc",
|
|
16
|
+
"watch": "tsc --watch",
|
|
17
|
+
"prepublish": "npm run clean && npm run build",
|
|
18
|
+
"typecheck": "npx tsc --noEmit",
|
|
19
|
+
"test": "cross-env NODE_OPTIONS=--experimental-vm-modules jest --passWithNoTests",
|
|
20
|
+
"test:watch": "cross-env NODE_OPTIONS=--experimental-vm-modules jest --passWithNoTests --watch"
|
|
25
21
|
},
|
|
26
22
|
"publishConfig": {
|
|
27
23
|
"access": "public"
|
|
28
24
|
},
|
|
25
|
+
"homepage": "https://nymph.io",
|
|
29
26
|
"repository": {
|
|
30
27
|
"type": "git",
|
|
31
|
-
"url": "
|
|
28
|
+
"url": "https://forge.sciactive.com/sciactive/nymphjs.git",
|
|
29
|
+
"directory": "packages/sorter"
|
|
32
30
|
},
|
|
33
|
-
"author": "Hunter Perrin <hperrin@
|
|
31
|
+
"author": "Hunter Perrin <hperrin@port87.com>",
|
|
34
32
|
"bugs": {
|
|
35
|
-
"url": "https://
|
|
33
|
+
"url": "https://forge.sciactive.com/sciactive/nymphjs/issues"
|
|
36
34
|
},
|
|
37
35
|
"license": "Apache-2.0",
|
|
38
36
|
"devDependencies": {
|
|
39
|
-
"@
|
|
40
|
-
"@
|
|
41
|
-
"@
|
|
42
|
-
"jest": "^
|
|
43
|
-
"
|
|
44
|
-
"
|
|
45
|
-
"ts-
|
|
46
|
-
"typescript": "^
|
|
47
|
-
"webpack": "^5.75.0",
|
|
48
|
-
"webpack-cli": "^5.0.1"
|
|
37
|
+
"@swc/core": "^1.16.1",
|
|
38
|
+
"@swc/jest": "^0.2.39",
|
|
39
|
+
"@tsconfig/recommended": "^1.0.13",
|
|
40
|
+
"@types/jest": "^30.0.0",
|
|
41
|
+
"cross-env": "^10.1.0",
|
|
42
|
+
"jest": "^30.4.2",
|
|
43
|
+
"ts-node": "^10.9.2",
|
|
44
|
+
"typescript": "^7.0.2"
|
|
49
45
|
},
|
|
50
|
-
"gitHead": "
|
|
46
|
+
"gitHead": "74e39aff81353d16831656431e97b66ac6effc18"
|
|
51
47
|
}
|
package/src/Sorter.test.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import Sorter from './Sorter';
|
|
2
|
-
import { TestModel } from './testArtifacts';
|
|
1
|
+
import Sorter from './Sorter.js';
|
|
2
|
+
import { TestModel } from './testArtifacts.js';
|
|
3
3
|
|
|
4
4
|
describe('Sorter', () => {
|
|
5
5
|
it('sorts entities by a string property', () => {
|
|
@@ -52,6 +52,60 @@ describe('Sorter', () => {
|
|
|
52
52
|
]);
|
|
53
53
|
});
|
|
54
54
|
|
|
55
|
+
it('sorts entities by a number property with an identical resolver', () => {
|
|
56
|
+
const entities: TestModel[] = [];
|
|
57
|
+
for (const prop of [4, 300, 5, 1, 2]) {
|
|
58
|
+
const entity = new TestModel();
|
|
59
|
+
entity.number = 50;
|
|
60
|
+
entity.fallback = prop;
|
|
61
|
+
entities.push(entity);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
const sorter = new Sorter(entities);
|
|
65
|
+
|
|
66
|
+
sorter.sort('number', {
|
|
67
|
+
identiticalResolver: (a, b) => (a.fallback || 0) - (b.fallback || 0),
|
|
68
|
+
});
|
|
69
|
+
expect(sorter.array.map((entity) => entity.fallback)).toEqual([
|
|
70
|
+
1, 2, 4, 5, 300,
|
|
71
|
+
]);
|
|
72
|
+
|
|
73
|
+
sorter.sort('number', {
|
|
74
|
+
reverse: true,
|
|
75
|
+
identiticalResolver: (a, b) => (a.fallback || 0) - (b.fallback || 0),
|
|
76
|
+
});
|
|
77
|
+
expect(sorter.array.map((entity) => entity.fallback)).toEqual([
|
|
78
|
+
300, 5, 4, 2, 1,
|
|
79
|
+
]);
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
it('sorts entities by a string property with an identical resolver', () => {
|
|
83
|
+
const entities: TestModel[] = [];
|
|
84
|
+
for (const prop of [4, 300, 5, 1, 2]) {
|
|
85
|
+
const entity = new TestModel();
|
|
86
|
+
entity.name = 'John';
|
|
87
|
+
entity.fallback = prop;
|
|
88
|
+
entities.push(entity);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
const sorter = new Sorter(entities);
|
|
92
|
+
|
|
93
|
+
sorter.sort('name', {
|
|
94
|
+
identiticalResolver: (a, b) => (a.fallback || 0) - (b.fallback || 0),
|
|
95
|
+
});
|
|
96
|
+
expect(sorter.array.map((entity) => entity.fallback)).toEqual([
|
|
97
|
+
1, 2, 4, 5, 300,
|
|
98
|
+
]);
|
|
99
|
+
|
|
100
|
+
sorter.sort('name', {
|
|
101
|
+
reverse: true,
|
|
102
|
+
identiticalResolver: (a, b) => (a.fallback || 0) - (b.fallback || 0),
|
|
103
|
+
});
|
|
104
|
+
expect(sorter.array.map((entity) => entity.fallback)).toEqual([
|
|
105
|
+
300, 5, 4, 2, 1,
|
|
106
|
+
]);
|
|
107
|
+
});
|
|
108
|
+
|
|
55
109
|
it('sorts entities case sensitively', () => {
|
|
56
110
|
const entities: TestModel[] = [];
|
|
57
111
|
for (const prop of ['America', 'america', 'baseball', 'Bernard', 'zebra']) {
|
|
@@ -192,24 +246,156 @@ describe('Sorter', () => {
|
|
|
192
246
|
]);
|
|
193
247
|
});
|
|
194
248
|
|
|
249
|
+
it('sorts entities by parent with an identical resolver', () => {
|
|
250
|
+
const firstParent = new TestModel();
|
|
251
|
+
firstParent.name = 'Aaron';
|
|
252
|
+
firstParent.fallback = 1;
|
|
253
|
+
const secondParent = new TestModel();
|
|
254
|
+
secondParent.name = 'Kevin';
|
|
255
|
+
secondParent.fallback = 2;
|
|
256
|
+
const entities: TestModel[] = [
|
|
257
|
+
(() => {
|
|
258
|
+
const entity = new TestModel();
|
|
259
|
+
entity.name = 'Steve';
|
|
260
|
+
entity.fallback = 3;
|
|
261
|
+
entity.parent = firstParent;
|
|
262
|
+
return entity;
|
|
263
|
+
})(),
|
|
264
|
+
(() => {
|
|
265
|
+
const entity = new TestModel();
|
|
266
|
+
entity.name = 'Steve';
|
|
267
|
+
entity.fallback = 5;
|
|
268
|
+
entity.parent = firstParent;
|
|
269
|
+
return entity;
|
|
270
|
+
})(),
|
|
271
|
+
(() => {
|
|
272
|
+
const entity = new TestModel();
|
|
273
|
+
entity.name = 'Steve';
|
|
274
|
+
entity.fallback = 4;
|
|
275
|
+
entity.parent = firstParent;
|
|
276
|
+
return entity;
|
|
277
|
+
})(),
|
|
278
|
+
(() => {
|
|
279
|
+
const entity = new TestModel();
|
|
280
|
+
entity.name = 'Steve';
|
|
281
|
+
entity.fallback = 6;
|
|
282
|
+
entity.parent = secondParent;
|
|
283
|
+
return entity;
|
|
284
|
+
})(),
|
|
285
|
+
firstParent,
|
|
286
|
+
secondParent,
|
|
287
|
+
];
|
|
288
|
+
|
|
289
|
+
const sorter = new Sorter(entities);
|
|
290
|
+
|
|
291
|
+
sorter.psort('name', 'parent', {
|
|
292
|
+
identiticalResolver: (a, b) => (a.fallback || 0) - (b.fallback || 0),
|
|
293
|
+
});
|
|
294
|
+
expect(sorter.array.map((entity) => entity.fallback)).toEqual([
|
|
295
|
+
1, 2, 3, 4, 5, 6,
|
|
296
|
+
]);
|
|
297
|
+
});
|
|
298
|
+
|
|
195
299
|
it('sorts entities hierarchically', () => {
|
|
300
|
+
const getEntries = () => {
|
|
301
|
+
const firstParent = new TestModel();
|
|
302
|
+
firstParent.name = 'Herbert';
|
|
303
|
+
const secondParent = new TestModel();
|
|
304
|
+
secondParent.name = 'Anthony';
|
|
305
|
+
const subParent = new TestModel();
|
|
306
|
+
subParent.name = 'Lamar';
|
|
307
|
+
subParent.parent = secondParent;
|
|
308
|
+
return [
|
|
309
|
+
(() => {
|
|
310
|
+
const entity = new TestModel();
|
|
311
|
+
entity.name = 'Jacob';
|
|
312
|
+
entity.parent = firstParent;
|
|
313
|
+
return entity;
|
|
314
|
+
})(),
|
|
315
|
+
(() => {
|
|
316
|
+
const entity = new TestModel();
|
|
317
|
+
entity.name = 'Joshua';
|
|
318
|
+
entity.parent = firstParent;
|
|
319
|
+
return entity;
|
|
320
|
+
})(),
|
|
321
|
+
subParent,
|
|
322
|
+
(() => {
|
|
323
|
+
const entity = new TestModel();
|
|
324
|
+
entity.name = 'Peter';
|
|
325
|
+
entity.parent = secondParent;
|
|
326
|
+
return entity;
|
|
327
|
+
})(),
|
|
328
|
+
(() => {
|
|
329
|
+
const entity = new TestModel();
|
|
330
|
+
entity.name = 'Warren';
|
|
331
|
+
entity.parent = subParent;
|
|
332
|
+
return entity;
|
|
333
|
+
})(),
|
|
334
|
+
(() => {
|
|
335
|
+
const entity = new TestModel();
|
|
336
|
+
entity.name = 'Arthur';
|
|
337
|
+
entity.parent = subParent;
|
|
338
|
+
return entity;
|
|
339
|
+
})(),
|
|
340
|
+
firstParent,
|
|
341
|
+
secondParent,
|
|
342
|
+
];
|
|
343
|
+
};
|
|
344
|
+
const entities: TestModel[] = [];
|
|
345
|
+
for (let i = 0; i < 100; i++) {
|
|
346
|
+
entities.push(...getEntries());
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
const sorter = new Sorter(entities);
|
|
350
|
+
|
|
351
|
+
sorter.hsort('name', 'parent');
|
|
352
|
+
expect(
|
|
353
|
+
sorter.array.map((entity) => {
|
|
354
|
+
let output = '';
|
|
355
|
+
let parent = entity.parent;
|
|
356
|
+
while (parent) {
|
|
357
|
+
output += '- ';
|
|
358
|
+
parent = parent.parent;
|
|
359
|
+
}
|
|
360
|
+
return output + entity.name;
|
|
361
|
+
}),
|
|
362
|
+
).toEqual([
|
|
363
|
+
...[...Array(100)]
|
|
364
|
+
.map(() => [
|
|
365
|
+
'Anthony',
|
|
366
|
+
'- Lamar',
|
|
367
|
+
'- - Arthur',
|
|
368
|
+
'- - Warren',
|
|
369
|
+
'- Peter',
|
|
370
|
+
])
|
|
371
|
+
.flat(),
|
|
372
|
+
...[...Array(100)].map(() => ['Herbert', '- Jacob', '- Joshua']).flat(),
|
|
373
|
+
]);
|
|
374
|
+
});
|
|
375
|
+
|
|
376
|
+
it('sorts entities hierarchically with an identical resolver', () => {
|
|
196
377
|
const firstParent = new TestModel();
|
|
197
378
|
firstParent.name = 'Herbert';
|
|
379
|
+
firstParent.fallback = 1;
|
|
198
380
|
const secondParent = new TestModel();
|
|
199
381
|
secondParent.name = 'Anthony';
|
|
382
|
+
secondParent.fallback = 2;
|
|
200
383
|
const subParent = new TestModel();
|
|
201
384
|
subParent.name = 'Lamar';
|
|
385
|
+
subParent.fallback = 3;
|
|
202
386
|
subParent.parent = secondParent;
|
|
203
|
-
const entities
|
|
387
|
+
const entities = [
|
|
204
388
|
(() => {
|
|
205
389
|
const entity = new TestModel();
|
|
206
|
-
entity.name = '
|
|
390
|
+
entity.name = 'Peter';
|
|
391
|
+
entity.fallback = 5;
|
|
207
392
|
entity.parent = firstParent;
|
|
208
393
|
return entity;
|
|
209
394
|
})(),
|
|
210
395
|
(() => {
|
|
211
396
|
const entity = new TestModel();
|
|
212
|
-
entity.name = '
|
|
397
|
+
entity.name = 'Peter';
|
|
398
|
+
entity.fallback = 4;
|
|
213
399
|
entity.parent = firstParent;
|
|
214
400
|
return entity;
|
|
215
401
|
})(),
|
|
@@ -217,18 +403,21 @@ describe('Sorter', () => {
|
|
|
217
403
|
(() => {
|
|
218
404
|
const entity = new TestModel();
|
|
219
405
|
entity.name = 'Peter';
|
|
406
|
+
entity.fallback = 7;
|
|
220
407
|
entity.parent = secondParent;
|
|
221
408
|
return entity;
|
|
222
409
|
})(),
|
|
223
410
|
(() => {
|
|
224
411
|
const entity = new TestModel();
|
|
225
|
-
entity.name = '
|
|
412
|
+
entity.name = 'Peter';
|
|
413
|
+
entity.fallback = 8;
|
|
226
414
|
entity.parent = subParent;
|
|
227
415
|
return entity;
|
|
228
416
|
})(),
|
|
229
417
|
(() => {
|
|
230
418
|
const entity = new TestModel();
|
|
231
|
-
entity.name = '
|
|
419
|
+
entity.name = 'Peter';
|
|
420
|
+
entity.fallback = 6;
|
|
232
421
|
entity.parent = subParent;
|
|
233
422
|
return entity;
|
|
234
423
|
})(),
|
|
@@ -238,7 +427,9 @@ describe('Sorter', () => {
|
|
|
238
427
|
|
|
239
428
|
const sorter = new Sorter(entities);
|
|
240
429
|
|
|
241
|
-
sorter.hsort('name', 'parent'
|
|
430
|
+
sorter.hsort('name', 'parent', {
|
|
431
|
+
identiticalResolver: (a, b) => (a.fallback || 0) - (b.fallback || 0),
|
|
432
|
+
});
|
|
242
433
|
expect(
|
|
243
434
|
sorter.array.map((entity) => {
|
|
244
435
|
let output = '';
|
|
@@ -247,18 +438,9 @@ describe('Sorter', () => {
|
|
|
247
438
|
output += '- ';
|
|
248
439
|
parent = parent.parent;
|
|
249
440
|
}
|
|
250
|
-
return output + entity.
|
|
251
|
-
})
|
|
252
|
-
).toEqual([
|
|
253
|
-
'Anthony',
|
|
254
|
-
'- Lamar',
|
|
255
|
-
'- - Arthur',
|
|
256
|
-
'- - Warren',
|
|
257
|
-
'- Peter',
|
|
258
|
-
'Herbert',
|
|
259
|
-
'- Jacob',
|
|
260
|
-
'- Joshua',
|
|
261
|
-
]);
|
|
441
|
+
return output + entity.fallback;
|
|
442
|
+
}),
|
|
443
|
+
).toEqual(['2', '- 3', '- - 6', '- - 8', '- 7', '1', '- 4', '- 5']);
|
|
262
444
|
});
|
|
263
445
|
|
|
264
446
|
it('sorts array in place', () => {
|