New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@dankreiger/groop

Package Overview
Dependencies
Maintainers
1
Versions
11
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@dankreiger/groop - npm Package Compare versions

Comparing version 0.1.31 to 0.1.32

dist/types/utils/__internal__/groupArrayBy/groupArrayBy.d.ts

2

dist/cjs/index.js

@@ -1,1 +0,1 @@

"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.createGroup=function(e){return function(t){return((e,t)=>{const i={entities:{},ids:[]};for(let n=0;n<t.length;n++)i.entities[t[n][e]]?i.entities[t[n][e]].push(t[n]):(i.entities[t[n][e]]=[t[n]],i.ids.push(t[n][e]));return i})(e,t)}};
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.createArrayGroup=function(t){return function(e){return((t,e)=>{const n={entities:{},ids:[]};for(let r=0;r<e.length;r++)n.entities[e[r][t]]?n.entities[e[r][t]].push(e[r]):(n.entities[e[r][t]]=[e[r]],n.ids.push(e[r][t]));return n})(t,e)}},exports.createGroup=function(t){return function(e){return((t,e)=>{const n={entities:{},ids:[]};for(let r=0;r<e.length;r++){const i=e[r];n.entities[i[t]]=i[t]}return n})(t,e)}};

@@ -1,1 +0,1 @@

function t(t){return function(e){return((t,e)=>{const n={entities:{},ids:[]};for(let i=0;i<e.length;i++)n.entities[e[i][t]]?n.entities[e[i][t]].push(e[i]):(n.entities[e[i][t]]=[e[i]],n.ids.push(e[i][t]));return n})(t,e)}}export{t as createGroup};
function t(t){return function(n){return((t,n)=>{const e={entities:{},ids:[]};for(let i=0;i<n.length;i++)e.entities[n[i][t]]?e.entities[n[i][t]].push(n[i]):(e.entities[n[i][t]]=[n[i]],e.ids.push(n[i][t]));return e})(t,n)}}function n(t){return function(n){return((t,n)=>{const e={entities:{},ids:[]};for(let i=0;i<n.length;i++){const r=n[i];e.entities[r[t]]=r[t]}return e})(t,n)}}export{t as createArrayGroup,n as createGroup};

@@ -1,2 +0,2 @@

export { EntityDict } from './typings';
export { ArrayEntityDict, EntityDict } from './typings';
export * from './utils';

@@ -0,9 +1,18 @@

import { type ReadonlyDeep } from 'type-fest';
export type ObjectKey = string | number | symbol;
export type ArrayEntityDict<Entity, Key extends ObjectKey> = {
readonly entities: ReadonlyDeep<Record<Key, ReadonlyArray<Entity> | undefined>>;
readonly ids: ReadonlyArray<Key>;
};
export type EntityDict<Entity, Key extends ObjectKey> = {
readonly entities: Record<Key, ReadonlyArray<Entity> | undefined>;
readonly entities: ReadonlyDeep<Record<Key, Entity | undefined>>;
readonly ids: ReadonlyArray<Key>;
};
export type MutableEntityDict<Entity, Key extends ObjectKey> = {
export type MutableArrayEntityDict<Entity, Key extends ObjectKey> = {
entities: Record<Key, Entity[] | undefined>;
ids: Key[];
};
export type MutableEntityDict<Entity, Key extends ObjectKey> = {
entities: Record<Key, Entity | undefined>;
ids: Key[];
};

@@ -0,1 +1,2 @@

export * from './groupArrayBy';
export * from './groupBy';

@@ -0,1 +1,2 @@

export * from './createArrayGroup';
export * from './createGroup';
{
"name": "@dankreiger/groop",
"version": "0.1.31",
"version": "0.1.32",
"description": "Normalize an array of objects by a property.",

@@ -5,0 +5,0 @@ "homepage": "https://github.com/dankreiger/groop#readme",

@@ -5,6 +5,8 @@ # groop

Both lists and single objects can be normalized.
## Usage
```ts
import { createGroup } from '@dankreiger/groop';
import { createArrayGroup } from '@dankreiger/groop';

@@ -18,3 +20,3 @@ const listGroup = [

const byAge = createGroup('age');
const byAge = createArrayGroup('age');

@@ -52,3 +54,3 @@ byAge(listGroup);

const byName = createGroup('name');
const byName = createArrayGroup('name');

@@ -71,1 +73,33 @@ byName(listGroup);

```
```ts
import { createGroup } from '@dankreiger/groop';
const singleGroup = { name: 'Dan', age: 5 };
const byAge = createGroup('age');
byAge(singleGroup);
/**
* {
* entities: {
* '5': { name: 'Dan', age: 5 }
* },
* ids: [5]
* }
*/
const byName = createGroup('name');
byName(singleGroup);
/**
* {
* entities: {
* Dan: { name: 'Dan', age: 5 }
* },
* ids: ['Dan']
* }
*/
```

@@ -1,2 +0,2 @@

export { EntityDict } from './typings';
export { ArrayEntityDict, EntityDict } from './typings';
export * from './utils';

@@ -0,11 +1,24 @@

import { type ReadonlyDeep } from 'type-fest';
export type ObjectKey = string | number | symbol;
export type ArrayEntityDict<Entity, Key extends ObjectKey> = {
readonly entities: ReadonlyDeep<
Record<Key, ReadonlyArray<Entity> | undefined>
>;
readonly ids: ReadonlyArray<Key>;
};
export type EntityDict<Entity, Key extends ObjectKey> = {
readonly entities: Record<Key, ReadonlyArray<Entity> | undefined>;
readonly entities: ReadonlyDeep<Record<Key, Entity | undefined>>;
readonly ids: ReadonlyArray<Key>;
};
export type MutableEntityDict<Entity, Key extends ObjectKey> = {
// --------------------------------------------------------------
export type MutableArrayEntityDict<Entity, Key extends ObjectKey> = {
entities: Record<Key, Entity[] | undefined>;
ids: Key[];
};
export type MutableEntityDict<Entity, Key extends ObjectKey> = {
entities: Record<Key, Entity | undefined>;
ids: Key[];
};

@@ -0,1 +1,2 @@

export * from './groupArrayBy';
export * from './groupBy';

@@ -1,2 +0,2 @@

import { createGroup } from './createGroup';
import { createArrayGroup } from '../createArrayGroup';

@@ -10,5 +10,5 @@ const listGroup = [

describe('createGroup', () => {
describe('createArrayGroup', () => {
it('one', () => {
const byAge = createGroup('age');
const byAge = createArrayGroup('age');
expect(byAge(listGroup)).toEqual({

@@ -44,3 +44,3 @@ entities: {

it('two', () => {
const byName = createGroup('name');
const byName = createArrayGroup('name');
expect(byName(listGroup)).toEqual({

@@ -47,0 +47,0 @@ entities: {

@@ -5,3 +5,3 @@ import type { EntityDict, ObjectKey } from '../../typings';

export function createGroup<K extends ObjectKey>(key: K) {
return function groupList<T extends Record<K, T[K]>>(
return function groupItem<T extends Record<K, T[K]>>(
items: ReadonlyArray<T>

@@ -8,0 +8,0 @@ ): EntityDict<T, T[K]> {

@@ -0,1 +1,2 @@

export * from './createArrayGroup';
export * from './createGroup';
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc