@arikajs/cli 0.0.3 → 0.0.5
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/README.md +99 -6
- package/dist/bin/arika.js +2 -2
- package/dist/bin/arika.js.map +1 -1
- package/dist/src/ApplicationLoader.d.ts +5 -0
- package/dist/src/ApplicationLoader.d.ts.map +1 -1
- package/dist/src/ApplicationLoader.js +24 -2
- package/dist/src/ApplicationLoader.js.map +1 -1
- package/dist/src/Bootstrap.d.ts.map +1 -1
- package/dist/src/Bootstrap.js +35 -0
- package/dist/src/Bootstrap.js.map +1 -1
- package/dist/src/Commands/AuthApiInstallCommand.d.ts +24 -0
- package/dist/src/Commands/AuthApiInstallCommand.d.ts.map +1 -0
- package/dist/src/Commands/AuthApiInstallCommand.js +751 -0
- package/dist/src/Commands/AuthApiInstallCommand.js.map +1 -0
- package/dist/src/Commands/AuthInstallCommand.d.ts +7 -0
- package/dist/src/Commands/AuthInstallCommand.d.ts.map +1 -0
- package/dist/src/Commands/AuthInstallCommand.js +46 -0
- package/dist/src/Commands/AuthInstallCommand.js.map +1 -0
- package/dist/src/Commands/AuthWebInstallCommand.d.ts +31 -0
- package/dist/src/Commands/AuthWebInstallCommand.d.ts.map +1 -0
- package/dist/src/Commands/AuthWebInstallCommand.js +1100 -0
- package/dist/src/Commands/AuthWebInstallCommand.js.map +1 -0
- package/dist/src/Commands/BenchmarkCommand.d.ts +7 -0
- package/dist/src/Commands/BenchmarkCommand.d.ts.map +1 -0
- package/dist/src/Commands/BenchmarkCommand.js +25 -0
- package/dist/src/Commands/BenchmarkCommand.js.map +1 -0
- package/dist/src/Commands/CacheClearCommand.d.ts +7 -0
- package/dist/src/Commands/CacheClearCommand.d.ts.map +1 -0
- package/dist/src/Commands/CacheClearCommand.js +33 -0
- package/dist/src/Commands/CacheClearCommand.js.map +1 -0
- package/dist/src/Commands/CacheTableCommand.d.ts.map +1 -1
- package/dist/src/Commands/CacheTableCommand.js +21 -9
- package/dist/src/Commands/CacheTableCommand.js.map +1 -1
- package/dist/src/Commands/ConfigCacheCommand.d.ts +7 -0
- package/dist/src/Commands/ConfigCacheCommand.d.ts.map +1 -0
- package/dist/src/Commands/ConfigCacheCommand.js +86 -0
- package/dist/src/Commands/ConfigCacheCommand.js.map +1 -0
- package/dist/src/Commands/ConfigClearCommand.d.ts +7 -0
- package/dist/src/Commands/ConfigClearCommand.d.ts.map +1 -0
- package/dist/src/Commands/ConfigClearCommand.js +29 -0
- package/dist/src/Commands/ConfigClearCommand.js.map +1 -0
- package/dist/src/Commands/DocsGenerateCommand.d.ts +0 -1
- package/dist/src/Commands/DocsGenerateCommand.d.ts.map +1 -1
- package/dist/src/Commands/DocsGenerateCommand.js +68 -77
- package/dist/src/Commands/DocsGenerateCommand.js.map +1 -1
- package/dist/src/Commands/EnvValidateCommand.d.ts +7 -0
- package/dist/src/Commands/EnvValidateCommand.d.ts.map +1 -0
- package/dist/src/Commands/EnvValidateCommand.js +51 -0
- package/dist/src/Commands/EnvValidateCommand.js.map +1 -0
- package/dist/src/Commands/ListCommand.d.ts.map +1 -1
- package/dist/src/Commands/ListCommand.js +15 -8
- package/dist/src/Commands/ListCommand.js.map +1 -1
- package/dist/src/Commands/MakeCommand.d.ts +7 -0
- package/dist/src/Commands/MakeCommand.d.ts.map +1 -0
- package/dist/src/Commands/MakeCommand.js +110 -0
- package/dist/src/Commands/MakeCommand.js.map +1 -0
- package/dist/src/Commands/MakeCommandCommand.d.ts +20 -0
- package/dist/src/Commands/MakeCommandCommand.d.ts.map +1 -0
- package/dist/src/Commands/MakeCommandCommand.js +82 -0
- package/dist/src/Commands/MakeCommandCommand.js.map +1 -0
- package/dist/src/Commands/MakeControllerCommand.d.ts +17 -0
- package/dist/src/Commands/MakeControllerCommand.d.ts.map +1 -0
- package/dist/src/Commands/MakeControllerCommand.js +90 -0
- package/dist/src/Commands/MakeControllerCommand.js.map +1 -0
- package/dist/src/Commands/MakeEventCommand.d.ts +8 -0
- package/dist/src/Commands/MakeEventCommand.d.ts.map +1 -0
- package/dist/src/Commands/MakeEventCommand.js +48 -0
- package/dist/src/Commands/MakeEventCommand.js.map +1 -0
- package/dist/src/Commands/MakeJobCommand.d.ts +8 -0
- package/dist/src/Commands/MakeJobCommand.d.ts.map +1 -0
- package/dist/src/Commands/MakeJobCommand.js +55 -0
- package/dist/src/Commands/MakeJobCommand.js.map +1 -0
- package/dist/src/Commands/MakeListenerCommand.d.ts +8 -0
- package/dist/src/Commands/MakeListenerCommand.d.ts.map +1 -0
- package/dist/src/Commands/MakeListenerCommand.js +55 -0
- package/dist/src/Commands/MakeListenerCommand.js.map +1 -0
- package/dist/src/Commands/MakeMiddlewareCommand.d.ts +17 -0
- package/dist/src/Commands/MakeMiddlewareCommand.d.ts.map +1 -0
- package/dist/src/Commands/MakeMiddlewareCommand.js +69 -0
- package/dist/src/Commands/MakeMiddlewareCommand.js.map +1 -0
- package/dist/src/Commands/MakeMigrationCommand.js +4 -4
- package/dist/src/Commands/MakeMigrationCommand.js.map +1 -1
- package/dist/src/Commands/MakeModelCommand.d.ts +26 -0
- package/dist/src/Commands/MakeModelCommand.d.ts.map +1 -0
- package/dist/src/Commands/MakeModelCommand.js +193 -0
- package/dist/src/Commands/MakeModelCommand.js.map +1 -0
- package/dist/src/Commands/MakeProviderCommand.d.ts +17 -0
- package/dist/src/Commands/MakeProviderCommand.d.ts.map +1 -0
- package/dist/src/Commands/MakeProviderCommand.js +72 -0
- package/dist/src/Commands/MakeProviderCommand.js.map +1 -0
- package/dist/src/Commands/MakeViewCommand.d.ts +7 -0
- package/dist/src/Commands/MakeViewCommand.d.ts.map +1 -0
- package/dist/src/Commands/MakeViewCommand.js +37 -0
- package/dist/src/Commands/MakeViewCommand.js.map +1 -0
- package/dist/src/Commands/MigrateFreshCommand.d.ts +10 -0
- package/dist/src/Commands/MigrateFreshCommand.d.ts.map +1 -0
- package/dist/src/Commands/MigrateFreshCommand.js +129 -0
- package/dist/src/Commands/MigrateFreshCommand.js.map +1 -0
- package/dist/src/Commands/NewCommand.d.ts.map +1 -1
- package/dist/src/Commands/NewCommand.js +92 -24
- package/dist/src/Commands/NewCommand.js.map +1 -1
- package/dist/src/Commands/QueueFailedCommand.d.ts +7 -0
- package/dist/src/Commands/QueueFailedCommand.d.ts.map +1 -0
- package/dist/src/Commands/QueueFailedCommand.js +30 -0
- package/dist/src/Commands/QueueFailedCommand.js.map +1 -0
- package/dist/src/Commands/QueueFailedTableCommand.d.ts +7 -0
- package/dist/src/Commands/QueueFailedTableCommand.d.ts.map +1 -0
- package/dist/src/Commands/QueueFailedTableCommand.js +55 -0
- package/dist/src/Commands/QueueFailedTableCommand.js.map +1 -0
- package/dist/src/Commands/QueueFlushCommand.d.ts +7 -0
- package/dist/src/Commands/QueueFlushCommand.d.ts.map +1 -0
- package/dist/src/Commands/QueueFlushCommand.js +21 -0
- package/dist/src/Commands/QueueFlushCommand.js.map +1 -0
- package/dist/src/Commands/QueueRetryCommand.d.ts +7 -0
- package/dist/src/Commands/QueueRetryCommand.d.ts.map +1 -0
- package/dist/src/Commands/QueueRetryCommand.js +36 -0
- package/dist/src/Commands/QueueRetryCommand.js.map +1 -0
- package/dist/src/Commands/QueueTableCommand.d.ts.map +1 -1
- package/dist/src/Commands/QueueTableCommand.js +19 -13
- package/dist/src/Commands/QueueTableCommand.js.map +1 -1
- package/dist/src/Commands/QueueWorkCommand.d.ts +8 -0
- package/dist/src/Commands/QueueWorkCommand.d.ts.map +1 -0
- package/dist/src/Commands/QueueWorkCommand.js +88 -0
- package/dist/src/Commands/QueueWorkCommand.js.map +1 -0
- package/dist/src/Commands/RouteListCommand.d.ts +7 -0
- package/dist/src/Commands/RouteListCommand.d.ts.map +1 -0
- package/dist/src/Commands/RouteListCommand.js +108 -0
- package/dist/src/Commands/RouteListCommand.js.map +1 -0
- package/dist/src/Commands/ScheduleRunCommand.d.ts +9 -0
- package/dist/src/Commands/ScheduleRunCommand.d.ts.map +1 -0
- package/dist/src/Commands/ScheduleRunCommand.js +80 -0
- package/dist/src/Commands/ScheduleRunCommand.js.map +1 -0
- package/dist/src/Commands/ScheduleWorkCommand.d.ts +9 -0
- package/dist/src/Commands/ScheduleWorkCommand.d.ts.map +1 -0
- package/dist/src/Commands/ScheduleWorkCommand.js +81 -0
- package/dist/src/Commands/ScheduleWorkCommand.js.map +1 -0
- package/dist/src/Commands/ServeCommand.d.ts +1 -0
- package/dist/src/Commands/ServeCommand.d.ts.map +1 -1
- package/dist/src/Commands/ServeCommand.js +111 -21
- package/dist/src/Commands/ServeCommand.js.map +1 -1
- package/dist/src/TemplateManager.d.ts +4 -0
- package/dist/src/TemplateManager.d.ts.map +1 -1
- package/dist/src/TemplateManager.js +35 -6
- package/dist/src/TemplateManager.js.map +1 -1
- package/dist/templates/app/.env.example +47 -0
- package/dist/templates/app/README.md +62 -0
- package/dist/templates/app/app/Exceptions/Handler.ts +19 -0
- package/dist/templates/app/app/Http/Controllers/UserController.ts +90 -0
- package/dist/templates/app/app/Http/Kernel.ts +43 -0
- package/dist/templates/app/app/Http/Middleware/Authenticate.ts +10 -0
- package/dist/templates/app/app/Http/Middleware/EnsureEmailIsVerified.ts +18 -0
- package/dist/templates/app/app/Http/Middleware/ExampleMiddleware.ts +12 -0
- package/dist/templates/app/app/Http/Middleware/RedirectIfAuthenticated.ts +18 -0
- package/dist/templates/app/app/Http/Middleware/TrimStrings.ts +12 -0
- package/dist/templates/app/app/Http/Middleware/TrustProxies.ts +23 -0
- package/dist/templates/app/app/Http/Middleware/VerifyCsrfToken.ts +10 -0
- package/dist/templates/app/app/Models/User.ts +15 -0
- package/dist/templates/app/app/Providers/AppServiceProvider.ts +17 -0
- package/dist/templates/app/app/Providers/RouteServiceProvider.ts +35 -0
- package/dist/templates/app/bootstrap/app.ts +41 -0
- package/dist/templates/app/config/app.ts +10 -0
- package/dist/templates/app/config/cache.ts +44 -0
- package/dist/templates/app/config/database.ts +63 -0
- package/dist/templates/app/config/filesystems.ts +35 -0
- package/dist/templates/app/config/http.ts +6 -0
- package/dist/templates/app/config/logging.ts +37 -0
- package/dist/templates/app/config/mail.ts +29 -0
- package/dist/templates/app/config/queue.ts +42 -0
- package/{templates/app/database/migrations/0001_create_users_table.ts → dist/templates/app/database/migrations/2024_01_01_000001_create_users_table.ts} +3 -1
- package/dist/templates/app/database/migrations/2024_01_01_000002_create_password_resets_table.ts +22 -0
- package/dist/templates/app/database/migrations/2024_01_01_000003_create_failed_jobs_table.ts +25 -0
- package/dist/templates/app/package.json +22 -0
- package/dist/templates/app/public/assets/img/favicon.png +0 -0
- package/dist/templates/app/public/assets/img/logo.png +0 -0
- package/dist/templates/app/resources/views/errors/401.ark.html +320 -0
- package/dist/templates/app/resources/views/errors/403.ark.html +320 -0
- package/dist/templates/app/resources/views/errors/404.ark.html +320 -0
- package/dist/templates/app/resources/views/errors/419.ark.html +320 -0
- package/dist/templates/app/resources/views/errors/429.ark.html +320 -0
- package/dist/templates/app/resources/views/errors/500.ark.html +320 -0
- package/dist/templates/app/resources/views/errors/503.ark.html +320 -0
- package/dist/templates/app/resources/views/welcome.ark.html +846 -0
- package/dist/templates/app/routes/api.ts +39 -0
- package/dist/templates/app/routes/web.ts +10 -0
- package/dist/templates/app/server.ts +15 -0
- package/dist/templates/app/tsconfig.json +27 -0
- package/package.json +16 -10
- package/templates/app/.env.example +2 -2
- package/templates/app/README.md +62 -0
- package/templates/app/app/Exceptions/Handler.ts +19 -0
- package/templates/app/app/Http/Controllers/UserController.ts +90 -0
- package/templates/app/app/Http/Kernel.ts +39 -14
- package/templates/app/app/Http/Middleware/Authenticate.ts +10 -0
- package/templates/app/app/Http/Middleware/EnsureEmailIsVerified.ts +18 -0
- package/templates/app/app/Http/Middleware/ExampleMiddleware.ts +12 -0
- package/templates/app/app/Http/Middleware/RedirectIfAuthenticated.ts +18 -0
- package/templates/app/app/Http/Middleware/TrimStrings.ts +12 -0
- package/templates/app/app/Http/Middleware/TrustProxies.ts +23 -0
- package/templates/app/app/Http/Middleware/VerifyCsrfToken.ts +10 -0
- package/templates/app/app/Models/User.ts +5 -5
- package/templates/app/app/Providers/AppServiceProvider.ts +17 -0
- package/templates/app/app/Providers/RouteServiceProvider.ts +35 -0
- package/templates/app/bootstrap/app.ts +30 -2
- package/templates/app/config/app.ts +7 -6
- package/templates/app/config/cache.ts +14 -7
- package/templates/app/config/database.ts +48 -21
- package/templates/app/config/filesystems.ts +11 -9
- package/templates/app/config/http.ts +3 -2
- package/templates/app/config/logging.ts +6 -4
- package/templates/app/config/mail.ts +10 -8
- package/templates/app/config/queue.ts +6 -4
- package/templates/app/database/migrations/2024_01_01_000001_create_users_table.ts +25 -0
- package/templates/app/database/migrations/2024_01_01_000002_create_password_resets_table.ts +22 -0
- package/templates/app/database/migrations/2024_01_01_000003_create_failed_jobs_table.ts +25 -0
- package/templates/app/package.json +4 -3
- package/templates/app/public/assets/img/favicon.png +0 -0
- package/templates/app/public/assets/img/logo.png +0 -0
- package/templates/app/resources/views/welcome.ark.html +846 -0
- package/templates/app/routes/api.ts +8 -3
- package/templates/app/routes/web.ts +8 -4
- package/templates/app/server.ts +3 -4
- package/templates/app/tsconfig.json +12 -0
- package/dist/tests/Cli.test.d.ts +0 -2
- package/dist/tests/Cli.test.d.ts.map +0 -1
- package/dist/tests/Cli.test.js +0 -16
- package/dist/tests/Cli.test.js.map +0 -1
- package/templates/app/app/Controllers/UserController.ts +0 -88
- package/templates/app/resources/views/welcome.html +0 -470
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.RouteListCommand = void 0;
|
|
40
|
+
const console_1 = require("@arikajs/console");
|
|
41
|
+
const path_1 = __importDefault(require("path"));
|
|
42
|
+
const fs_1 = __importDefault(require("fs"));
|
|
43
|
+
class RouteListCommand extends console_1.Command {
|
|
44
|
+
constructor() {
|
|
45
|
+
super(...arguments);
|
|
46
|
+
this.signature = 'route:list';
|
|
47
|
+
this.description = 'List all registered routes';
|
|
48
|
+
}
|
|
49
|
+
async handle() {
|
|
50
|
+
const cwd = process.cwd();
|
|
51
|
+
// Dynamically load the user's app Router/RouteRegistry.
|
|
52
|
+
// We do this by importing their routes directly.
|
|
53
|
+
// Arika standard apps have routes in: routes/web.ts and routes/api.ts
|
|
54
|
+
const webRoutes = path_1.default.join(cwd, 'routes', 'web.ts');
|
|
55
|
+
const apiRoutes = path_1.default.join(cwd, 'routes', 'api.ts');
|
|
56
|
+
try {
|
|
57
|
+
if (fs_1.default.existsSync(webRoutes)) {
|
|
58
|
+
await Promise.resolve(`${webRoutes}`).then(s => __importStar(require(s)));
|
|
59
|
+
}
|
|
60
|
+
if (fs_1.default.existsSync(apiRoutes)) {
|
|
61
|
+
await Promise.resolve(`${apiRoutes}`).then(s => __importStar(require(s)));
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
catch (e) {
|
|
65
|
+
this.error('Could not load application routes. Make sure you are running this command from the root of an ArikaJS application.');
|
|
66
|
+
this.error(e.message);
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
// Now that the routes are imported, the RouteRegistry will have them.
|
|
70
|
+
// But the CLI needs to import Router from the user's project to get the exact instance,
|
|
71
|
+
// or since it's a singleton, we can grab it if it's installed locally.
|
|
72
|
+
try {
|
|
73
|
+
const { RouteRegistry } = await Promise.resolve(`${path_1.default.join(cwd, 'node_modules', '@arikajs', 'router')}`).then(s => __importStar(require(s)));
|
|
74
|
+
const routes = RouteRegistry.getInstance().getRoutes();
|
|
75
|
+
if (!routes || routes.length === 0) {
|
|
76
|
+
this.info('No routes found.');
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
const tableData = routes.map((r) => {
|
|
80
|
+
const methodStr = typeof r.method === 'string' ? r.method : r.method.join('|');
|
|
81
|
+
let action = 'Closure';
|
|
82
|
+
if (Array.isArray(r.handler) && r.handler.length === 2) {
|
|
83
|
+
action = `${r.handler[0].name || 'Controller'}@${r.handler[1]}`;
|
|
84
|
+
}
|
|
85
|
+
else if (r.handler && typeof r.handler === 'object' && r.handler.action) {
|
|
86
|
+
action = r.handler.action.name || 'Closure';
|
|
87
|
+
}
|
|
88
|
+
else if (typeof r.handler === 'function' && r.handler.name) {
|
|
89
|
+
action = r.handler.name;
|
|
90
|
+
}
|
|
91
|
+
return [
|
|
92
|
+
methodStr.toUpperCase(),
|
|
93
|
+
r.path,
|
|
94
|
+
r.name || '',
|
|
95
|
+
action,
|
|
96
|
+
r.middleware && r.middleware.length ? r.middleware.map((m) => m.name || 'Middleware').join(', ') : ''
|
|
97
|
+
];
|
|
98
|
+
});
|
|
99
|
+
this.table(['Method', 'URI', 'Name', 'Action', 'Middleware'], tableData);
|
|
100
|
+
this.success(`\nFound ${routes.length} total routes.`);
|
|
101
|
+
}
|
|
102
|
+
catch (e) {
|
|
103
|
+
this.error('Could not resolve @arikajs/router. Are you in an ArikaJS project?');
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
exports.RouteListCommand = RouteListCommand;
|
|
108
|
+
//# sourceMappingURL=RouteListCommand.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RouteListCommand.js","sourceRoot":"","sources":["../../../src/Commands/RouteListCommand.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Command } from '@arikajs/console';
|
|
2
|
+
import { Scheduler } from '@arikajs/scheduler';
|
|
3
|
+
export declare class ScheduleRunCommand extends Command {
|
|
4
|
+
signature: string;
|
|
5
|
+
description: string;
|
|
6
|
+
handle(): Promise<void>;
|
|
7
|
+
protected loadSchedule(scheduler: Scheduler): Promise<void>;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=ScheduleRunCommand.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ScheduleRunCommand.d.ts","sourceRoot":"","sources":["../../../src/Commands/ScheduleRunCommand.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAI/C,qBAAa,kBAAmB,SAAQ,OAAO;IACpC,SAAS,EAAE,MAAM,CAAkB;IACnC,WAAW,EAAE,MAAM,CAA6B;IAE1C,MAAM;cAiBH,YAAY,CAAC,SAAS,EAAE,SAAS;CAoBpD"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.ScheduleRunCommand = void 0;
|
|
37
|
+
const console_1 = require("@arikajs/console");
|
|
38
|
+
const scheduler_1 = require("@arikajs/scheduler");
|
|
39
|
+
const path = __importStar(require("path"));
|
|
40
|
+
const fs = __importStar(require("fs"));
|
|
41
|
+
class ScheduleRunCommand extends console_1.Command {
|
|
42
|
+
constructor() {
|
|
43
|
+
super(...arguments);
|
|
44
|
+
this.signature = 'schedule:run';
|
|
45
|
+
this.description = 'Run the scheduled tasks';
|
|
46
|
+
}
|
|
47
|
+
async handle() {
|
|
48
|
+
this.info('Running scheduled tasks...');
|
|
49
|
+
try {
|
|
50
|
+
const scheduler = this.container.make(scheduler_1.Scheduler);
|
|
51
|
+
// Try to load user defined schedule
|
|
52
|
+
await this.loadSchedule(scheduler);
|
|
53
|
+
await scheduler.run();
|
|
54
|
+
this.success('Scheduled tasks ran successfully.');
|
|
55
|
+
}
|
|
56
|
+
catch (error) {
|
|
57
|
+
this.error(`Failed to run scheduled tasks: ${error.message}`);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
async loadSchedule(scheduler) {
|
|
61
|
+
const schedulePaths = [
|
|
62
|
+
path.join(process.cwd(), 'app/Console/Kernel.ts'),
|
|
63
|
+
path.join(process.cwd(), 'app/Console/Kernel.js'),
|
|
64
|
+
path.join(process.cwd(), 'schedule.ts'),
|
|
65
|
+
path.join(process.cwd(), 'schedule.js'),
|
|
66
|
+
];
|
|
67
|
+
for (const filePath of schedulePaths) {
|
|
68
|
+
if (fs.existsSync(filePath)) {
|
|
69
|
+
const scheduleModule = await Promise.resolve(`${filePath}`).then(s => __importStar(require(s)));
|
|
70
|
+
const defineSchedule = scheduleModule.default || scheduleModule;
|
|
71
|
+
if (typeof defineSchedule === 'function') {
|
|
72
|
+
scheduler.define(defineSchedule);
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
exports.ScheduleRunCommand = ScheduleRunCommand;
|
|
80
|
+
//# sourceMappingURL=ScheduleRunCommand.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ScheduleRunCommand.js","sourceRoot":"","sources":["../../../src/Commands/ScheduleRunCommand.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,8CAA2C;AAC3C,kDAA+C;AAC/C,2CAA6B;AAC7B,uCAAyB;AAEzB,MAAa,kBAAmB,SAAQ,iBAAO;IAA/C;;QACW,cAAS,GAAW,cAAc,CAAC;QACnC,gBAAW,GAAW,yBAAyB,CAAC;IAuC3D,CAAC;IArCU,KAAK,CAAC,MAAM;QACf,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QAExC,IAAI,CAAC;YACD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,qBAAS,CAAC,CAAC;YAEjD,oCAAoC;YACpC,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;YAEnC,MAAM,SAAS,CAAC,GAAG,EAAE,CAAC;YAEtB,IAAI,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC;QACtD,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YAClB,IAAI,CAAC,KAAK,CAAC,kCAAkC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAClE,CAAC;IACL,CAAC;IAES,KAAK,CAAC,YAAY,CAAC,SAAoB;QAC7C,MAAM,aAAa,GAAG;YAClB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,uBAAuB,CAAC;YACjD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,uBAAuB,CAAC;YACjD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,CAAC;YACvC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,CAAC;SAC1C,CAAC;QAEF,KAAK,MAAM,QAAQ,IAAI,aAAa,EAAE,CAAC;YACnC,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC1B,MAAM,cAAc,GAAG,yBAAa,QAAQ,uCAAC,CAAC;gBAC9C,MAAM,cAAc,GAAG,cAAc,CAAC,OAAO,IAAI,cAAc,CAAC;gBAEhE,IAAI,OAAO,cAAc,KAAK,UAAU,EAAE,CAAC;oBACvC,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;oBACjC,OAAO;gBACX,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;CACJ;AAzCD,gDAyCC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Command } from '@arikajs/console';
|
|
2
|
+
import { Scheduler } from '@arikajs/scheduler';
|
|
3
|
+
export declare class ScheduleWorkCommand extends Command {
|
|
4
|
+
signature: string;
|
|
5
|
+
description: string;
|
|
6
|
+
handle(): Promise<void>;
|
|
7
|
+
protected loadSchedule(scheduler: Scheduler): Promise<void>;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=ScheduleWorkCommand.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ScheduleWorkCommand.d.ts","sourceRoot":"","sources":["../../../src/Commands/ScheduleWorkCommand.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAU,MAAM,oBAAoB,CAAC;AAIvD,qBAAa,mBAAoB,SAAQ,OAAO;IACrC,SAAS,EAAE,MAAM,CAAmB;IACpC,WAAW,EAAE,MAAM,CAAgC;IAE7C,MAAM;cAiBH,YAAY,CAAC,SAAS,EAAE,SAAS;CAqBpD"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.ScheduleWorkCommand = void 0;
|
|
37
|
+
const console_1 = require("@arikajs/console");
|
|
38
|
+
const scheduler_1 = require("@arikajs/scheduler");
|
|
39
|
+
const path = __importStar(require("path"));
|
|
40
|
+
const fs = __importStar(require("fs"));
|
|
41
|
+
class ScheduleWorkCommand extends console_1.Command {
|
|
42
|
+
constructor() {
|
|
43
|
+
super(...arguments);
|
|
44
|
+
this.signature = 'schedule:work';
|
|
45
|
+
this.description = 'Start the scheduler worker';
|
|
46
|
+
}
|
|
47
|
+
async handle() {
|
|
48
|
+
this.info('Starting scheduler worker...');
|
|
49
|
+
try {
|
|
50
|
+
const scheduler = this.container.make(scheduler_1.Scheduler);
|
|
51
|
+
// Try to load user defined schedule
|
|
52
|
+
await this.loadSchedule(scheduler);
|
|
53
|
+
const worker = new scheduler_1.Worker(scheduler);
|
|
54
|
+
await worker.start();
|
|
55
|
+
}
|
|
56
|
+
catch (error) {
|
|
57
|
+
this.error(`Scheduler worker failed: ${error.message}`);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
async loadSchedule(scheduler) {
|
|
61
|
+
const schedulePaths = [
|
|
62
|
+
path.join(process.cwd(), 'app/Console/Kernel.ts'),
|
|
63
|
+
path.join(process.cwd(), 'app/Console/Kernel.js'),
|
|
64
|
+
path.join(process.cwd(), 'schedule.ts'),
|
|
65
|
+
path.join(process.cwd(), 'schedule.js'),
|
|
66
|
+
];
|
|
67
|
+
for (const filePath of schedulePaths) {
|
|
68
|
+
if (fs.existsSync(filePath)) {
|
|
69
|
+
// Determine if we need to use tsx/ts-node for .ts files
|
|
70
|
+
const scheduleModule = await Promise.resolve(`${filePath}`).then(s => __importStar(require(s)));
|
|
71
|
+
const defineSchedule = scheduleModule.default || scheduleModule;
|
|
72
|
+
if (typeof defineSchedule === 'function') {
|
|
73
|
+
scheduler.define(defineSchedule);
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
exports.ScheduleWorkCommand = ScheduleWorkCommand;
|
|
81
|
+
//# sourceMappingURL=ScheduleWorkCommand.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ScheduleWorkCommand.js","sourceRoot":"","sources":["../../../src/Commands/ScheduleWorkCommand.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,8CAA2C;AAC3C,kDAAuD;AACvD,2CAA6B;AAC7B,uCAAyB;AAEzB,MAAa,mBAAoB,SAAQ,iBAAO;IAAhD;;QACW,cAAS,GAAW,eAAe,CAAC;QACpC,gBAAW,GAAW,4BAA4B,CAAC;IAwC9D,CAAC;IAtCU,KAAK,CAAC,MAAM;QACf,IAAI,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;QAE1C,IAAI,CAAC;YACD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,qBAAS,CAAC,CAAC;YAEjD,oCAAoC;YACpC,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;YAEnC,MAAM,MAAM,GAAG,IAAI,kBAAM,CAAC,SAAS,CAAC,CAAC;YACrC,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QAEzB,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YAClB,IAAI,CAAC,KAAK,CAAC,4BAA4B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5D,CAAC;IACL,CAAC;IAES,KAAK,CAAC,YAAY,CAAC,SAAoB;QAC7C,MAAM,aAAa,GAAG;YAClB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,uBAAuB,CAAC;YACjD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,uBAAuB,CAAC;YACjD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,CAAC;YACvC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,CAAC;SAC1C,CAAC;QAEF,KAAK,MAAM,QAAQ,IAAI,aAAa,EAAE,CAAC;YACnC,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC1B,wDAAwD;gBACxD,MAAM,cAAc,GAAG,yBAAa,QAAQ,uCAAC,CAAC;gBAC9C,MAAM,cAAc,GAAG,cAAc,CAAC,OAAO,IAAI,cAAc,CAAC;gBAEhE,IAAI,OAAO,cAAc,KAAK,UAAU,EAAE,CAAC;oBACvC,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;oBACjC,OAAO;gBACX,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;CACJ;AA1CD,kDA0CC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServeCommand.d.ts","sourceRoot":"","sources":["../../../src/Commands/ServeCommand.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAK3C,qBAAa,YAAa,SAAQ,OAAO;IAC9B,SAAS,
|
|
1
|
+
{"version":3,"file":"ServeCommand.d.ts","sourceRoot":"","sources":["../../../src/Commands/ServeCommand.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAK3C,qBAAa,YAAa,SAAQ,OAAO;IAC9B,SAAS,SAAoD;IAC7D,WAAW,SAAqD;IAEvE,OAAO,CAAC,GAAG;IAWE,MAAM;CA0ItB"}
|
|
@@ -11,12 +11,24 @@ const fs_1 = __importDefault(require("fs"));
|
|
|
11
11
|
class ServeCommand extends console_1.Command {
|
|
12
12
|
constructor() {
|
|
13
13
|
super(...arguments);
|
|
14
|
-
this.signature = 'serve';
|
|
14
|
+
this.signature = 'serve {--port=3000} {--host=localhost} {--dev}';
|
|
15
15
|
this.description = 'Serve the application on the development server';
|
|
16
16
|
}
|
|
17
|
+
log(level, message) {
|
|
18
|
+
const now = new Date();
|
|
19
|
+
const timestamp = now.getFullYear() + '-' +
|
|
20
|
+
String(now.getMonth() + 1).padStart(2, '0') + '-' +
|
|
21
|
+
String(now.getDate()).padStart(2, '0') + ' ' +
|
|
22
|
+
String(now.getHours()).padStart(2, '0') + ':' +
|
|
23
|
+
String(now.getMinutes()).padStart(2, '0') + ':' +
|
|
24
|
+
String(now.getSeconds()).padStart(2, '0');
|
|
25
|
+
console.log(`[${timestamp}] ${level}: ${message}`);
|
|
26
|
+
}
|
|
17
27
|
async handle() {
|
|
18
28
|
const root = process.cwd();
|
|
19
29
|
const pkgPath = path_1.default.join(root, 'package.json');
|
|
30
|
+
const port = this.option('port');
|
|
31
|
+
const host = this.option('host');
|
|
20
32
|
if (!fs_1.default.existsSync(pkgPath)) {
|
|
21
33
|
this.error('No package.json found. Make sure you are in an ArikaJS project root.');
|
|
22
34
|
return;
|
|
@@ -27,32 +39,110 @@ class ServeCommand extends console_1.Command {
|
|
|
27
39
|
this.error(`Could not find ${serverFile} in the current directory.`);
|
|
28
40
|
return;
|
|
29
41
|
}
|
|
30
|
-
this.
|
|
42
|
+
this.writeln('');
|
|
43
|
+
this.info(' ArikaJS Development Server');
|
|
44
|
+
this.comment(` Local: http://${host}:${port}`);
|
|
45
|
+
this.writeln('');
|
|
31
46
|
const command = isTypeScript ? 'npx' : 'node';
|
|
32
|
-
const args = isTypeScript ? ['--yes', 'tsx', 'watch', serverFile] : [serverFile];
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
47
|
+
const args = isTypeScript ? ['--yes', 'tsx', 'watch', '--clear-screen=false', '-r', 'tsconfig-paths/register', serverFile] : [serverFile];
|
|
48
|
+
let watcher = null;
|
|
49
|
+
let server = null;
|
|
50
|
+
let isExiting = false;
|
|
51
|
+
let isRestarting = false;
|
|
52
|
+
const startServer = () => {
|
|
53
|
+
if (isExiting)
|
|
54
|
+
return;
|
|
55
|
+
server = (0, child_process_1.spawn)(command, args, {
|
|
56
|
+
cwd: root,
|
|
57
|
+
stdio: 'inherit',
|
|
58
|
+
shell: process.platform === 'win32',
|
|
59
|
+
env: { ...process.env, PORT: port, HOST: host, PROJECT_ROOT: root }
|
|
60
|
+
});
|
|
43
61
|
server.on('close', (code) => {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
}
|
|
47
|
-
else {
|
|
62
|
+
server = null;
|
|
63
|
+
if (!isExiting && !isRestarting && code !== 0 && code !== null) {
|
|
48
64
|
this.error(`Server exited with code ${code}`);
|
|
49
|
-
resolve(); // Resolve anyway so the CLI can exit gracefully
|
|
50
65
|
}
|
|
51
66
|
});
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
67
|
+
};
|
|
68
|
+
const stopServer = async () => {
|
|
69
|
+
if (!server)
|
|
70
|
+
return;
|
|
71
|
+
return new Promise((resolve) => {
|
|
72
|
+
const currentServer = server;
|
|
73
|
+
let resolved = false;
|
|
74
|
+
currentServer.once('close', () => {
|
|
75
|
+
if (!resolved) {
|
|
76
|
+
resolved = true;
|
|
77
|
+
resolve();
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
try {
|
|
81
|
+
currentServer.kill('SIGTERM');
|
|
82
|
+
setTimeout(() => {
|
|
83
|
+
if (!resolved) {
|
|
84
|
+
try {
|
|
85
|
+
currentServer.kill('SIGKILL');
|
|
86
|
+
}
|
|
87
|
+
catch (e) { }
|
|
88
|
+
resolved = true;
|
|
89
|
+
resolve();
|
|
90
|
+
}
|
|
91
|
+
}, 1000);
|
|
92
|
+
}
|
|
93
|
+
catch (e) {
|
|
94
|
+
if (!resolved) {
|
|
95
|
+
resolved = true;
|
|
96
|
+
resolve();
|
|
97
|
+
}
|
|
98
|
+
}
|
|
55
99
|
});
|
|
100
|
+
};
|
|
101
|
+
const cleanup = async () => {
|
|
102
|
+
if (isExiting)
|
|
103
|
+
return;
|
|
104
|
+
isExiting = true;
|
|
105
|
+
if (watcher)
|
|
106
|
+
watcher.close();
|
|
107
|
+
await stopServer();
|
|
108
|
+
};
|
|
109
|
+
if (isTypeScript) {
|
|
110
|
+
this.comment(' [System] Hot-reloading enabled (watching code, config & resources)');
|
|
111
|
+
const watchExtensions = ['.ts', '.js', '.json', '.ark.html', '.env'];
|
|
112
|
+
const ignoreDirs = ['node_modules', '.git', 'dist', 'storage'];
|
|
113
|
+
watcher = fs_1.default.watch(root, { recursive: true }, async (event, filename) => {
|
|
114
|
+
if (!filename || isRestarting || isExiting)
|
|
115
|
+
return;
|
|
116
|
+
const ext = path_1.default.extname(filename);
|
|
117
|
+
const isWatchedFile = watchExtensions.includes(ext) || path_1.default.basename(filename) === '.env';
|
|
118
|
+
const isIgnored = ignoreDirs.some(dir => filename.startsWith(dir + path_1.default.sep) || filename === dir);
|
|
119
|
+
if (isWatchedFile && !isIgnored) {
|
|
120
|
+
isRestarting = true;
|
|
121
|
+
this.log('INFO', `File changed: ${filename}`);
|
|
122
|
+
setTimeout(async () => {
|
|
123
|
+
this.log('INFO', 'Restarting server...');
|
|
124
|
+
await stopServer();
|
|
125
|
+
// Small delay for OS port release
|
|
126
|
+
setTimeout(() => {
|
|
127
|
+
startServer();
|
|
128
|
+
setTimeout(() => {
|
|
129
|
+
this.log('INFO', 'Server restarted successfully.');
|
|
130
|
+
isRestarting = false;
|
|
131
|
+
}, 500);
|
|
132
|
+
}, 300);
|
|
133
|
+
}, 600);
|
|
134
|
+
}
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
// Initial start
|
|
138
|
+
startServer();
|
|
139
|
+
return new Promise((resolve) => {
|
|
140
|
+
const signalHandler = async () => {
|
|
141
|
+
await cleanup();
|
|
142
|
+
resolve();
|
|
143
|
+
};
|
|
144
|
+
process.once('SIGINT', signalHandler);
|
|
145
|
+
process.once('SIGTERM', signalHandler);
|
|
56
146
|
});
|
|
57
147
|
}
|
|
58
148
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServeCommand.js","sourceRoot":"","sources":["../../../src/Commands/ServeCommand.ts"],"names":[],"mappings":";;;;;;AACA,8CAA2C;AAC3C,iDAAsC;AACtC,gDAAwB;AACxB,4CAAoB;AAEpB,MAAa,YAAa,SAAQ,iBAAO;IAAzC;;QACW,cAAS,GAAG,
|
|
1
|
+
{"version":3,"file":"ServeCommand.js","sourceRoot":"","sources":["../../../src/Commands/ServeCommand.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,10 @@ export declare class TemplateManager {
|
|
|
9
9
|
* Copy template files to the target directory.
|
|
10
10
|
*/
|
|
11
11
|
copyTemplate(templatePath: string, targetDir: string, appName: string): void;
|
|
12
|
+
/**
|
|
13
|
+
* Rename migration files in the target directory to use the current date.
|
|
14
|
+
*/
|
|
15
|
+
private renameMigrations;
|
|
12
16
|
/**
|
|
13
17
|
* Create .env and .env.example if they don't exist.
|
|
14
18
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TemplateManager.d.ts","sourceRoot":"","sources":["../../src/TemplateManager.ts"],"names":[],"mappings":"AAOA,qBAAa,eAAe;IACxB,OAAO,CAAC,YAAY,CAAS;;IAO7B;;OAEG;IACI,mBAAmB,IAAI,MAAM;IAUpC;;OAEG;IACI,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"TemplateManager.d.ts","sourceRoot":"","sources":["../../src/TemplateManager.ts"],"names":[],"mappings":"AAOA,qBAAa,eAAe;IACxB,OAAO,CAAC,YAAY,CAAS;;IAO7B;;OAEG;IACI,mBAAmB,IAAI,MAAM;IAUpC;;OAEG;IACI,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAUnF;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA2BxB;;OAEG;IACI,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAoBtE,OAAO,CAAC,iBAAiB;IAsBzB,OAAO,CAAC,mBAAmB;CAsE9B"}
|
|
@@ -10,7 +10,7 @@ const crypto_1 = require("crypto");
|
|
|
10
10
|
class TemplateManager {
|
|
11
11
|
constructor() {
|
|
12
12
|
// Templates are located relative to the dist/src directory when running
|
|
13
|
-
this.templatesDir = path_1.default.resolve(__dirname, '
|
|
13
|
+
this.templatesDir = path_1.default.resolve(__dirname, '../templates');
|
|
14
14
|
}
|
|
15
15
|
/**
|
|
16
16
|
* Resolve the template directory path.
|
|
@@ -27,9 +27,35 @@ class TemplateManager {
|
|
|
27
27
|
*/
|
|
28
28
|
copyTemplate(templatePath, targetDir, appName) {
|
|
29
29
|
this.copyRecursiveSync(templatePath, targetDir);
|
|
30
|
+
// Rename migrations to today's date
|
|
31
|
+
this.renameMigrations(targetDir);
|
|
30
32
|
// Post-process files if needed (e.g., replacing placeholders)
|
|
31
33
|
this.processPlaceholders(targetDir, appName);
|
|
32
34
|
}
|
|
35
|
+
/**
|
|
36
|
+
* Rename migration files in the target directory to use the current date.
|
|
37
|
+
*/
|
|
38
|
+
renameMigrations(targetDir) {
|
|
39
|
+
const migrationsDir = path_1.default.join(targetDir, 'database/migrations');
|
|
40
|
+
if (!fs_1.default.existsSync(migrationsDir))
|
|
41
|
+
return;
|
|
42
|
+
const files = fs_1.default.readdirSync(migrationsDir);
|
|
43
|
+
const date = new Date();
|
|
44
|
+
const timestamp = date.getFullYear().toString() + '_' +
|
|
45
|
+
(date.getMonth() + 1).toString().padStart(2, '0') + '_' +
|
|
46
|
+
date.getDate().toString().padStart(2, '0') + '_' +
|
|
47
|
+
date.getHours().toString().padStart(2, '0') +
|
|
48
|
+
date.getMinutes().toString().padStart(2, '0');
|
|
49
|
+
files.forEach((file, index) => {
|
|
50
|
+
// Check if file looks like a migration (starts with a date pattern)
|
|
51
|
+
if (/^\d{4}_\d{2}_\d{2}_\d{6}_/.test(file) || file.startsWith('2024_01_01')) {
|
|
52
|
+
const suffix = file.split('_').slice(4).join('_');
|
|
53
|
+
const newTimestamp = timestamp + (date.getSeconds() + index).toString().padStart(2, '0');
|
|
54
|
+
const newName = `${newTimestamp}_${suffix}`;
|
|
55
|
+
fs_1.default.renameSync(path_1.default.join(migrationsDir, file), path_1.default.join(migrationsDir, newName));
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
}
|
|
33
59
|
/**
|
|
34
60
|
* Create .env and .env.example if they don't exist.
|
|
35
61
|
*/
|
|
@@ -38,7 +64,7 @@ class TemplateManager {
|
|
|
38
64
|
const envPath = path_1.default.join(targetDir, '.env');
|
|
39
65
|
if (fs_1.default.existsSync(examplePath) && !fs_1.default.existsSync(envPath)) {
|
|
40
66
|
let content = fs_1.default.readFileSync(examplePath, 'utf8');
|
|
41
|
-
content = content.replace(/APP_NAME=.*/, `APP_NAME
|
|
67
|
+
content = content.replace(/APP_NAME=.*/, `APP_NAME=ArikaJs`);
|
|
42
68
|
// Automatically generate app key
|
|
43
69
|
const appKey = 'base64:' + (0, crypto_1.randomBytes)(32).toString('base64');
|
|
44
70
|
if (content.includes('APP_KEY=')) {
|
|
@@ -75,7 +101,7 @@ class TemplateManager {
|
|
|
75
101
|
// Replace app name
|
|
76
102
|
pkg.name = appName;
|
|
77
103
|
// Handle local @arikajs dependencies for development
|
|
78
|
-
// templatesDir is /path/to/cli/templates
|
|
104
|
+
// templatesDir is /path/to/cli/dist/templates
|
|
79
105
|
// ArikaJs root is /path/to/
|
|
80
106
|
const devWorkspaceRoot = path_1.default.resolve(this.templatesDir, '../../../');
|
|
81
107
|
const handleDeps = (deps) => {
|
|
@@ -96,8 +122,11 @@ class TemplateManager {
|
|
|
96
122
|
else if (dep === 'arikajs') {
|
|
97
123
|
depName = 'arikajs';
|
|
98
124
|
}
|
|
99
|
-
if (depName
|
|
100
|
-
|
|
125
|
+
if (depName) {
|
|
126
|
+
let localPath = path_1.default.join(devWorkspaceRoot, depName);
|
|
127
|
+
if (!fs_1.default.existsSync(localPath)) {
|
|
128
|
+
localPath = path_1.default.join(devWorkspaceRoot, 'packages', depName);
|
|
129
|
+
}
|
|
101
130
|
if (fs_1.default.existsSync(localPath)) {
|
|
102
131
|
// Calculate relative path from target directory to local package
|
|
103
132
|
let relativePath = path_1.default.relative(targetDir, localPath);
|
|
@@ -119,7 +148,7 @@ class TemplateManager {
|
|
|
119
148
|
if (fs_1.default.existsSync(viewsDir)) {
|
|
120
149
|
const files = fs_1.default.readdirSync(viewsDir);
|
|
121
150
|
files.forEach(file => {
|
|
122
|
-
if (file.endsWith('.html')) {
|
|
151
|
+
if (file.endsWith('.html') || file.endsWith('.ark.html')) {
|
|
123
152
|
const filePath = path_1.default.join(viewsDir, file);
|
|
124
153
|
let content = fs_1.default.readFileSync(filePath, 'utf8');
|
|
125
154
|
content = content.replace(/{{name}}/g, appName);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TemplateManager.js","sourceRoot":"","sources":["../../src/TemplateManager.ts"],"names":[],"mappings":";;;;;;AACA,4CAAoB;AACpB,gDAAwB;AACxB,mCAAqC;AAIrC,MAAa,eAAe;IAGxB;QACI,wEAAwE;QACxE,IAAI,CAAC,YAAY,GAAG,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"TemplateManager.js","sourceRoot":"","sources":["../../src/TemplateManager.ts"],"names":[],"mappings":"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"}
|