@objectql/core 1.0.0 → 1.2.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/CHANGELOG.md CHANGED
@@ -1,7 +1,12 @@
1
1
  # @objectql/core
2
2
 
3
- ## 1.0.0
3
+ ## 1.2.0
4
4
 
5
- ### Major Changes
5
+ ### Minor Changes
6
6
 
7
- - first release
7
+ - 7df2977: 拆分 objectos
8
+
9
+ ### Patch Changes
10
+
11
+ - Updated dependencies [7df2977]
12
+ - @objectql/types@1.2.0
package/dist/index.d.ts CHANGED
@@ -1,21 +1,29 @@
1
- export * from './metadata';
2
- export * from './types';
3
- export * from './driver';
4
- export * from './repository';
5
- export * from './query';
6
- import { ObjectConfig } from './metadata';
7
- import { ObjectQLContext, ObjectQLContextOptions, IObjectQL, ObjectQLConfig } from './types';
8
- import { Driver } from './driver';
1
+ import { ObjectRegistry, Driver, ObjectConfig, ObjectQLContext, ObjectQLContextOptions, IObjectQL, ObjectQLConfig, ObjectQLPlugin, HookName, HookHandler, HookContext, ActionHandler, ActionContext } from '@objectql/types';
2
+ export * from './loader';
9
3
  export declare class ObjectQL implements IObjectQL {
10
- private objects;
4
+ metadata: ObjectRegistry;
5
+ private loader;
11
6
  private datasources;
7
+ private hooks;
8
+ private actions;
9
+ private pluginsList;
12
10
  constructor(config: ObjectQLConfig);
13
- loadFromPackage(name: string): void;
14
- loadFromDirectory(dir: string): void;
11
+ private loadPluginFromPackage;
12
+ addPackage(name: string): void;
13
+ use(plugin: ObjectQLPlugin): void;
14
+ removePackage(name: string): void;
15
+ on(event: HookName, objectName: string, handler: HookHandler, packageName?: string): void;
16
+ triggerHook(event: HookName, objectName: string, ctx: HookContext): Promise<void>;
17
+ registerAction(objectName: string, actionName: string, handler: ActionHandler, packageName?: string): void;
18
+ executeAction(objectName: string, actionName: string, ctx: ActionContext): Promise<any>;
19
+ loadFromDirectory(dir: string, packageName?: string): void;
15
20
  createContext(options: ObjectQLContextOptions): ObjectQLContext;
16
21
  registerObject(object: ObjectConfig): void;
22
+ unregisterObject(name: string): void;
17
23
  getObject(name: string): ObjectConfig | undefined;
18
24
  getConfigs(): Record<string, ObjectConfig>;
19
25
  datasource(name: string): Driver;
20
26
  init(): Promise<void>;
27
+ private loadDriverFromConnection;
21
28
  }
29
+ export * from './repository';
package/dist/index.js CHANGED
@@ -10,72 +10,173 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
10
10
  if (k2 === undefined) k2 = k;
11
11
  o[k2] = m[k];
12
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
13
  var __exportStar = (this && this.__exportStar) || function(m, exports) {
36
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
37
15
  };
38
16
  Object.defineProperty(exports, "__esModule", { value: true });
39
17
  exports.ObjectQL = void 0;
40
- const path = __importStar(require("path"));
41
- __exportStar(require("./metadata"), exports);
42
- __exportStar(require("./types"), exports);
43
- __exportStar(require("./driver"), exports);
44
- __exportStar(require("./repository"), exports);
45
- __exportStar(require("./query"), exports);
46
- const repository_1 = require("./repository");
18
+ const types_1 = require("@objectql/types");
47
19
  const loader_1 = require("./loader");
