<commit_before># Contributing

## Workflow

To demonstrate the proper workflow for contributing to AsyncAF, (❤️ Thanks! ❤️) let's say you want to add a hypothetical feature on the AsyncAf prototype; for example, a method that acts on an array of non-promises or promises that resolve to numbers and naively adds them up.

<hr>

### Setup

First things first; fork this repo and clone it to your machine.

Once you've got the files open, run `$ npm install` to load up the project's dev-dependencies.

Do whatever you like from the following choices:

1. [run `$ npm start`](#-npm-start-) to concurrently build files and run tests in watch mode

2. Open two terminal tabs and [run `$ npm run build:watch`](#-npm-start-) in one and [run `$ npm run test:watch`](#-npm-start-) in the other

3. Build and test manually after making changes with `$ npm run build:dev` and [`$ npm test`](#-npm-test-)

Setup Complete! 🚀

<hr>

### Building Your Module `||` The Meat of Your Contribution

AsyncAF prototype methods that act on arrays live in `/lib/methods/arrays`. If you're contributing a method that acts on objects it would reside in `/lib/methods/objects` and so on.

So for our (naive) asynchronous adding module, let's call it `sumAF`, create a new file named `sumAF.js` in the `lib/methods/arrays` directory.

```
AsyncAF/
├── lib/
|   ├── _internal/
|   ├── classes/
|   └── methods/
|       ├── arrays/
|       |   └── sumAF.js
|       ├── objects/
|       └── other/
└── test/
    ├── classes/
    └── methods/
        ├── arrays/
        ├── objects/
        └── other/
```<commit_msg>docs: quick fix in setup section<commit_after># Contributing

## Workflow

To demonstrate the proper workflow for contributing to AsyncAF, (❤️ Thanks! ❤️) let's say you want to add a hypothetical feature on the AsyncAf prototype; for example, a method that acts on an array of non-promises or promises that resolve to numbers and naively adds them up.

<hr>

### Setup

First things first; fork this repo and clone it to your machine.

Once you've got the files open, run `$ npm install` to load up the project's dev-dependencies.

Do whatever you like from the following choices:

1. [run `$ npm start`](#-npm-start-) to concurrently build files and run tests in watch mode

2. Open two terminal tabs and [run `$ npm run build:watch`](#-npm-start-) in one and [run `$ npm run test:watch`](#-npm-start-) in the other

3. Build and test manually after making changes with [`$ npm test`](#-npm-test-)

Setup Complete! 🚀

<hr>

### Building Your Module `||` The Meat of Your Contribution

AsyncAF prototype methods that act on arrays live in `/lib/methods/arrays`. If you're contributing a method that acts on objects it would reside in `/lib/methods/objects` and so on.

So for our (naive) asynchronous adding module, let's call it `sumAF`, create a new file named `sumAF.js` in the `lib/methods/arrays` directory.

```
AsyncAF/
├── lib/
|   ├── _internal/
|   ├── classes/
|   └── methods/
|       ├── arrays/
|       |   └── sumAF.js
|       ├── objects/
|       └── other/
└── test/
    ├── classes/
    └── methods/
        ├── arrays/
        ├── objects/
        └── other/
```
{'fraction_non_alphanumeric': 0.12401388450615336, 'fraction_numerical': 0.0018933417481855476, 'mean_word_length': 3.266487213997308, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 7, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '296091', 'n_tokens_mistral': 1005, 'n_tokens_neox': 981, 'n_words': 451}