1.0.0 • Published 6 months ago
griotai v1.0.0
Akwaba CLI Tool
The Akwaba CLI tool is a custom Node.js utility designed to simplify working with React Native projects and Expo Snack files. It automates the process of creating files, installing dependencies, and managing configurations like babel.config.js
.
Features
File Management:
- Creates files in a specified
/app
directory. - Handles existing files by asking for user confirmation to replace or skip.
- Creates files in a specified
Dependency Installation:
- Installs dependencies specified in the input JSON.
- Automatically initializes an
npm
project in thecurrent working
directory.
Babel Configuration Management:
- Detects if a
babel.config.js
file exists. - Offers options to:
- Merge the new configuration with the existing one.
- Replace the existing configuration.
- Skip updating the file.
- Ensures merged configurations avoid duplicates in presets and plugins.
- Detects if a
Installation
- Clone the repository or download the script.
- Make the script executable:
chmod +x index.js
- Install dependencies:
npm install fs-extra inquirer
Usage
Run the CLI tool using the following command:
npx akwaba add <base64_encoded_json>
Input JSON Structure
The CLI accepts a Base64-encoded JSON string as input. The JSON should have the following structure:
{
"dependencies": {
"expo-linear-gradient": {
"version": "8.2.1"
}
},
"files": {
"App.js": {
"type": "CODE",
"contents": "<file_content_here>"
},
"babel.config.js": {
"type": "CODE",
"contents": "<babel_config_content_here>"
}
}
}
Example Command
npx akwaba add eyJkZXBlbmRlbmNpZXMiOnsiZXhwbw0tbGluZWFyLWdyYWRpZW50Ijp7InZlcnNpb24iOiI4LjIuMSJ9fSwiZmlsZXMiOnsiQXBwLmpzIjp7InR5cGUiOiJDT0RFIiwiY29udGVudHMiOiJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBMaW5lYXJHcmFkaWVudCB9IGZyb20gJ2V4cG8tbGluZWFyLWdyYWRpZW50JztcblxuZXhwb3J0IGRlZmF1bHQgKCkgPT4gKFxuICA8TGluZWFyR3JhZGllbnQgc3R5bGU9e3sgZmxleDogMSB9fSBjb2xvcnM9WydyZWQnLCAnd2hpdGUnLCAnYmx1ZSddIC8+XG4pOwoifSwiYmFiZWwuY29uZmlnLmpzIjp7InR5cGUiOiJDT0RFIiwiY29udGVudHMiOiJtb2R1bGUuZXhwb3J0cyA9IHsgcHJlc2V0czogWydtb2R1bGUtcHJlc2V0LWV4YW1wbGUnXSwgcGx1Z2luczogWydwbHVnaW4tZXhhbXBsZSddIH07In19fQ==
Key Functions
File Creation
- Creates files in the
temp/app
directory. - Checks if a file already exists and asks for confirmation to replace it.
Dependency Installation
- Initializes a new
npm
project in thetemp
directory. - Installs all specified dependencies with their versions.
Babel Configuration Management
- Detects existing
babel.config.js
. - Provides options to merge, replace, or skip updating.
- Merges configurations intelligently to avoid duplicates.
Development
Prerequisites
- Node.js installed on your system.
- Dependencies installed (
fs-extra
,inquirer
).
Running Locally
- Clone the repository.
- Run the script with a Base64-encoded JSON input:
node index.js add <base64_encoded_json>
License
This project is licensed under the MIT License.
1.0.0
6 months ago