# @writetome51/base-class

> An abstract Typescript/Javascript class with properties and methods that perhaps every class should have

Latest version **2.0.0** (published 2020-08-07) · MIT license · 0 weekly downloads

## Install

```sh
npm install @writetome51/base-class
pnpm add @writetome51/base-class
yarn add @writetome51/base-class
bun add @writetome51/base-class
```

## Health

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

Positive: has types; esm support; no vulnerabilities.

Warnings: low downloads.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 2.0.0 |
| Published | 2020-08-07 |
| First published | 2018-12-16 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 2 |
| Unpacked size | 6.5 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 0 |
| Author | Steve Thompson |
| Maintainers | writetome51 |
| Keywords | abstract, typescript, base, class |

## Links

- npm: https://www.npmjs.com/package/@writetome51/base-class
- Repository: https://github.com/writetome51/typescript-base-class
- Homepage: https://github.com/writetome51/typescript-base-class#readme
- Issues: https://github.com/writetome51/typescript-base-class/issues
- npm.io page: https://npm.io/package/@writetome51/base-class

## Dependencies (2)

- [@writetome51/get-property](https://npm.io/package/@writetome51/get-property.md) ^2.0.0
- [@writetome51/has-value-no-value](https://npm.io/package/@writetome51/has-value-no-value.md) ^2.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

- 2.0.0 (latest) — 2020-08-07
- 1.0.0 — 2019-05-06
- 0.0.3 — 2019-02-20
- 0.0.2 — 2018-12-17
- 0.0.1 — 2018-12-16

## README

# BaseClass

An abstract Typescript/Javascript class with properties and methods that maybe   
every class should have.


## Properties

#### className: string (read-only)


## Methods

```
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.`
```

## Explanation of syntax in above code examples
 
Variable declaration: &nbsp; `varName: type`  
Function declaration: &nbsp; `functionName(...parameters): type_returned`  

When specifying a variable type must be a specific function:  
`varName: (...parameters) => type_returned`  

Optional parameter in a function:  
`parameterName? = (default_value)` &nbsp; or &nbsp; `parameterName?: type`  

Optional property in an object:  &nbsp; `propertyName?: type`  

Variable parsed inside a literal string:  
```
`This is a string containing the value of ${varName}`
```

## Installation
`npm i  @writetome51/base-class`


## Loading
```js
import { BaseClass } from '@writetome51/base-class';
```


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

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