sort-unwind
Advanced tools
Comparing version
@@ -1,3 +0,4 @@ | ||
export declare const curried: (rank: number[]) => <T>(src: T[]) => [T[], number[]]; | ||
declare const curried: (rank: number[]) => <T>(src: T[]) => [T[], number[]]; | ||
declare const _default: <T>(rank: number[], src: T[]) => [T[], number[]]; | ||
export default _default; | ||
export { curried, _default as default }; |
@@ -1,25 +0,22 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.curried = void 0; | ||
const curried = (rank) => (src) => { | ||
if (src.length === 0) | ||
return [[], []]; | ||
const zipped = []; | ||
src.forEach((_, i) => { | ||
zipped.push([rank[i], i, src[i]]); | ||
}); | ||
// Array.sort will mutate the array, so we must make another | ||
zipped.sort(([a], [b]) => a - b); | ||
const dst = []; | ||
const derank = []; | ||
zipped.forEach(([_, i, o]) => { | ||
derank.push(i); | ||
dst.push(o); | ||
}); | ||
return [dst, derank]; | ||
// src/index.ts | ||
var curried = (rank) => (src) => { | ||
if (src.length === 0) return [[], []]; | ||
const zipped = []; | ||
src.forEach((_, i) => { | ||
zipped.push([rank[i], i, src[i]]); | ||
}); | ||
zipped.sort(([a], [b]) => a - b); | ||
const dst = []; | ||
const derank = []; | ||
zipped.forEach(([_, i, o]) => { | ||
derank.push(i); | ||
dst.push(o); | ||
}); | ||
return [dst, derank]; | ||
}; | ||
exports.curried = curried; | ||
// if i understood generics better, i think this could go back | ||
// to just being one exported function with an optional second | ||
// param... but this is just simpler. | ||
exports.default = (rank, src) => (0, exports.curried)(rank)(src); | ||
var src_default = (rank, src) => curried(rank)(src); | ||
export { | ||
curried, | ||
src_default as default | ||
}; | ||
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJleHBvcnQgY29uc3QgY3VycmllZCA9XG4gIChyYW5rOiBudW1iZXJbXSkgPT5cbiAgPFQ+KHNyYzogVFtdKTogW1RbXSwgbnVtYmVyW11dID0+IHtcbiAgICBpZiAoc3JjLmxlbmd0aCA9PT0gMCkgcmV0dXJuIFtbXSwgW11dXG5cbiAgICBjb25zdCB6aXBwZWQ6IFtudW1iZXIsIG51bWJlciwgYW55XVtdID0gW11cbiAgICBzcmMuZm9yRWFjaCgoXywgaSkgPT4ge1xuICAgICAgemlwcGVkLnB1c2goW3JhbmtbaV0sIGksIHNyY1tpXV0pXG4gICAgfSlcbiAgICAvLyBBcnJheS5zb3J0IHdpbGwgbXV0YXRlIHRoZSBhcnJheSwgc28gd2UgbXVzdCBtYWtlIGFub3RoZXJcbiAgICB6aXBwZWQuc29ydCgoW2FdLCBbYl0pID0+IGEgLSBiKVxuXG4gICAgY29uc3QgZHN0OiBUW10gPSBbXVxuICAgIGNvbnN0IGRlcmFuazogbnVtYmVyW10gPSBbXVxuICAgIHppcHBlZC5mb3JFYWNoKChbXywgaSwgb10pID0+IHtcbiAgICAgIGRlcmFuay5wdXNoKGkpXG4gICAgICBkc3QucHVzaChvKVxuICAgIH0pXG4gICAgcmV0dXJuIFtkc3QsIGRlcmFua11cbiAgfVxuXG4vLyBpZiBpIHVuZGVyc3Rvb2QgZ2VuZXJpY3MgYmV0dGVyLCBpIHRoaW5rIHRoaXMgY291bGQgZ28gYmFja1xuLy8gdG8ganVzdCBiZWluZyBvbmUgZXhwb3J0ZWQgZnVuY3Rpb24gd2l0aCBhbiBvcHRpb25hbCBzZWNvbmRcbi8vIHBhcmFtLi4uIGJ1dCB0aGlzIGlzIGp1c3Qgc2ltcGxlci5cbmV4cG9ydCBkZWZhdWx0IDxUPihyYW5rOiBudW1iZXJbXSwgc3JjOiBUW10pID0+IGN1cnJpZWQocmFuaykoc3JjKVxuIl0sCiAgIm1hcHBpbmdzIjogIjtBQUFPLElBQU0sVUFDWCxDQUFDLFNBQ0QsQ0FBSSxRQUE4QjtBQUNoQyxNQUFJLElBQUksV0FBVyxFQUFHLFFBQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBRXBDLFFBQU0sU0FBa0MsQ0FBQztBQUN6QyxNQUFJLFFBQVEsQ0FBQyxHQUFHLE1BQU07QUFDcEIsV0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQUEsRUFDbEMsQ0FBQztBQUVELFNBQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQztBQUUvQixRQUFNLE1BQVcsQ0FBQztBQUNsQixRQUFNLFNBQW1CLENBQUM7QUFDMUIsU0FBTyxRQUFRLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxNQUFNO0FBQzVCLFdBQU8sS0FBSyxDQUFDO0FBQ2IsUUFBSSxLQUFLLENBQUM7QUFBQSxFQUNaLENBQUM7QUFDRCxTQUFPLENBQUMsS0FBSyxNQUFNO0FBQ3JCO0FBS0YsSUFBTyxjQUFRLENBQUksTUFBZ0IsUUFBYSxRQUFRLElBQUksRUFBRSxHQUFHOyIsCiAgIm5hbWVzIjogW10KfQo= |
110
package.json
{ | ||
"name": "sort-unwind", | ||
"version": "2.1.2", | ||
"version": "3.0.0", | ||
"description": "Sorts an array and then unwinds that sort on another array", | ||
@@ -8,7 +8,8 @@ "author": "Philihp Busby <philihp@gmail.com>", | ||
"sideEffects": false, | ||
"type": "module", | ||
"main": "./dist/index.js", | ||
"scripts": { | ||
"build": "tsc -p tsconfig.build.json", | ||
"lint": "eslint --ext .ts,.json,.js src", | ||
"prepare": "husky install && npm run build", | ||
"build": "tsup", | ||
"lint": "eslint .", | ||
"prepare": "husky && npm run build", | ||
"test": "jest", | ||
@@ -28,22 +29,20 @@ "test:coverage": "jest --coverage", | ||
], | ||
"dependencies": {}, | ||
"devDependencies": { | ||
"@babel/cli": "7.21.0", | ||
"@babel/core": "7.21.4", | ||
"@babel/preset-env": "7.21.4", | ||
"@philihp/eslint-config": "6.0.2", | ||
"@philihp/prettier-config": "1.0.0", | ||
"@types/jest": "29.5.0", | ||
"@typescript-eslint/eslint-plugin": "5.59.0", | ||
"@typescript-eslint/parser": "5.59.0", | ||
"eslint": "8.38.0", | ||
"eslint-import-resolver-typescript": "3.5.5", | ||
"eslint-plugin-import": "2.27.5", | ||
"fast-shuffle": "5.0.2", | ||
"husky": "8.0.3", | ||
"jest": "29.5.0", | ||
"lint-staged": "13.2.1", | ||
"prettier": "2.8.7", | ||
"ts-jest": "29.1.0", | ||
"typescript": "5.0.4" | ||
"@tsconfig/recommended": "1.0.7", | ||
"@types/jest": "29.5.12", | ||
"esbuild-jest": "0.5.0", | ||
"eslint": "8.57.0", | ||
"eslint-config-prettier": "9.1.0", | ||
"eslint-plugin-jest": "28.6.0", | ||
"eslint-plugin-prettier": "5.1.3", | ||
"fast-shuffle": "6.1.0", | ||
"husky": "9.0.11", | ||
"jest": "29.7.0", | ||
"tsup": "8.1.0", | ||
"typescript": "5.5.3", | ||
"typescript-eslint": "7.15.0", | ||
"lint-staged": "15.2.7", | ||
"prettier": "3.3.2", | ||
"ts-jest": "29.1.5" | ||
}, | ||
@@ -58,69 +57,6 @@ "homepage": "https://github.com/philihp/sort-unwind#readme", | ||
}, | ||
"jest": { | ||
"preset": "ts-jest", | ||
"testEnvironment": "node", | ||
"modulePathIgnorePatterns": [ | ||
"dist/" | ||
] | ||
}, | ||
"lint-staged": { | ||
"src/**/*.{js,json,ts}": [ | ||
"eslint --ext .js,.json,.ts --fix" | ||
] | ||
}, | ||
"prettier": "@philihp/prettier-config", | ||
"eslintConfig": { | ||
"parser": "@typescript-eslint/parser", | ||
"parserOptions": { | ||
"project": "./tsconfig.json" | ||
}, | ||
"plugins": [ | ||
"@typescript-eslint" | ||
], | ||
"extends": [ | ||
"@philihp", | ||
"plugin:jest/all", | ||
"plugin:@typescript-eslint/recommended" | ||
], | ||
"settings": { | ||
"import/extensions": [ | ||
".js", | ||
".ts" | ||
], | ||
"import/parsers": { | ||
"@typescript-eslint/parser": [ | ||
".ts" | ||
] | ||
}, | ||
"import/resolver": { | ||
"typescript": {}, | ||
"node": { | ||
"extensions": [ | ||
".js", | ||
".ts" | ||
] | ||
} | ||
} | ||
}, | ||
"rules": { | ||
"@typescript-eslint/ban-ts-comment": "off", | ||
"@typescript-eslint/no-explicit-any": "off", | ||
"@typescript-eslint/no-unused-vars": [ | ||
"error", | ||
{ | ||
"argsIgnorePattern": "^_", | ||
"varsIgnorePattern": "^_", | ||
"caughtErrorsIgnorePattern": "^_" | ||
} | ||
], | ||
"import/no-extraneous-dependencies": [ | ||
"error", | ||
{ | ||
"devDependencies": [ | ||
"**/*.test.ts" | ||
] | ||
} | ||
] | ||
} | ||
"engines": { | ||
"node": ">=18.0.0" | ||
} | ||
} |
[](https://www.npmjs.com/package/sort-unwind) | ||
[](https://libraries.io/npm/sort-unwind) | ||
 | ||
[](https://github.com/philihp/sort-unwind/actions/workflows/tests.yml) | ||
[](https://coveralls.io/github/philihp/sort-unwind?branch=main) | ||
@@ -5,0 +4,0 @@  |
10311
56.2%17
-5.56%7
40%69
146.43%Yes
NaN43
-2.27%