# @randomsts/code-generator

> A lightweight CLI to recursively include all file from a directory in a single source file.

Latest version **2.9.11** (published 2023-01-28) · MIT license · 0 weekly downloads

## Install

```sh
npm install @randomsts/code-generator
pnpm add @randomsts/code-generator
yarn add @randomsts/code-generator
bun add @randomsts/code-generator
```

Provides the command `randoms-generator`.

## 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 | 2.9.11 |
| Published | 2023-01-28 |
| First published | 2023-01-15 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | CommonJS |
| Dependencies | 0 |
| Unpacked size | 28.7 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 3 |
| Author | Zain-ul-din |
| Maintainers | zain-ul-din |
| Keywords | randomsts, randoms, code-generator, cli, randoms-cli, randoms-code-generator, randoms-code-generator-cli, randoms-backend, randoms-code-generator-npm, npm-randoms-code-generator, @randoms-pkg/code-generator, code generator, file inclusion, directory traversal, source code, lightweight package, recursive inclusion, JavaScript, Node.js, module bundler, build tool |

## Links

- npm: https://www.npmjs.com/package/@randomsts/code-generator
- Repository: https://github.com/RandomsDev/code-generator
- Issues: https://github.com/RandomsDev/code-generator/issues
- npm.io page: https://npm.io/package/@randomsts/code-generator

## Alternatives

- [@salesforce/cli](https://npm.io/package/@salesforce/cli.md) — 389.7K weekly downloads
- [@mintlify/cli](https://npm.io/package/@mintlify/cli.md) — 208.9K weekly downloads
- [@grafana/e2e-selectors](https://npm.io/package/@grafana/e2e-selectors.md) — 128.7K weekly downloads
- [mintlify](https://npm.io/package/mintlify.md) — 112.0K weekly downloads
- [@intlayer/cli](https://npm.io/package/@intlayer/cli.md) — 22.8K weekly downloads

## Recent versions

- 2.9.11 (latest) — 2023-01-28
- 2.9.10 — 2023-01-28
- 2.9.9 — 2023-01-27
- 2.9.8 — 2023-01-22
- 2.9.7 — 2023-01-22
- 2.9.6 — 2023-01-17
- 2.9.5 — 2023-01-17
- 2.9.4 — 2023-01-17
- 2.9.3 — 2023-01-17
- 2.9.2 — 2023-01-17
- 2.7.0 — 2023-01-16
- 2.6.9 — 2023-01-15
- 2.6.8 — 2023-01-15

## README

## @randomsts/code-generator package

A lightweight CLI to recursively include all file from a directory in a single source file.

- [Install on npm](https://www.npmjs.com/package/@randomsts/code-generator)
- [Github Link](https://github.com/RandomsDev/code-generator)


## USAGE:-

- install package 

```bash
  ~ npm i @randomsts/code-generator
  # or
  ~ yarn add @randomsts/code-generator 
```

```typescript
import CodeGenerator from '@randomsts/code-generator';
const codeGenerator = new CodeGenerator ();
codeGenerator.writeToFile ();
```

- Add ```randoms.config.json``` file in the root of the project

```json
{
  "target":  "./src",
  "include":  "^(?:[a-zA-Z0-9]+|\\[(?:\\.{3})?[a-zA-Z0-9]+\\])\\.js$",
  "outputDir": "./dist",
  "outputFile": "output.js"
}
```


# `OR`


- install package as a dev dependency 

```bash
  ~ npm i @randomsts/code-generator -D
  # or
  ~ yarn add @randomsts/code-generator -D
```

- Add ```randoms.config.json``` file in the root of the project

```json
{
  "target":  "./src",
  "include":  "^(?:[a-zA-Z0-9]+|\\[(?:\\.{3})?[a-zA-Z0-9]+\\])\\.js$",
  "outputDir": "./dist",
  "outputFile": "output.js"
}
```

- Add CLI in scripts
```JSON
 "scripts": {
   "dev": "randoms-generator"
 },
```

- test
```bash 
  ~ npm run dev
  # or
  ~ yarn dev
```

#

---

## Docs

### Advance Usage

```json
{
  "target":  "./src",
  "include":  "^(?:[a-zA-Z0-9]+|\\[(?:\\.{3})?[a-zA-Z0-9]+\\])\\.js$",
  "outputDir": "./dist",
  "outputFile": "output.js",
  "preservedFiles": {
    "./_index.js":  ["getProps"],
    "./server/_server.js": ["getServerSideProps"]
  }
}
```

> randoms.config.json

|   Key       | DESCRIPTION          | 
|-------------|-------------|       
| target      | Target folder from where to include files **E.g** ```./src```             |       
| include     | determines which files to include in the target folder. **E.g** ```Regex Exp.```  |     
| outputDir   | Assign folder where to create output file. **E.g** ```./dist```                 | 
| outputFile  | output file name. **E.g** ```./output.js```  |
| preservedFiles   | ```Optional field!```                        |

**Preserved Files:-**

| Key 							  |  Expected named import |
|---------------------------------|---------------------------------------------------|
|  ```file relative path``` **E.g** ```./_index.js```   | arrays of expected import name **E.g** ```["getProps"]``` |

**Example:-**
```js
/// file: randoms.config.json
"preservedFiles": {
    "./_index.js":  ["getProps"]
}

/// file: output.js // outut file
const _ = require ("./index.js");
module.exports = {
	getProps: _.getProps,
} 

```

#

### **Sample Output file:-**

```js
// output.js

const _ = require ("./index.js");
const __ = require ("./products/apis/mine.js");
const ___ = require ("./products/index.js");
const ____ = require ("./products/products.js");
const _____ = require ("./products/store/index.js");
const ______ = require ("./server/_server.js");
const _______ = require ("./server.js");
const ________ = require ("./tester/index.js");
const _________ = require ("./[...index].js");
const __________ = require ("./_index.js");

module.exports = { 
    default: [_,__,___,____,_____,_______,________,_________],
    /* preserved exports */
    getServerSideProps: ______.getServerSideProps,
    getProps: __________.getProps
};
```


###

> [contribute to this project on Github](https://github.com/RandomsDev/code-generator)

<!-- about -->
<div align="center">
<h4 font-weight="bold">This repository is maintained by <a href="https://github.com/Zain-ul-din">Zain-Ul-Din</a></h4>
<p> Show some ❤️ by starring this awesome repository! </p>
</div>

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