@arikajs/cli 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +366 -0
- package/dist/bin/arika.d.ts +3 -0
- package/dist/bin/arika.d.ts.map +1 -0
- package/dist/bin/arika.js +21 -0
- package/dist/bin/arika.js.map +1 -0
- package/dist/src/ApplicationLoader.d.ts +8 -0
- package/dist/src/ApplicationLoader.d.ts.map +1 -0
- package/dist/src/ApplicationLoader.js +31 -0
- package/dist/src/ApplicationLoader.js.map +1 -0
- package/dist/src/Bootstrap.d.ts +5 -0
- package/dist/src/Bootstrap.d.ts.map +1 -0
- package/dist/src/Bootstrap.js +66 -0
- package/dist/src/Bootstrap.js.map +1 -0
- package/dist/src/Commands/CacheTableCommand.d.ts +7 -0
- package/dist/src/Commands/CacheTableCommand.d.ts.map +1 -0
- package/dist/src/Commands/CacheTableCommand.js +45 -0
- package/dist/src/Commands/CacheTableCommand.js.map +1 -0
- package/dist/src/Commands/DatabaseCommand.d.ts +11 -0
- package/dist/src/Commands/DatabaseCommand.d.ts.map +1 -0
- package/dist/src/Commands/DatabaseCommand.js +94 -0
- package/dist/src/Commands/DatabaseCommand.js.map +1 -0
- package/dist/src/Commands/DbSeedCommand.d.ts +10 -0
- package/dist/src/Commands/DbSeedCommand.d.ts.map +1 -0
- package/dist/src/Commands/DbSeedCommand.js +70 -0
- package/dist/src/Commands/DbSeedCommand.js.map +1 -0
- package/dist/src/Commands/DocsGenerateCommand.d.ts +8 -0
- package/dist/src/Commands/DocsGenerateCommand.d.ts.map +1 -0
- package/dist/src/Commands/DocsGenerateCommand.js +102 -0
- package/dist/src/Commands/DocsGenerateCommand.js.map +1 -0
- package/dist/src/Commands/KeyGenerateCommand.d.ts +9 -0
- package/dist/src/Commands/KeyGenerateCommand.d.ts.map +1 -0
- package/dist/src/Commands/KeyGenerateCommand.js +44 -0
- package/dist/src/Commands/KeyGenerateCommand.js.map +1 -0
- package/dist/src/Commands/ListCommand.d.ts +7 -0
- package/dist/src/Commands/ListCommand.d.ts.map +1 -0
- package/dist/src/Commands/ListCommand.js +26 -0
- package/dist/src/Commands/ListCommand.js.map +1 -0
- package/dist/src/Commands/MakeMigrationCommand.d.ts +14 -0
- package/dist/src/Commands/MakeMigrationCommand.d.ts.map +1 -0
- package/dist/src/Commands/MakeMigrationCommand.js +72 -0
- package/dist/src/Commands/MakeMigrationCommand.js.map +1 -0
- package/dist/src/Commands/MakeSeederCommand.d.ts +14 -0
- package/dist/src/Commands/MakeSeederCommand.d.ts.map +1 -0
- package/dist/src/Commands/MakeSeederCommand.js +56 -0
- package/dist/src/Commands/MakeSeederCommand.js.map +1 -0
- package/dist/src/Commands/MigrateCommand.d.ts +10 -0
- package/dist/src/Commands/MigrateCommand.d.ts.map +1 -0
- package/dist/src/Commands/MigrateCommand.js +69 -0
- package/dist/src/Commands/MigrateCommand.js.map +1 -0
- package/dist/src/Commands/MigrateRollbackCommand.d.ts +10 -0
- package/dist/src/Commands/MigrateRollbackCommand.d.ts.map +1 -0
- package/dist/src/Commands/MigrateRollbackCommand.js +69 -0
- package/dist/src/Commands/MigrateRollbackCommand.js.map +1 -0
- package/dist/src/Commands/NewCommand.d.ts +8 -0
- package/dist/src/Commands/NewCommand.d.ts.map +1 -0
- package/dist/src/Commands/NewCommand.js +112 -0
- package/dist/src/Commands/NewCommand.js.map +1 -0
- package/dist/src/Commands/QueueTableCommand.d.ts +7 -0
- package/dist/src/Commands/QueueTableCommand.d.ts.map +1 -0
- package/dist/src/Commands/QueueTableCommand.js +49 -0
- package/dist/src/Commands/QueueTableCommand.js.map +1 -0
- package/dist/src/Commands/ServeCommand.d.ts +7 -0
- package/dist/src/Commands/ServeCommand.d.ts.map +1 -0
- package/dist/src/Commands/ServeCommand.js +60 -0
- package/dist/src/Commands/ServeCommand.js.map +1 -0
- package/dist/src/TemplateManager.d.ts +19 -0
- package/dist/src/TemplateManager.d.ts.map +1 -0
- package/dist/src/TemplateManager.js +133 -0
- package/dist/src/TemplateManager.js.map +1 -0
- package/dist/src/index.d.ts +3 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +8 -0
- package/dist/src/index.js.map +1 -0
- package/dist/tests/Cli.test.d.ts +2 -0
- package/dist/tests/Cli.test.d.ts.map +1 -0
- package/dist/tests/Cli.test.js +16 -0
- package/dist/tests/Cli.test.js.map +1 -0
- package/package.json +55 -0
- package/templates/app/.env.example +47 -0
- package/templates/app/app/Controllers/UserController.ts +88 -0
- package/templates/app/app/Http/Kernel.ts +18 -0
- package/templates/app/app/Models/User.ts +15 -0
- package/templates/app/bootstrap/app.ts +13 -0
- package/templates/app/config/app.ts +9 -0
- package/templates/app/config/cache.ts +37 -0
- package/templates/app/config/database.ts +36 -0
- package/templates/app/config/filesystems.ts +33 -0
- package/templates/app/config/http.ts +5 -0
- package/templates/app/config/logging.ts +35 -0
- package/templates/app/config/mail.ts +27 -0
- package/templates/app/config/queue.ts +40 -0
- package/templates/app/database/migrations/0001_create_users_table.ts +23 -0
- package/templates/app/package.json +21 -0
- package/templates/app/resources/views/welcome.html +470 -0
- package/templates/app/routes/api.ts +34 -0
- package/templates/app/routes/web.ts +6 -0
- package/templates/app/server.ts +16 -0
- package/templates/app/tsconfig.json +15 -0
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const node_test_1 = require("node:test");
|
|
7
|
+
const node_assert_1 = __importDefault(require("node:assert"));
|
|
8
|
+
const src_1 = require("../src");
|
|
9
|
+
(0, node_test_1.describe)('CLI Bootstrap', () => {
|
|
10
|
+
(0, node_test_1.it)('boots correctly and returns a CommandRegistry', async () => {
|
|
11
|
+
const registry = await src_1.Bootstrap.boot();
|
|
12
|
+
node_assert_1.default.ok(registry !== null);
|
|
13
|
+
node_assert_1.default.strictEqual(typeof registry.run, 'function');
|
|
14
|
+
});
|
|
15
|
+
});
|
|
16
|
+
//# sourceMappingURL=Cli.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Cli.test.js","sourceRoot":"","sources":["../../tests/Cli.test.ts"],"names":[],"mappings":";;;;;AACA,yCAA+C;AAC/C,8DAAiC;AACjC,gCAAmC;AAEnC,IAAA,oBAAQ,EAAC,eAAe,EAAE,GAAG,EAAE;IAC3B,IAAA,cAAE,EAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;QAC3D,MAAM,QAAQ,GAAG,MAAM,eAAS,CAAC,IAAI,EAAE,CAAC;QACxC,qBAAM,CAAC,EAAE,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC;QAC7B,qBAAM,CAAC,WAAW,CAAC,OAAO,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@arikajs/cli",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"description": "The command-line interface for the ArikaJS framework.",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"types": "dist/index.d.ts",
|
|
8
|
+
"bin": {
|
|
9
|
+
"arika": "dist/bin/arika.js"
|
|
10
|
+
},
|
|
11
|
+
"scripts": {
|
|
12
|
+
"build": "tsc -p tsconfig.json && chmod +x dist/bin/arika.js",
|
|
13
|
+
"build:tests": "tsc -p tsconfig.test.json",
|
|
14
|
+
"clean": "rm -rf dist",
|
|
15
|
+
"prepare": "echo skip",
|
|
16
|
+
"test": "npm run build && npm run build:tests && node --test 'dist/tests/**/*.test.js'",
|
|
17
|
+
"test:watch": "npm run build && npm run build:tests && node --test --watch 'dist/tests/**/*.test.js'"
|
|
18
|
+
},
|
|
19
|
+
"files": [
|
|
20
|
+
"dist",
|
|
21
|
+
"templates"
|
|
22
|
+
],
|
|
23
|
+
"keywords": [
|
|
24
|
+
"arika",
|
|
25
|
+
"arika-js",
|
|
26
|
+
"cli",
|
|
27
|
+
"console",
|
|
28
|
+
"scaffolding"
|
|
29
|
+
],
|
|
30
|
+
"engines": {
|
|
31
|
+
"node": ">=20.0.0"
|
|
32
|
+
},
|
|
33
|
+
"repository": {
|
|
34
|
+
"type": "git",
|
|
35
|
+
"url": "git+https://github.com/arikajs/cli.git"
|
|
36
|
+
},
|
|
37
|
+
"bugs": {
|
|
38
|
+
"url": "https://github.com/arikajs/cli/issues"
|
|
39
|
+
},
|
|
40
|
+
"homepage": "https://github.com/arikajs/cli#readme",
|
|
41
|
+
"dependencies": {
|
|
42
|
+
"@arikajs/console": "^0.0.1",
|
|
43
|
+
"@arikajs/database": "^0.0.1",
|
|
44
|
+
"@arikajs/docs": "^0.0.1",
|
|
45
|
+
"inquirer": "^8.2.7",
|
|
46
|
+
"dotenv": "^16.4.5"
|
|
47
|
+
},
|
|
48
|
+
"devDependencies": {
|
|
49
|
+
"@types/dotenv": "^8.2.3",
|
|
50
|
+
"@types/inquirer": "^8.2.12",
|
|
51
|
+
"@types/node": "^20.11.24",
|
|
52
|
+
"typescript": "^5.3.3"
|
|
53
|
+
},
|
|
54
|
+
"author": "Prakash Tank"
|
|
55
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
APP_NAME=ArikaApp
|
|
2
|
+
APP_ENV=development
|
|
3
|
+
APP_PORT=3000
|
|
4
|
+
APP_DEBUG=true
|
|
5
|
+
APP_KEY=
|
|
6
|
+
APP_URL=http://localhost:3000
|
|
7
|
+
APP_TIMEZONE=UTC
|
|
8
|
+
|
|
9
|
+
DB_CONNECTION=mysql
|
|
10
|
+
DB_HOST=127.0.0.1
|
|
11
|
+
DB_PORT=3306
|
|
12
|
+
DB_DATABASE=arikajs
|
|
13
|
+
DB_USERNAME=root
|
|
14
|
+
DB_PASSWORD=
|
|
15
|
+
|
|
16
|
+
REDIS_CLIENT=ioredis
|
|
17
|
+
REDIS_HOST=127.0.0.1
|
|
18
|
+
REDIS_PASSWORD=null
|
|
19
|
+
REDIS_PORT=6379
|
|
20
|
+
REDIS_DB=0
|
|
21
|
+
|
|
22
|
+
MAIL_MAILER=log
|
|
23
|
+
MAIL_HOST=127.0.0.1
|
|
24
|
+
MAIL_PORT=2525
|
|
25
|
+
MAIL_USERNAME=
|
|
26
|
+
MAIL_PASSWORD=
|
|
27
|
+
MAIL_ENCRYPTION=tls
|
|
28
|
+
MAIL_FROM_ADDRESS="hello@example.com"
|
|
29
|
+
MAIL_FROM_NAME="${APP_NAME}"
|
|
30
|
+
|
|
31
|
+
FILESYSTEM_DISK=local
|
|
32
|
+
|
|
33
|
+
AWS_ACCESS_KEY_ID=
|
|
34
|
+
AWS_SECRET_ACCESS_KEY=
|
|
35
|
+
AWS_DEFAULT_REGION=us-east-1
|
|
36
|
+
AWS_BUCKET=
|
|
37
|
+
AWS_URL=
|
|
38
|
+
AWS_ENDPOINT=
|
|
39
|
+
AWS_USE_PATH_STYLE_ENDPOINT=false
|
|
40
|
+
|
|
41
|
+
LOG_CHANNEL=stack
|
|
42
|
+
LOG_LEVEL=debug
|
|
43
|
+
|
|
44
|
+
QUEUE_CONNECTION=sync
|
|
45
|
+
|
|
46
|
+
CACHE_STORE=database
|
|
47
|
+
CACHE_PREFIX=arika_cache
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { User } from '../Models/User';
|
|
2
|
+
|
|
3
|
+
export class UserController {
|
|
4
|
+
/**
|
|
5
|
+
* Display a listing of users.
|
|
6
|
+
*/
|
|
7
|
+
async index(req: any, res: any) {
|
|
8
|
+
const users = await User.all();
|
|
9
|
+
return res.json(users);
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Display the specified user.
|
|
14
|
+
*/
|
|
15
|
+
async show(req: any, res: any) {
|
|
16
|
+
const user = await User.find(req.params.id);
|
|
17
|
+
|
|
18
|
+
if (!user) {
|
|
19
|
+
return res.status(404).json({
|
|
20
|
+
message: 'User not found'
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
return res.json(user);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Store a newly created user.
|
|
29
|
+
*/
|
|
30
|
+
async store(req: any, res: any) {
|
|
31
|
+
const { name, email, password } = req.body;
|
|
32
|
+
|
|
33
|
+
// Basic validation
|
|
34
|
+
if (!name || !email || !password) {
|
|
35
|
+
return res.status(400).json({
|
|
36
|
+
message: 'Name, email, and password are required'
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
const user = await User.create({
|
|
41
|
+
name,
|
|
42
|
+
email,
|
|
43
|
+
password
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
return res.status(201).json(user);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Update the specified user.
|
|
51
|
+
*/
|
|
52
|
+
async update(req: any, res: any) {
|
|
53
|
+
const user = await User.find(req.params.id);
|
|
54
|
+
|
|
55
|
+
if (!user) {
|
|
56
|
+
return res.status(404).json({
|
|
57
|
+
message: 'User not found'
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
const { name, email, password } = req.body;
|
|
62
|
+
|
|
63
|
+
await user.update({
|
|
64
|
+
...(name && { name }),
|
|
65
|
+
...(email && { email }),
|
|
66
|
+
...(password && { password })
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
return res.json(user);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Remove the specified user.
|
|
74
|
+
*/
|
|
75
|
+
async destroy(req: any, res: any) {
|
|
76
|
+
const user = await User.find(req.params.id);
|
|
77
|
+
|
|
78
|
+
if (!user) {
|
|
79
|
+
return res.status(404).json({
|
|
80
|
+
message: 'User not found'
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
await user.delete();
|
|
85
|
+
|
|
86
|
+
return res.status(204).send();
|
|
87
|
+
}
|
|
88
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Kernel as BaseKernel } from 'arikajs';
|
|
2
|
+
|
|
3
|
+
export class Kernel extends BaseKernel {
|
|
4
|
+
/**
|
|
5
|
+
* The application's route middleware groups.
|
|
6
|
+
*/
|
|
7
|
+
protected middlewareGroups = {
|
|
8
|
+
web: [],
|
|
9
|
+
api: [],
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* The application's route middleware aliases.
|
|
14
|
+
*/
|
|
15
|
+
protected routeMiddleware = {
|
|
16
|
+
'auth': (request: any, next: any) => next(request), // dummy for now
|
|
17
|
+
};
|
|
18
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { createApp } from 'arikajs';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
|
|
4
|
+
const app = createApp(
|
|
5
|
+
path.resolve(__dirname, '../')
|
|
6
|
+
);
|
|
7
|
+
|
|
8
|
+
import { Kernel } from '../app/Http/Kernel';
|
|
9
|
+
import { Kernel as BaseKernel } from 'arikajs';
|
|
10
|
+
|
|
11
|
+
app.singleton(BaseKernel, () => new Kernel(app));
|
|
12
|
+
|
|
13
|
+
export default app;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
|
|
2
|
+
export default {
|
|
3
|
+
name: process.env.APP_NAME || 'ArikaJS',
|
|
4
|
+
env: process.env.APP_ENV || 'production',
|
|
5
|
+
debug: process.env.APP_DEBUG === 'true',
|
|
6
|
+
url: process.env.APP_URL || 'http://localhost',
|
|
7
|
+
timezone: process.env.APP_TIMEZONE || 'UTC',
|
|
8
|
+
key: process.env.APP_KEY,
|
|
9
|
+
};
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
export default {
|
|
2
|
+
/**
|
|
3
|
+
* Default Cache Store
|
|
4
|
+
*/
|
|
5
|
+
default: process.env.CACHE_STORE || 'database',
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Cache Stores
|
|
9
|
+
*/
|
|
10
|
+
stores: {
|
|
11
|
+
memory: {
|
|
12
|
+
driver: 'memory',
|
|
13
|
+
},
|
|
14
|
+
|
|
15
|
+
database: {
|
|
16
|
+
driver: 'database',
|
|
17
|
+
table: 'cache',
|
|
18
|
+
connection: null,
|
|
19
|
+
lock_connection: null,
|
|
20
|
+
},
|
|
21
|
+
|
|
22
|
+
redis: {
|
|
23
|
+
driver: 'redis',
|
|
24
|
+
connection: 'default',
|
|
25
|
+
mode: process.env.REDIS_MODE || 'standalone', // standalone, sentinel, cluster
|
|
26
|
+
host: process.env.REDIS_HOST || '127.0.0.1',
|
|
27
|
+
password: process.env.REDIS_PASSWORD || null,
|
|
28
|
+
port: process.env.REDIS_PORT || 6379,
|
|
29
|
+
database: process.env.REDIS_DB || 0,
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Cache Key Prefix
|
|
35
|
+
*/
|
|
36
|
+
prefix: process.env.CACHE_PREFIX || 'arika_cache',
|
|
37
|
+
};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
|
|
2
|
+
export default {
|
|
3
|
+
default: process.env.DB_CONNECTION || 'sqlite',
|
|
4
|
+
|
|
5
|
+
connections: {
|
|
6
|
+
sqlite: {
|
|
7
|
+
client: 'sqlite3',
|
|
8
|
+
connection: {
|
|
9
|
+
filename: process.env.DB_DATABASE || './database.sqlite'
|
|
10
|
+
},
|
|
11
|
+
useNullAsDefault: true
|
|
12
|
+
},
|
|
13
|
+
|
|
14
|
+
mysql: {
|
|
15
|
+
client: 'mysql2',
|
|
16
|
+
connection: {
|
|
17
|
+
host: process.env.DB_HOST || '127.0.0.1',
|
|
18
|
+
port: parseInt(process.env.DB_PORT || '3306'),
|
|
19
|
+
database: process.env.DB_DATABASE || 'arika',
|
|
20
|
+
user: process.env.DB_USERNAME || 'root',
|
|
21
|
+
password: process.env.DB_PASSWORD || ''
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
|
|
25
|
+
postgres: {
|
|
26
|
+
client: 'pg',
|
|
27
|
+
connection: {
|
|
28
|
+
host: process.env.DB_HOST || '127.0.0.1',
|
|
29
|
+
port: parseInt(process.env.DB_PORT || '5432'),
|
|
30
|
+
database: process.env.DB_DATABASE || 'arika',
|
|
31
|
+
user: process.env.DB_USERNAME || 'postgres',
|
|
32
|
+
password: process.env.DB_PASSWORD || ''
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export default {
|
|
2
|
+
/**
|
|
3
|
+
* Default Filesystem Disk
|
|
4
|
+
*/
|
|
5
|
+
default: process.env.FILESYSTEM_DISK || 'local',
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Filesystem Disks
|
|
9
|
+
*/
|
|
10
|
+
disks: {
|
|
11
|
+
local: {
|
|
12
|
+
driver: 'local',
|
|
13
|
+
root: './storage/app',
|
|
14
|
+
},
|
|
15
|
+
|
|
16
|
+
public: {
|
|
17
|
+
driver: 'local',
|
|
18
|
+
root: './storage/public',
|
|
19
|
+
url: (process.env.APP_URL || 'http://localhost:3000') + '/storage',
|
|
20
|
+
},
|
|
21
|
+
|
|
22
|
+
s3: {
|
|
23
|
+
driver: 's3',
|
|
24
|
+
key: process.env.AWS_ACCESS_KEY_ID,
|
|
25
|
+
secret: process.env.AWS_SECRET_ACCESS_KEY,
|
|
26
|
+
region: process.env.AWS_DEFAULT_REGION || 'us-east-1',
|
|
27
|
+
bucket: process.env.AWS_BUCKET,
|
|
28
|
+
url: process.env.AWS_URL,
|
|
29
|
+
endpoint: process.env.AWS_ENDPOINT,
|
|
30
|
+
forcePathStyle: process.env.AWS_USE_PATH_STYLE_ENDPOINT === 'true',
|
|
31
|
+
},
|
|
32
|
+
},
|
|
33
|
+
};
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export default {
|
|
2
|
+
/**
|
|
3
|
+
* Default Log Channel
|
|
4
|
+
*/
|
|
5
|
+
default: process.env.LOG_CHANNEL || 'stack',
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Log Channels
|
|
9
|
+
*/
|
|
10
|
+
channels: {
|
|
11
|
+
stack: {
|
|
12
|
+
driver: 'stack',
|
|
13
|
+
channels: ['console', 'single'],
|
|
14
|
+
ignore_exceptions: false,
|
|
15
|
+
},
|
|
16
|
+
|
|
17
|
+
single: {
|
|
18
|
+
driver: 'file',
|
|
19
|
+
path: './storage/logs/arika.log',
|
|
20
|
+
level: process.env.LOG_LEVEL || 'debug',
|
|
21
|
+
},
|
|
22
|
+
|
|
23
|
+
daily: {
|
|
24
|
+
driver: 'daily',
|
|
25
|
+
path: './storage/logs/arika.log',
|
|
26
|
+
level: process.env.LOG_LEVEL || 'debug',
|
|
27
|
+
days: 14,
|
|
28
|
+
},
|
|
29
|
+
|
|
30
|
+
console: {
|
|
31
|
+
driver: 'console',
|
|
32
|
+
level: process.env.LOG_LEVEL || 'debug',
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export default {
|
|
2
|
+
default: process.env.MAIL_MAILER || 'log',
|
|
3
|
+
|
|
4
|
+
mailers: {
|
|
5
|
+
smtp: {
|
|
6
|
+
transport: 'smtp',
|
|
7
|
+
host: process.env.MAIL_HOST || '127.0.0.1',
|
|
8
|
+
port: Number(process.env.MAIL_PORT || 2525),
|
|
9
|
+
encryption: process.env.MAIL_ENCRYPTION || 'tls',
|
|
10
|
+
username: process.env.MAIL_USERNAME,
|
|
11
|
+
password: process.env.MAIL_PASSWORD,
|
|
12
|
+
},
|
|
13
|
+
|
|
14
|
+
log: {
|
|
15
|
+
transport: 'log',
|
|
16
|
+
},
|
|
17
|
+
|
|
18
|
+
array: {
|
|
19
|
+
transport: 'array',
|
|
20
|
+
},
|
|
21
|
+
},
|
|
22
|
+
|
|
23
|
+
from: {
|
|
24
|
+
address: process.env.MAIL_FROM_ADDRESS || 'hello@example.com',
|
|
25
|
+
name: process.env.MAIL_FROM_NAME || 'Example',
|
|
26
|
+
},
|
|
27
|
+
};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
export default {
|
|
2
|
+
/**
|
|
3
|
+
* Default Queue Connection Name
|
|
4
|
+
*/
|
|
5
|
+
default: process.env.QUEUE_CONNECTION || 'sync',
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Queue Connections
|
|
9
|
+
*/
|
|
10
|
+
connections: {
|
|
11
|
+
sync: {
|
|
12
|
+
driver: 'sync',
|
|
13
|
+
},
|
|
14
|
+
|
|
15
|
+
database: {
|
|
16
|
+
driver: 'database',
|
|
17
|
+
table: 'jobs',
|
|
18
|
+
queue: 'default',
|
|
19
|
+
retry_after: 90,
|
|
20
|
+
after_commit: false,
|
|
21
|
+
},
|
|
22
|
+
},
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Job Batching
|
|
26
|
+
*/
|
|
27
|
+
batching: {
|
|
28
|
+
database: process.env.DB_CONNECTION || 'mysql',
|
|
29
|
+
table: 'job_batches',
|
|
30
|
+
},
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Failed Queue Jobs
|
|
34
|
+
*/
|
|
35
|
+
failed: {
|
|
36
|
+
driver: process.env.QUEUE_FAILED_DRIVER || 'database-uuids',
|
|
37
|
+
database: process.env.DB_CONNECTION || 'mysql',
|
|
38
|
+
table: 'failed_jobs',
|
|
39
|
+
},
|
|
40
|
+
};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Migration, SchemaBuilder } from '@arikajs/database';
|
|
2
|
+
|
|
3
|
+
export default class CreateUsersTable extends Migration {
|
|
4
|
+
/**
|
|
5
|
+
* Run the migrations.
|
|
6
|
+
*/
|
|
7
|
+
public async up(schema: SchemaBuilder): Promise<void> {
|
|
8
|
+
await schema.create('users', (table: any) => {
|
|
9
|
+
table.id();
|
|
10
|
+
table.string('name');
|
|
11
|
+
table.string('email').unique();
|
|
12
|
+
table.string('password');
|
|
13
|
+
table.timestamps();
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Reverse the migrations.
|
|
19
|
+
*/
|
|
20
|
+
public async down(schema: SchemaBuilder): Promise<void> {
|
|
21
|
+
await schema.dropIfExists('users');
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "rest-api-demo",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "ArikaJS API Project",
|
|
5
|
+
"private": true,
|
|
6
|
+
"scripts": {
|
|
7
|
+
"dev": "arika serve --dev",
|
|
8
|
+
"start": "arika serve",
|
|
9
|
+
"build": "tsc"
|
|
10
|
+
},
|
|
11
|
+
"dependencies": {
|
|
12
|
+
"arikajs": "^0.1.4"
|
|
13
|
+
},
|
|
14
|
+
"devDependencies": {
|
|
15
|
+
"@arikajs/cli": "^0.1.4",
|
|
16
|
+
"typescript": "^5.0.0",
|
|
17
|
+
"tsx": "^4.0.0",
|
|
18
|
+
"@types/node": "^20.0.0"
|
|
19
|
+
},
|
|
20
|
+
"author": "Prakash Tank"
|
|
21
|
+
}
|