# @writetome51/public-array-getter-converter

> An array-manipulating Typescript/Javascript class with alternative methods to Array.map and Array.reduce

Latest version **3.0.1** (published 2019-08-05) · MIT license · 0 weekly downloads

## Install

```sh
npm install @writetome51/public-array-getter-converter
pnpm add @writetome51/public-array-getter-converter
yarn add @writetome51/public-array-getter-converter
bun add @writetome51/public-array-getter-converter
```

## Health

**Score 20/100 (F)** — status: abandoned.

Positive: has types; no vulnerabilities.

Warnings: low downloads; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 3.0.1 |
| Published | 2019-08-05 |
| First published | 2018-10-26 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | CommonJS |
| Dependencies | 1 |
| Unpacked size | 20.3 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 0 |
| Author | Steve Thompson |
| Maintainers | writetome51 |
| Keywords | array, manipulation, convert, data, typescript, class |

## Links

- npm: https://www.npmjs.com/package/@writetome51/public-array-getter-converter
- Repository: https://github.com/writetome51/public-array-getter-converter
- Homepage: https://github.com/writetome51/public-array-getter-converter#readme
- Issues: https://github.com/writetome51/public-array-getter-converter/issues
- npm.io page: https://npm.io/package/@writetome51/public-array-getter-converter

## Dependencies (1)

- [@writetome51/public-array-container](https://npm.io/package/@writetome51/public-array-container.md) ^3.0.0

## Alternatives

- [@openai/codex-sdk](https://npm.io/package/@openai/codex-sdk.md) — 731.4K weekly downloads
- [babel-plugin-transform-react-jsx](https://npm.io/package/babel-plugin-transform-react-jsx.md) — 565.0K weekly downloads
- [babel-helper-remove-or-void](https://npm.io/package/babel-helper-remove-or-void.md) — 508.5K weekly downloads
- [@pnpm/store-controller-types](https://npm.io/package/@pnpm/store-controller-types.md) — 186.9K weekly downloads
- [react-native-signature-canvas](https://npm.io/package/react-native-signature-canvas.md) — 155.6K weekly downloads

## Recent versions

- 3.0.1 (latest) — 2019-08-05
- 3.0.0 — 2019-06-10
- 2.0.3 — 2019-04-17
- 2.0.2 — 2019-03-17
- 2.0.1 — 2019-03-04
- 2.0.0 — 2018-12-17
- 1.0.4 — 2018-12-15
- 1.0.3 — 2018-11-20
- 1.0.2 — 2018-10-26
- 1.0.1 — 2018-10-26

## README

# PublicArrayGetterConverter

An array-manipulating Typescript/Javascript class with methods that return the array   
converted into something else.  None of the methods modify the array.

PublicArrayGetterConverter has the built-in Array methods  `.map()`  and  `.reduce()` ,  
but renamed to  `.each()`  and  `.toOne()` , respectively.

## Constructor
```ts
constructor(data? = []) //  'data' is assigned to this.data .
```

When creating an instance, it's recommended you name the instance in a verb-form  
of the class name.  Example:
```ts
let getUsersConverted = new PublicArrayGetterConverter(users);
let combinedUser = getUsersConverted.toOne(fnArg);
let convertedUsers = getUsersConverted.each(fnArg);
```

You can reset the array by accessing the class `.data` property:
```ts
this.data = [1,2,3,4];
```


## Properties
```ts
data : any[]  // the actual array

className: string (read-only)
```


## Methods
<details>
<summary>view methods</summary>

```ts
each(
    mappingFunction: (item, index?, array?) => any
): any[]
    // Does the same thing as Array.map()
    // Returns new array with each value in old array converted into something else.

toOne(
    reducingFunction: (total: any,  item: any,  index?,  array?) => any,
    initialValue?: any
): any
    // Does the same thing as Array.reduce(), but with a much better name.
``` 
The methods below are not important to know about in order to use this  
class.  They're inherited from [BaseClass](https://github.com/writetome51/typescript-base-class#baseclass) .
```ts
protected   _createGetterAndOrSetterForEach(
		propertyNames: string[],
		configuration: IGetterSetterConfiguration
	   ) : void
    /*********************
    Use this method when you have a bunch of properties that need getter and/or 
    setter functions that all do the same thing. You pass in an array of string 
    names of those properties, and the method attaches the same getter and/or 
    setter function to each property.
    IGetterSetterConfiguration is this object:
    {
        get_setterFunction?: (
             propertyName: string, index?: number, propertyNames?: string[]
        ) => Function,
	    // get_setterFunction takes the property name as first argument and 
	    // returns the setter function.  The setter function must take one 
	    // parameter and return void.
	    
        get_getterFunction?: (
             propertyName: string, index?: number, propertyNames?: string[]
        ) => Function
	    // get_getterFunction takes the property name as first argument and 
	    // returns the getter function.  The getter function must return something.
    }
    *********************/ 


protected   _returnThis_after(voidExpression: any) : this
    // voidExpression is executed, then function returns this.
    // Even if voidExpression returns something, the returned data isn't used.

protected   _errorIfPropertyHasNoValue(
                property: string, // can contain dot-notation, i.e., 'property.subproperty'
                propertyNameInError? = ''
            ) : void
    // If value of this[property] is undefined or null, it triggers fatal error:
    // `The property "${propertyNameInError}" has no value.`
```
</details>


## Usage Examples:
<details>
<summary>view examples</summary>

```ts
let getNumbersConverted = new PublicArrayGetterConverter([1,2,3,4]);

getNumbersConverted.each((item) => item * 2);
// -->  [2,4,6,8]

// getNumbersConverted.data is still [1,2,3,4]

getNumbersConverted.toOne((product, currentItem) => product * currentItem);
// -->  24
```
</details>

## Inheritance Chain

PublicArrayGetterConverter<--[PublicArrayContainer](https://github.com/writetome51/public-array-container#publicarraycontainer)<--[BaseClass](https://github.com/writetome51/typescript-base-class#baseclass)


## Installation

`npm i  @writetome51/public-array-getter-converter`

## Loading
```ts
// if using Typescript:
import {PublicArrayGetterConverter} from '@writetome51/public-array-getter-converter';
// if using ES5 Javascript:
var PublicArrayGetterConverter = 
        require('@writetome51/public-array-getter-converter').PublicArrayGetterConverter;
```

## License
[MIT](https://choosealicense.com/licenses/mit/)

---
_Source: https://npm.io/package/@writetome51/public-array-getter-converter · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
