@toonstore/torm 0.1.0 → 0.3.0
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 +357 -75
- package/dist/cli.d.ts +7 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +210 -0
- package/dist/cli.js.map +1 -0
- package/dist/index.d.ts +69 -39
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +233 -124
- package/dist/index.js.map +1 -1
- package/dist/studio-server.d.ts +23 -0
- package/dist/studio-server.d.ts.map +1 -0
- package/dist/studio-server.js +302 -0
- package/dist/studio-server.js.map +1 -0
- package/package.json +21 -9
- package/studio/index.html +631 -0
package/dist/cli.js
ADDED
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
/**
|
|
4
|
+
* TORM CLI
|
|
5
|
+
* Command-line interface for ToonStoreDB ORM
|
|
6
|
+
*/
|
|
7
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
8
|
+
if (k2 === undefined) k2 = k;
|
|
9
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
10
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
11
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
12
|
+
}
|
|
13
|
+
Object.defineProperty(o, k2, desc);
|
|
14
|
+
}) : (function(o, m, k, k2) {
|
|
15
|
+
if (k2 === undefined) k2 = k;
|
|
16
|
+
o[k2] = m[k];
|
|
17
|
+
}));
|
|
18
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
19
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
20
|
+
}) : function(o, v) {
|
|
21
|
+
o["default"] = v;
|
|
22
|
+
});
|
|
23
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
24
|
+
var ownKeys = function(o) {
|
|
25
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
26
|
+
var ar = [];
|
|
27
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
28
|
+
return ar;
|
|
29
|
+
};
|
|
30
|
+
return ownKeys(o);
|
|
31
|
+
};
|
|
32
|
+
return function (mod) {
|
|
33
|
+
if (mod && mod.__esModule) return mod;
|
|
34
|
+
var result = {};
|
|
35
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
36
|
+
__setModuleDefault(result, mod);
|
|
37
|
+
return result;
|
|
38
|
+
};
|
|
39
|
+
})();
|
|
40
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
41
|
+
const child_process_1 = require("child_process");
|
|
42
|
+
const path = __importStar(require("path"));
|
|
43
|
+
const fs = __importStar(require("fs"));
|
|
44
|
+
const command = process.argv[2];
|
|
45
|
+
const args = process.argv.slice(3);
|
|
46
|
+
function printHelp() {
|
|
47
|
+
console.log(`
|
|
48
|
+
TORM CLI - ToonStoreDB ORM Tools
|
|
49
|
+
|
|
50
|
+
Usage:
|
|
51
|
+
torm <command> [options]
|
|
52
|
+
|
|
53
|
+
Commands:
|
|
54
|
+
studio Launch TORM Studio (visual database manager)
|
|
55
|
+
generate Generate TypeScript types from your schema
|
|
56
|
+
migrate Run database migrations
|
|
57
|
+
help Show this help message
|
|
58
|
+
|
|
59
|
+
Examples:
|
|
60
|
+
torm studio # Start TORM Studio at http://localhost:4983
|
|
61
|
+
torm studio --port 8080 # Start on custom port
|
|
62
|
+
torm generate # Generate types from schema
|
|
63
|
+
torm migrate # Run pending migrations
|
|
64
|
+
|
|
65
|
+
Config:
|
|
66
|
+
Create torm.config.ts in your project root with DB credentials
|
|
67
|
+
|
|
68
|
+
For more info, visit: https://github.com/toonstore/torm
|
|
69
|
+
`);
|
|
70
|
+
}
|
|
71
|
+
function findConfig() {
|
|
72
|
+
const configPaths = [
|
|
73
|
+
path.join(process.cwd(), 'torm.config.ts'),
|
|
74
|
+
path.join(process.cwd(), 'torm.config.js'),
|
|
75
|
+
];
|
|
76
|
+
for (const configPath of configPaths) {
|
|
77
|
+
if (fs.existsSync(configPath)) {
|
|
78
|
+
console.log(`📝 Found config: ${configPath}\n`);
|
|
79
|
+
try {
|
|
80
|
+
// For TS files, we'd need to compile them first
|
|
81
|
+
// For now, suggest JS or use default config
|
|
82
|
+
if (configPath.endsWith('.js')) {
|
|
83
|
+
const config = require(configPath);
|
|
84
|
+
return config.default || config;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
catch (err) {
|
|
88
|
+
console.error(`⚠️ Error loading config: ${err.message}\n`);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
return null;
|
|
93
|
+
}
|
|
94
|
+
async function studio() {
|
|
95
|
+
console.log('🚀 Starting TORM Studio...\n');
|
|
96
|
+
// Load config
|
|
97
|
+
const config = findConfig();
|
|
98
|
+
if (!config) {
|
|
99
|
+
console.log('⚠️ No torm.config.ts found in current directory\n');
|
|
100
|
+
console.log('Creating a default config for you...\n');
|
|
101
|
+
// Create example config
|
|
102
|
+
const exampleConfig = `/**
|
|
103
|
+
* TORM Configuration
|
|
104
|
+
* Define your ToonStoreDB connection here
|
|
105
|
+
*/
|
|
106
|
+
|
|
107
|
+
export default {
|
|
108
|
+
// ToonStoreDB connection
|
|
109
|
+
dbCredentials: {
|
|
110
|
+
host: 'localhost',
|
|
111
|
+
port: 6379,
|
|
112
|
+
// For cloud/remote databases:
|
|
113
|
+
// password: process.env.TOONSTORE_PASSWORD,
|
|
114
|
+
// url: 'redis://user:pass@host:port',
|
|
115
|
+
},
|
|
116
|
+
|
|
117
|
+
// Studio configuration
|
|
118
|
+
studio: {
|
|
119
|
+
port: 4983, // Studio port (like Drizzle)
|
|
120
|
+
},
|
|
121
|
+
};
|
|
122
|
+
`;
|
|
123
|
+
fs.writeFileSync(path.join(process.cwd(), 'torm.config.ts'), exampleConfig);
|
|
124
|
+
console.log('✅ Created torm.config.ts');
|
|
125
|
+
console.log(' Edit this file with your database credentials\n');
|
|
126
|
+
console.log(' Then run `torm studio` again\n');
|
|
127
|
+
process.exit(0);
|
|
128
|
+
}
|
|
129
|
+
// Get port from args or config or default
|
|
130
|
+
let port = 4983; // Drizzle uses 4983
|
|
131
|
+
if (args.includes('--port')) {
|
|
132
|
+
port = parseInt(args[args.indexOf('--port') + 1]);
|
|
133
|
+
}
|
|
134
|
+
else if (config.studio?.port) {
|
|
135
|
+
port = config.studio.port;
|
|
136
|
+
}
|
|
137
|
+
// Check if studio-server.js exists
|
|
138
|
+
const serverPath = path.join(__dirname, 'studio-server.js');
|
|
139
|
+
if (!fs.existsSync(serverPath)) {
|
|
140
|
+
console.error('❌ Studio server not found!');
|
|
141
|
+
console.error(' Expected at:', serverPath);
|
|
142
|
+
console.error('\n💡 Run `npm run build` first\n');
|
|
143
|
+
process.exit(1);
|
|
144
|
+
}
|
|
145
|
+
console.log('📍 Starting TORM Studio server...\n');
|
|
146
|
+
// Pass config to server via environment
|
|
147
|
+
const env = {
|
|
148
|
+
...process.env,
|
|
149
|
+
PORT: port.toString(),
|
|
150
|
+
TOONSTORE_HOST: config.dbCredentials?.host || 'localhost',
|
|
151
|
+
TOONSTORE_PORT: (config.dbCredentials?.port || 6379).toString(),
|
|
152
|
+
TOONSTORE_URL: config.dbCredentials?.url || '',
|
|
153
|
+
TOONSTORE_PASSWORD: config.dbCredentials?.password || '',
|
|
154
|
+
};
|
|
155
|
+
const server = (0, child_process_1.spawn)('node', [serverPath], {
|
|
156
|
+
stdio: 'inherit',
|
|
157
|
+
env,
|
|
158
|
+
});
|
|
159
|
+
server.on('error', (err) => {
|
|
160
|
+
console.error('\n❌ Error starting TORM Studio:');
|
|
161
|
+
console.error(' ', err.message);
|
|
162
|
+
process.exit(1);
|
|
163
|
+
});
|
|
164
|
+
server.on('close', (code) => {
|
|
165
|
+
if (code !== 0) {
|
|
166
|
+
console.log(`\n⚠️ TORM Studio exited with code ${code}`);
|
|
167
|
+
}
|
|
168
|
+
});
|
|
169
|
+
// Handle Ctrl+C gracefully
|
|
170
|
+
process.on('SIGINT', () => {
|
|
171
|
+
console.log('\n\n👋 Shutting down TORM Studio...');
|
|
172
|
+
server.kill('SIGINT');
|
|
173
|
+
process.exit(0);
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
async function generate() {
|
|
177
|
+
console.log('🔧 Generating TypeScript types from schema...\n');
|
|
178
|
+
console.log('⚠️ This feature is coming soon!');
|
|
179
|
+
console.log('💡 For now, define types manually in your code.\n');
|
|
180
|
+
process.exit(0);
|
|
181
|
+
}
|
|
182
|
+
async function migrate() {
|
|
183
|
+
console.log('🔄 Running database migrations...\n');
|
|
184
|
+
console.log('⚠️ This feature is coming soon!');
|
|
185
|
+
console.log('💡 For now, manage schema changes manually.\n');
|
|
186
|
+
process.exit(0);
|
|
187
|
+
}
|
|
188
|
+
// Main CLI logic
|
|
189
|
+
switch (command) {
|
|
190
|
+
case 'studio':
|
|
191
|
+
studio();
|
|
192
|
+
break;
|
|
193
|
+
case 'generate':
|
|
194
|
+
generate();
|
|
195
|
+
break;
|
|
196
|
+
case 'migrate':
|
|
197
|
+
migrate();
|
|
198
|
+
break;
|
|
199
|
+
case 'help':
|
|
200
|
+
case '--help':
|
|
201
|
+
case '-h':
|
|
202
|
+
case undefined:
|
|
203
|
+
printHelp();
|
|
204
|
+
break;
|
|
205
|
+
default:
|
|
206
|
+
console.error(`❌ Unknown command: ${command}\n`);
|
|
207
|
+
printHelp();
|
|
208
|
+
process.exit(1);
|
|
209
|
+
}
|
|
210
|
+
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @toonstore/torm - ToonStore ORM Client for Node.js
|
|
3
3
|
*
|
|
4
|
-
* A Mongoose-style ORM client for ToonStore
|
|
4
|
+
* A Mongoose-style ORM client for ToonStore connecting directly to Redis
|
|
5
5
|
*/
|
|
6
|
-
import {
|
|
7
|
-
export interface TormClientOptions {
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
import Redis, { RedisOptions } from 'ioredis';
|
|
7
|
+
export interface TormClientOptions extends RedisOptions {
|
|
8
|
+
host?: string;
|
|
9
|
+
port?: number;
|
|
10
|
+
url?: string;
|
|
10
11
|
}
|
|
11
12
|
export interface QueryFilter {
|
|
12
13
|
field: string;
|
|
@@ -42,28 +43,32 @@ export interface ModelOptions {
|
|
|
42
43
|
validate?: boolean;
|
|
43
44
|
}
|
|
44
45
|
export declare class TormClient {
|
|
45
|
-
private
|
|
46
|
-
private
|
|
46
|
+
private redis;
|
|
47
|
+
private connected;
|
|
47
48
|
constructor(options?: TormClientOptions);
|
|
48
49
|
/**
|
|
49
50
|
* Create a new model class
|
|
50
51
|
*/
|
|
51
52
|
model<T extends Record<string, any>>(name: string, schema?: ModelSchema, options?: ModelOptions): Model<T>;
|
|
52
53
|
/**
|
|
53
|
-
* Get
|
|
54
|
+
* Get Redis client instance
|
|
54
55
|
*/
|
|
55
|
-
|
|
56
|
+
getRedis(): Redis;
|
|
56
57
|
/**
|
|
57
|
-
* Check
|
|
58
|
+
* Check connection health
|
|
58
59
|
*/
|
|
59
60
|
health(): Promise<{
|
|
60
61
|
status: string;
|
|
61
|
-
|
|
62
|
+
connected: boolean;
|
|
62
63
|
}>;
|
|
63
64
|
/**
|
|
64
|
-
*
|
|
65
|
+
* Close Redis connection
|
|
66
|
+
*/
|
|
67
|
+
disconnect(): Promise<void>;
|
|
68
|
+
/**
|
|
69
|
+
* Check if connected
|
|
65
70
|
*/
|
|
66
|
-
|
|
71
|
+
isConnected(): boolean;
|
|
67
72
|
}
|
|
68
73
|
export declare class Model<T extends Record<string, any>> {
|
|
69
74
|
private client;
|
|
@@ -71,22 +76,44 @@ export declare class Model<T extends Record<string, any>> {
|
|
|
71
76
|
private schema?;
|
|
72
77
|
private options;
|
|
73
78
|
constructor(client: TormClient, name: string, schema?: ModelSchema, options?: ModelOptions);
|
|
79
|
+
/**
|
|
80
|
+
* Get the Redis key pattern for this collection
|
|
81
|
+
*/
|
|
82
|
+
private getKeyPattern;
|
|
83
|
+
/**
|
|
84
|
+
* Generate a unique ID
|
|
85
|
+
*/
|
|
86
|
+
private generateId;
|
|
74
87
|
/**
|
|
75
88
|
* Create a new document
|
|
76
89
|
*/
|
|
77
|
-
create(data: Partial<T>): Promise<T
|
|
90
|
+
create(data: Partial<T>): Promise<T & {
|
|
91
|
+
_id: string;
|
|
92
|
+
}>;
|
|
78
93
|
/**
|
|
79
94
|
* Find all documents
|
|
80
95
|
*/
|
|
81
|
-
find(): Promise<T
|
|
96
|
+
find(): Promise<Array<T & {
|
|
97
|
+
_id: string;
|
|
98
|
+
}>>;
|
|
82
99
|
/**
|
|
83
100
|
* Find document by ID
|
|
84
101
|
*/
|
|
85
|
-
findById(id: string): Promise<T
|
|
102
|
+
findById(id: string): Promise<(T & {
|
|
103
|
+
_id: string;
|
|
104
|
+
}) | null>;
|
|
105
|
+
/**
|
|
106
|
+
* Find one document matching criteria
|
|
107
|
+
*/
|
|
108
|
+
findOne(filter: Partial<T>): Promise<(T & {
|
|
109
|
+
_id: string;
|
|
110
|
+
}) | null>;
|
|
86
111
|
/**
|
|
87
112
|
* Update document by ID
|
|
88
113
|
*/
|
|
89
|
-
update(id: string, data: Partial<T>): Promise<T
|
|
114
|
+
update(id: string, data: Partial<T>): Promise<(T & {
|
|
115
|
+
_id: string;
|
|
116
|
+
}) | null>;
|
|
90
117
|
/**
|
|
91
118
|
* Delete document by ID
|
|
92
119
|
*/
|
|
@@ -99,51 +126,54 @@ export declare class Model<T extends Record<string, any>> {
|
|
|
99
126
|
* Query documents with filters
|
|
100
127
|
*/
|
|
101
128
|
query(): QueryBuilder<T>;
|
|
129
|
+
/**
|
|
130
|
+
* Delete all documents in collection
|
|
131
|
+
*/
|
|
132
|
+
deleteMany(filter?: Partial<T>): Promise<number>;
|
|
102
133
|
/**
|
|
103
134
|
* Validate data against schema
|
|
104
135
|
*/
|
|
105
136
|
private validate;
|
|
106
|
-
private
|
|
107
|
-
private
|
|
137
|
+
private isValidEmail;
|
|
138
|
+
private isValidUrl;
|
|
108
139
|
}
|
|
109
|
-
export declare class QueryBuilder<T
|
|
110
|
-
private
|
|
111
|
-
private
|
|
112
|
-
private
|
|
113
|
-
private sortField?;
|
|
114
|
-
private sortOrder?;
|
|
140
|
+
export declare class QueryBuilder<T extends Record<string, any>> {
|
|
141
|
+
private model;
|
|
142
|
+
private filterConditions;
|
|
143
|
+
private sortOptions?;
|
|
115
144
|
private limitValue?;
|
|
116
145
|
private skipValue?;
|
|
117
|
-
constructor(
|
|
146
|
+
constructor(model: Model<T>);
|
|
118
147
|
/**
|
|
119
|
-
* Add
|
|
148
|
+
* Add filter condition
|
|
120
149
|
*/
|
|
121
|
-
|
|
150
|
+
where(field: string, operator: QueryFilter['operator'], value: any): this;
|
|
122
151
|
/**
|
|
123
|
-
*
|
|
152
|
+
* Shorthand for equals filter
|
|
124
153
|
*/
|
|
125
|
-
|
|
154
|
+
equals(field: string, value: any): this;
|
|
126
155
|
/**
|
|
127
156
|
* Sort results
|
|
128
157
|
*/
|
|
129
|
-
sort(field: string, order?: 'asc' | 'desc'):
|
|
158
|
+
sort(field: string, order?: 'asc' | 'desc'): this;
|
|
130
159
|
/**
|
|
131
|
-
* Limit results
|
|
160
|
+
* Limit number of results
|
|
132
161
|
*/
|
|
133
|
-
limit(
|
|
162
|
+
limit(value: number): this;
|
|
134
163
|
/**
|
|
135
|
-
* Skip results
|
|
164
|
+
* Skip number of results
|
|
136
165
|
*/
|
|
137
|
-
skip(
|
|
166
|
+
skip(value: number): this;
|
|
138
167
|
/**
|
|
139
|
-
* Execute query
|
|
168
|
+
* Execute the query
|
|
140
169
|
*/
|
|
141
|
-
exec(): Promise<T
|
|
170
|
+
exec(): Promise<Array<T & {
|
|
171
|
+
_id: string;
|
|
172
|
+
}>>;
|
|
142
173
|
/**
|
|
143
|
-
*
|
|
174
|
+
* Get count of matching documents
|
|
144
175
|
*/
|
|
145
176
|
count(): Promise<number>;
|
|
146
|
-
private matchesFilter;
|
|
147
177
|
}
|
|
148
178
|
export default TormClient;
|
|
149
179
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|