20
+ __exportStar(require("./loader"), exports);
21
+ const repository_1 = require("./repository");
48
22
  class ObjectQL {
49
23
  constructor(config) {
50
- this.objects = {};
51
24
  this.datasources = {};
52
- this.datasources = config.datasources;
25
+ this.hooks = {};
26
+ this.actions = {};
27
+ this.pluginsList = [];
28
+ this.metadata = config.registry || new types_1.ObjectRegistry();
29
+ this.loader = new loader_1.ObjectLoader(this.metadata);
30
+ this.datasources = config.datasources || {};
31
+ if (config.connection) {
32
+ this.loadDriverFromConnection(config.connection);
33
+ }
34
+ // 1. Load Presets/Packages first (Base Layer)
35
+ if (config.packages) {
36
+ for (const name of config.packages) {
37
+ this.addPackage(name);
38
+ }
39
+ }
40
+ if (config.presets) {
41
+ for (const name of config.presets) {
42
+ this.addPackage(name);
43
+ }
44
+ }
45
+ if (config.plugins) {
46
+ for (const plugin of config.plugins) {
47
+ if (typeof plugin === 'string') {
48
+ this.loadPluginFromPackage(plugin);
49
+ }
50
+ else {
51
+ this.use(plugin);
52
+ }
53
+ }
54
+ }
55
+ // 2. Load Local Sources (Application Layer - can override presets)
56
+ if (config.source) {
57
+ const sources = Array.isArray(config.source) ? config.source : [config.source];
58
+ for (const src of sources) {
59
+ this.loader.load(src);
60
+ }
61
+ }
62
+ // 3. Load In-Memory Objects (Dynamic Layer - highest priority)
53
63
  if (config.objects) {
54
64
  for (const [key, obj] of Object.entries(config.objects)) {
55
65
  this.registerObject(obj);
56
66
  }
57
67
  }
58
- if (config.packages) {
59
- for (const name of config.packages) {
68
+ }
69
+ loadPluginFromPackage(packageName) {
70
+ let mod;
71
+ try {
72
+ const modulePath = require.resolve(packageName, { paths: [process.cwd()] });
73
+ mod = require(modulePath);
74
+ }
75
+ catch (e) {
76
+ throw new Error(`Failed to resolve plugin '${packageName}': ${e}`);
77
+ }
78
+ // Helper to find plugin instance
79
+ const findPlugin = (candidate) => {
80
+ if (!candidate)
81
+ return undefined;
82
+ // 1. Try treating as Class
83
+ if (typeof candidate === 'function') {
60
84
  try {
61
- this.loadFromPackage(name);
85
+ const inst = new candidate();
86
+ if (inst && typeof inst.setup === 'function') {
87
+ return inst; // Found it!
88
+ }
62
89
  }
63
90
  catch (e) {
64
- this.loadFromDirectory(name);
91
+ // Not a constructor or instantiation failed
65
92
  }
66
93
  }
94
+ // 2. Try treating as Instance
95
+ if (candidate && typeof candidate.setup === 'function') {
96
+ if (candidate.name)
97
+ return candidate;
98
+ }
99
+ return undefined;
100
+ };
101
+ // Search in default, module root, and all named exports
102
+ let instance = findPlugin(mod.default) || findPlugin(mod);
103
+ if (!instance && mod && typeof mod === 'object') {
104
+ for (const key of Object.keys(mod)) {
105
+ if (key === 'default')
106
+ continue;
107
+ instance = findPlugin(mod[key]);
108
+ if (instance)
109
+ break;
110
+ }
111
+ }
112
+ if (instance) {
113
+ instance._packageName = packageName;
114
+ this.use(instance);
67
115
  }
116
+ else {
117
+ console.error(`[PluginLoader] Failed to find ObjectQLPlugin in '${packageName}'. Exports:`, Object.keys(mod));
118
+ throw new Error(`Plugin '${packageName}' must export a class or object implementing ObjectQLPlugin.`);
119
+ }
120
+ }
121
+ addPackage(name) {
122
+ this.loader.loadPackage(name);
68
123
  }
69
- loadFromPackage(name) {
70
- const entryPath = require.resolve(name, { paths: [process.cwd()] });
71
- const packageDir = path.dirname(entryPath);
72
- this.loadFromDirectory(packageDir);
124
+ use(plugin) {
125
+ this.pluginsList.push(plugin);
73
126
  }
74
- loadFromDirectory(dir) {
75
- const objects = (0, loader_1.loadObjectConfigs)(dir);
76
- for (const obj of Object.values(objects)) {
77
- this.registerObject(obj);
127
+ removePackage(name) {
128
+ this.metadata.unregisterPackage(name);
129
+ // Remove hooks
130
+ for (const event of Object.keys(this.hooks)) {
131
+ this.hooks[event] = this.hooks[event].filter(h => h.packageName !== name);
78
132
  }
133
+ // Remove actions
134
+ for (const key of Object.keys(this.actions)) {
135
+ if (this.actions[key].packageName === name) {
136
+ delete this.actions[key];
137
+ }
138
+ }
139
+ }
140
+ on(event, objectName, handler, packageName) {
141
+ if (!this.hooks[event]) {
142
+ this.hooks[event] = [];
143
+ }
144
+ this.hooks[event].push({ objectName, handler, packageName });
145
+ }
146
+ async triggerHook(event, objectName, ctx) {
147
+ // 1. Registry Hooks (File-based)
148
+ const fileHooks = this.metadata.get('hook', objectName);
149
+ if (fileHooks && typeof fileHooks[event] === 'function') {
150
+ await fileHooks[event](ctx);
151
+ }
152
+ // 2. Programmatic Hooks
153
+ const hooks = this.hooks[event] || [];
154
+ for (const hook of hooks) {
155
+ if (hook.objectName === '*' || hook.objectName === objectName) {
156
+ await hook.handler(ctx);
157
+ }
158
+ }
159
+ }
160
+ registerAction(objectName, actionName, handler, packageName) {
161
+ const key = `${objectName}:${actionName}`;
162
+ this.actions[key] = { handler, packageName };
163
+ }
164
+ async executeAction(objectName, actionName, ctx) {
165
+ // 1. Programmatic
166
+ const key = `${objectName}:${actionName}`;
167
+ const actionEntry = this.actions[key];
168
+ if (actionEntry) {
169
+ return await actionEntry.handler(ctx);
170
+ }
171
+ // 2. Registry (File-based)
172
+ const fileActions = this.metadata.get('action', objectName);
173
+ if (fileActions && typeof fileActions[actionName] === 'function') {
174
+ return await fileActions[actionName](ctx);
175
+ }
176
+ throw new Error(`Action '${actionName}' not found for object '${objectName}'`);
177
+ }
178
+ loadFromDirectory(dir, packageName) {
179
+ this.loader.load(dir, packageName);
79
180
  }
80
181
  createContext(options) {
81
182
  const ctx = {
@@ -83,7 +184,6 @@ class ObjectQL {
83
184
  spaceId: options.spaceId,
84
185
  roles: options.roles || [],
85
186
  isSystem: options.isSystem,
86
- ignoreTriggers: options.ignoreTriggers,
87
187
  object: (name) => {
88
188
  return new repository_1.ObjectRepository(name, ctx, this);
89
189
  },
@@ -97,13 +197,11 @@ class ObjectQL {
97
197
  trx = await driver.beginTransaction();
98
198
  }
99
199
  catch (e) {
100
- // If beginTransaction fails, fail.
101
200
  throw e;
102
201
  }
103
202
  const trxCtx = {
104
203
  ...ctx,
105
204
  transactionHandle: trx,
106
- // Nested transaction simply reuses the current one (flat transaction)
107
205
  transaction: async (cb) => cb(trxCtx)
108
206
  };
109
207
  try {
@@ -133,13 +231,25 @@ class ObjectQL {
133
231
  }
134
232
  }
135
233
  }
136
- this.objects[object.name] = object;
234
+ this.metadata.register('object', {
235
+ type: 'object',
236
+ id: object.name,
237
+ content: object
238
+ });
239
+ }
240
+ unregisterObject(name) {
241
+ this.metadata.unregister('object', name);
137
242
  }
138
243
  getObject(name) {
139
- return this.objects[name];
244
+ return this.metadata.get('object', name);
140
245
  }
141
246
  getConfigs() {
142
- return this.objects;
247
+ const result = {};
248
+ const objects = this.metadata.list('object');
249
+ for (const obj of objects) {
250
+ result[obj.name] = obj;
251
+ }
252
+ return result;
143
253
  }
144
254
  datasource(name) {
145
255
  const driver = this.datasources[name];
@@ -149,30 +259,89 @@ class ObjectQL {
149
259
  return driver;
150
260
  }
151
261
  async init() {
152
- const ctx = this.createContext({ isSystem: true });
153
- for (const objectName in this.objects) {
154
- const obj = this.objects[objectName];
155
- if (obj.data && obj.data.length > 0) {
156
- console.log(`Initializing data for object ${objectName}...`);
157
- const repo = ctx.object(objectName);
158
- for (const record of obj.data) {
159
- try {
160
- if (record._id) {
161
- const existing = await repo.findOne(record._id);
162
- if (existing) {
163
- continue;
164
- }
262
+ // 0. Init Plugins
263
+ for (const plugin of this.pluginsList) {
264
+ console.log(`Initializing plugin '${plugin.name}'...`);
265
+ let app = this;
266
+ const pkgName = plugin._packageName;
267
+ if (pkgName) {
268
+ app = new Proxy(this, {
269
+ get(target, prop) {
270
+ if (prop === 'on') {
271
+ return (event, obj, handler) => target.on(event, obj, handler, pkgName);
165
272
  }
166
- await repo.create(record);
167
- console.log(`Inserted init data for ${objectName}: ${record._id || 'unknown id'}`);
168
- }
169
- catch (e) {
170
- console.error(`Failed to insert init data for ${objectName}:`, e);
273
+ if (prop === 'registerAction') {
274
+ return (obj, act, handler) => target.registerAction(obj, act, handler, pkgName);
275
+ }
276
+ const value = target[prop];
277
+ return typeof value === 'function' ? value.bind(target) : value;
171
278
  }
172
- }
279
+ });
280
+ }
281
+ await plugin.setup(app);
282
+ }
283
+ const objects = this.metadata.list('object');
284
+ // 1. Init Drivers (e.g. Sync Schema)
285
+ // Let's pass all objects to all configured drivers.
286
+ for (const [name, driver] of Object.entries(this.datasources)) {
287
+ if (driver.init) {
288
+ console.log(`Initializing driver '${name}'...`);
289
+ await driver.init(objects);
173
290
  }
174
291
  }
175
292
  }
293
+ loadDriverFromConnection(connection) {
294
+ let driverPackage = '';
295
+ let driverClass = '';
296
+ let driverConfig = {};
297
+ if (connection.startsWith('mongodb://')) {
298
+ driverPackage = '@objectql/driver-mongo';
299
+ driverClass = 'MongoDriver';
300
+ driverConfig = { url: connection };
301
+ }
302
+ else if (connection.startsWith('sqlite://')) {
303
+ driverPackage = '@objectql/driver-knex';
304
+ driverClass = 'KnexDriver';
305
+ const filename = connection.replace('sqlite://', '');
306
+ driverConfig = {
307
+ client: 'sqlite3',
308
+ connection: { filename },
309
+ useNullAsDefault: true
310
+ };
311
+ }
312
+ else if (connection.startsWith('postgres://') || connection.startsWith('postgresql://')) {
313
+ driverPackage = '@objectql/driver-knex';
314
+ driverClass = 'KnexDriver';
315
+ driverConfig = {
316
+ client: 'pg',
317
+ connection: connection
318
+ };
319
+ }
320
+ else if (connection.startsWith('mysql://')) {
321
+ driverPackage = '@objectql/driver-knex';
322
+ driverClass = 'KnexDriver';
323
+ driverConfig = {
324
+ client: 'mysql2',
325
+ connection: connection
326
+ };
327
+ }
328
+ else {
329
+ throw new Error(`Unsupported connection protocol: ${connection}`);
330
+ }
331
+ try {
332
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
333
+ const pkg = require(driverPackage);
334
+ const DriverClass = pkg[driverClass];
335
+ if (!DriverClass) {
336
+ throw new Error(`${driverClass} not found in ${driverPackage}`);
337
+ }
338
+ this.datasources['default'] = new DriverClass(driverConfig);
339
+ }
340
+ catch (e) {
341
+ throw new Error(`Failed to load driver ${driverPackage}. Please install it: npm install ${driverPackage}. Error: ${e.message}`);
342
+ }
343
+ }
176
344
  }
177
345
  exports.ObjectQL = ObjectQL;
346
+ __exportStar(require("./repository"), exports);
178
347
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/loader.d.ts CHANGED
@@ -1,2 +1,25 @@
1
- import { ObjectConfig } from './types';
1
+ import { ObjectRegistry, ObjectConfig } from '@objectql/types';
2
+ export interface LoaderHandlerContext {
3
+ file: string;
4
+ content: string;
5
+ registry: ObjectRegistry;
6
+ packageName?: string;
7
+ }
8
+ export type LoaderHandler = (ctx: LoaderHandlerContext) => void;
9
+ export interface LoaderPlugin {
10
+ name: string;
11
+ glob: string[];
12
+ handler: LoaderHandler;
13
+ options?: any;
14
+ }
15
+ export declare class ObjectLoader {
16
+ protected registry: ObjectRegistry;
17
+ private plugins;
18
+ constructor(registry: ObjectRegistry);
19
+ private registerBuiltinPlugins;
20
+ use(plugin: LoaderPlugin): void;
21
+ load(dir: string, packageName?: string): void;
22
+ loadPackage(packageName: string): void;
23
+ private runPlugin;
24
+ }
2
25
  export declare function loadObjectConfigs(dir: string): Record<string, ObjectConfig>;