@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 +8 -3
- package/dist/index.d.ts +19 -11
- package/dist/index.js +237 -68
- package/dist/index.js.map +1 -1
- package/dist/loader.d.ts +24 -1
- package/dist/loader.js +152 -146
- package/dist/loader.js.map +1 -1
- package/dist/repository.d.ts +3 -5
- package/dist/repository.js +107 -112
- package/dist/repository.js.map +1 -1
- package/jest.config.js +3 -0
- package/package.json +10 -6
- package/src/index.ts +283 -53
- package/src/loader.ts +178 -166
- package/src/repository.ts +123 -127
- package/test/action.test.ts +58 -0
- package/test/hook.test.ts +60 -0
- package/test/utils.ts +54 -0
- package/tsconfig.json +4 -3
- package/tsconfig.tsbuildinfo +1 -1
- package/dist/driver.d.ts +0 -17
- package/dist/driver.js +0 -3
- package/dist/driver.js.map +0 -1
- package/dist/metadata.d.ts +0 -104
- package/dist/metadata.js +0 -3
- package/dist/metadata.js.map +0 -1
- package/dist/query.d.ts +0 -10
- package/dist/query.js +0 -3
- package/dist/query.js.map +0 -1
- package/dist/types.d.ts +0 -77
- package/dist/types.js +0 -3
- package/dist/types.js.map +0 -1
- package/src/driver.ts +0 -24
- package/src/metadata.ts +0 -143
- package/src/query.ts +0 -11
- package/src/types.ts +0 -109
- package/test/fixtures/project.action.ts +0 -6
- package/test/fixtures/project.object.yml +0 -41
- package/test/loader.test.ts +0 -22
- package/test/metadata.test.ts +0 -49
- package/test/mock-driver.ts +0 -86
- package/test/repository.test.ts +0 -150
package/dist/loader.js
CHANGED
|
@@ -33,178 +33,184 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.ObjectLoader = void 0;
|
|
36
37
|
exports.loadObjectConfigs = loadObjectConfigs;
|
|
37
38
|
const fs = __importStar(require("fs"));
|
|
39
|
+
const glob = __importStar(require("fast-glob"));
|
|
38
40
|
const path = __importStar(require("path"));
|
|
41
|
+
const types_1 = require("@objectql/types");
|
|
39
42
|
const yaml = __importStar(require("js-yaml"));
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
43
|
+
class ObjectLoader {
|
|
44
|
+
constructor(registry) {
|
|
45
|
+
this.registry = registry;
|
|
46
|
+
this.plugins = [];
|
|
47
|
+
this.registerBuiltinPlugins();
|
|
48
|
+
}
|
|
49
|
+
registerBuiltinPlugins() {
|
|
50
|
+
// Objects
|
|
51
|
+
this.use({
|
|
52
|
+
name: 'object',
|
|
53
|
+
glob: ['**/*.object.yml', '**/*.object.yaml'],
|
|
54
|
+
handler: (ctx) => {
|
|
55
|
+
try {
|
|
56
|
+
const doc = yaml.load(ctx.content);
|
|
57
|
+
if (!doc)
|
|
58
|
+
return;
|
|
59
|
+
if (doc.name && doc.fields) {
|
|
60
|
+
registerObject(ctx.registry, doc, ctx.file, ctx.packageName || ctx.registry.getEntry('package-map', ctx.file)?.package);
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
for (const [key, value] of Object.entries(doc)) {
|
|
64
|
+
if (typeof value === 'object' && value.fields) {
|
|
65
|
+
const obj = value;
|
|
66
|
+
if (!obj.name)
|
|
67
|
+
obj.name = key;
|
|
68
|
+
registerObject(ctx.registry, obj, ctx.file, ctx.packageName);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
61
71
|
}
|
|
62
72
|
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
catch (e) {
|
|
66
|
-
console.error(`Error loading object config from ${file}:`, e);
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
// 2. Load Hooks (.hook.js, .hook.ts)
|
|
70
|
-
// We only load .js if running in node, or .ts if ts-node/register is present.
|
|
71
|
-
// simpler: look for both, require will handle extension resolution if we are careful.
|
|
72
|
-
// Actually, in `dist` we only find .js. In `src` (test) we find .ts.
|
|
73
|
-
const hookFiles = glob.sync(['**/*.hook.{js,ts}'], {
|
|
74
|
-
cwd: dir,
|
|
75
|
-
absolute: true
|
|
76
|
-
});
|
|
77
|
-
for (const file of hookFiles) {
|
|
78
|
-
try {
|
|
79
|
-
// Check if we should ignore .ts if .js exists?
|
|
80
|
-
// Or assume env handles it.
|
|
81
|
-
// If we are in `dist`, `src` shouldn't be there usually.
|
|
82
|
-
const hookModule = require(file);
|
|
83
|
-
// Default export or named exports?
|
|
84
|
-
// Convention: export const listenTo = 'objectName';
|
|
85
|
-
// or filename based: 'project.hook.js' -> 'project' (flaky)
|
|
86
|
-
let objectName = hookModule.listenTo;
|
|
87
|
-
if (!objectName) {
|
|
88
|
-
// Try to guess from filename?
|
|
89
|
-
// project.hook.ts -> project
|
|
90
|
-
const basename = path.basename(file);
|
|
91
|
-
const match = basename.match(/^(.+)\.hook\.(ts|js)$/);
|
|
92
|
-
if (match) {
|
|
93
|
-
objectName = match[1];
|
|
73
|
+
catch (e) {
|
|
74
|
+
console.error(`Error loading object from ${ctx.file}:`, e);
|
|
94
75
|
}
|
|
95
76
|
}
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
77
|
+
});
|
|
78
|
+
// Hooks
|
|
79
|
+
this.use({
|
|
80
|
+
name: 'hook',
|
|
81
|
+
glob: ['**/*.hook.ts', '**/*.hook.js'],
|
|
82
|
+
handler: (ctx) => {
|
|
83
|
+
const basename = path.basename(ctx.file);
|
|
84
|
+
// Extract object name from filename: user.hook.ts -> user
|
|
85
|
+
const objectName = basename.replace(/\.hook\.(ts|js)$/, '');
|
|
86
|
+
try {
|
|
87
|
+
const mod = require(ctx.file);
|
|
88
|
+
// Support default export or named exports
|
|
89
|
+
const hooks = mod.default || mod;
|
|
90
|
+
ctx.registry.register('hook', {
|
|
91
|
+
type: 'hook',
|
|
92
|
+
id: objectName, // Hook ID is the object name
|
|
93
|
+
path: ctx.file,
|
|
94
|
+
package: ctx.packageName,
|
|
95
|
+
content: hooks
|
|
96
|
+
});
|
|
113
97
|
}
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
Object.assign(listeners, hookModule.default);
|
|
98
|
+
catch (e) {
|
|
99
|
+
console.error(`Error loading hook from ${ctx.file}:`, e);
|
|
117
100
|
}
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
// Actions
|
|
104
|
+
this.use({
|
|
105
|
+
name: 'action',
|
|
106
|
+
glob: ['**/*.action.ts', '**/*.action.js'],
|
|
107
|
+
handler: (ctx) => {
|
|
108
|
+
const basename = path.basename(ctx.file);
|
|
109
|
+
// Extract object name: invoice.action.ts -> invoice
|
|
110
|
+
const objectName = basename.replace(/\.action\.(ts|js)$/, '');
|
|
111
|
+
try {
|
|
112
|
+
const mod = require(ctx.file);
|
|
113
|
+
// Action file exports multiple actions
|
|
114
|
+
// export const approve = { ... };
|
|
115
|
+
// export const reject = { ... };
|
|
116
|
+
const actions = {};
|
|
117
|
+
for (const [key, value] of Object.entries(mod)) {
|
|
118
|
+
if (key === 'default')
|
|
119
|
+
continue;
|
|
120
|
+
if (typeof value === 'object' && value.handler) {
|
|
121
|
+
actions[key] = value;
|
|
130
122
|
}
|
|
131
|
-
|
|
132
|
-
|
|
123
|
+
}
|
|
124
|
+
if (Object.keys(actions).length > 0) {
|
|
125
|
+
ctx.registry.register('action', {
|
|
126
|
+
type: 'action',
|
|
127
|
+
id: objectName, // Action collection ID is the object name
|
|
128
|
+
path: ctx.file,
|
|
129
|
+
package: ctx.packageName,
|
|
130
|
+
content: actions
|
|
131
|
+
});
|
|
133
132
|
}
|
|
134
133
|
}
|
|
134
|
+
catch (e) {
|
|
135
|
+
console.error(`Error loading action from ${ctx.file}:`, e);
|
|
136
|
+
}
|
|
135
137
|
}
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
use(plugin) {
|
|
141
|
+
this.plugins.push(plugin);
|
|
142
|
+
}
|
|
143
|
+
load(dir, packageName) {
|
|
144
|
+
for (const plugin of this.plugins) {
|
|
145
|
+
this.runPlugin(plugin, dir, packageName);
|
|
139
146
|
}
|
|
140
147
|
}
|
|
141
|
-
|
|
142
|
-
const dataFiles = glob.sync(['**/*.data.yml', '**/*.data.yaml'], {
|
|
143
|
-
cwd: dir,
|
|
144
|
-
absolute: true
|
|
145
|
-
});
|
|
146
|
-
for (const file of dataFiles) {
|
|
148
|
+
loadPackage(packageName) {
|
|
147
149
|
try {
|
|
148
|
-
const
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
}
|
|
154
|
-
// Guess object name from filename
|
|
155
|
-
// project.data.yml -> project
|
|
156
|
-
const basename = path.basename(file);
|
|
157
|
-
const objectName = basename.replace(/\.data\.ya?ml$/, '');
|
|
158
|
-
if (configs[objectName]) {
|
|
159
|
-
configs[objectName].data = data;
|
|
160
|
-
}
|
|
161
|
-
else {
|
|
162
|
-
// Maybe the object config hasn't been found yet?
|
|
163
|
-
// loadObjectConfigs runs glob for objects first, so configs should be populated.
|
|
164
|
-
console.warn(`Found data for unknown object '${objectName}' in ${file}`);
|
|
165
|
-
}
|
|
150
|
+
const entryPath = require.resolve(packageName, { paths: [process.cwd()] });
|
|
151
|
+
// clean cache
|
|
152
|
+
delete require.cache[entryPath];
|
|
153
|
+
const packageDir = path.dirname(entryPath);
|
|
154
|
+
this.load(packageDir, packageName);
|
|
166
155
|
}
|
|
167
156
|
catch (e) {
|
|
168
|
-
|
|
157
|
+
// fallback to directory
|
|
158
|
+
this.load(packageName, packageName);
|
|
169
159
|
}
|
|
170
160
|
}
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
161
|
+
runPlugin(plugin, dir, packageName) {
|
|
162
|
+
const files = glob.sync(plugin.glob, {
|
|
163
|
+
cwd: dir,
|
|
164
|
+
absolute: true
|
|
165
|
+
});
|
|
166
|
+
for (const file of files) {
|
|
167
|
+
try {
|
|
168
|
+
const ctx = {
|
|
169
|
+
file,
|
|
170
|
+
content: '',
|
|
171
|
+
registry: this.registry,
|
|
172
|
+
packageName
|
|
173
|
+
};
|
|
174
|
+
// Pre-read for convenience
|
|
175
|
+
if (!file.match(/\.(js|ts|node)$/)) {
|
|
176
|
+
ctx.content = fs.readFileSync(file, 'utf8');
|
|
185
177
|
}
|
|
178
|
+
plugin.handler(ctx);
|
|
186
179
|
}
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
configs[objectName].actions = {};
|
|
190
|
-
}
|
|
191
|
-
// Treat all exported functions as actions
|
|
192
|
-
for (const [key, value] of Object.entries(actionModule)) {
|
|
193
|
-
if (key === 'listenTo')
|
|
194
|
-
continue;
|
|
195
|
-
if (typeof value === 'function') {
|
|
196
|
-
if (!configs[objectName].actions[key]) {
|
|
197
|
-
configs[objectName].actions[key] = {};
|
|
198
|
-
}
|
|
199
|
-
configs[objectName].actions[key].handler = value;
|
|
200
|
-
}
|
|
201
|
-
}
|
|
180
|
+
catch (e) {
|
|
181
|
+
console.error(`Error in loader plugin '${plugin.name}' processing ${file}:`, e);
|
|
202
182
|
}
|
|
203
183
|
}
|
|
204
|
-
|
|
205
|
-
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
exports.ObjectLoader = ObjectLoader;
|
|
187
|
+
function registerObject(registry, obj, file, packageName) {
|
|
188
|
+
// Normalize fields
|
|
189
|
+
if (obj.fields) {
|
|
190
|
+
for (const [key, field] of Object.entries(obj.fields)) {
|
|
191
|
+
if (typeof field === 'object' && field !== null) {
|
|
192
|
+
if (!field.name) {
|
|
193
|
+
field.name = key;
|
|
194
|
+
}
|
|
195
|
+
}
|
|
206
196
|
}
|
|
207
197
|
}
|
|
208
|
-
|
|
198
|
+
registry.register('object', {
|
|
199
|
+
type: 'object',
|
|
200
|
+
id: obj.name,
|
|
201
|
+
path: file,
|
|
202
|
+
package: packageName,
|
|
203
|
+
content: obj
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
function loadObjectConfigs(dir) {
|
|
207
|
+
const registry = new types_1.ObjectRegistry();
|
|
208
|
+
const loader = new ObjectLoader(registry);
|
|
209
|
+
loader.load(dir);
|
|
210
|
+
const result = {};
|
|
211
|
+
for (const obj of registry.list('object')) {
|
|
212
|
+
result[obj.name] = obj;
|
|
213
|
+
}
|
|
214
|
+
return result;
|
|
209
215
|
}
|
|
210
216
|
//# sourceMappingURL=loader.js.map
|
package/dist/loader.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"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"}
|
package/dist/repository.d.ts
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
import { ObjectQLContext, IObjectQL } from '
|
|
2
|
-
import { ObjectConfig } from './metadata';
|
|
3
|
-
import { UnifiedQuery } from './query';
|
|
1
|
+
import { ObjectQLContext, IObjectQL, ObjectConfig, UnifiedQuery } from '@objectql/types';
|
|
4
2
|
export declare class ObjectRepository {
|
|
5
3
|
private objectName;
|
|
6
4
|
private context;
|
|
@@ -9,7 +7,7 @@ export declare class ObjectRepository {
|
|
|
9
7
|
private getDriver;
|
|
10
8
|
private getOptions;
|
|
11
9
|
getSchema(): ObjectConfig;
|
|
12
|
-
private
|
|
10
|
+
private getHookAPI;
|
|
13
11
|
find(query?: UnifiedQuery): Promise<any[]>;
|
|
14
12
|
findOne(idOrQuery: string | number | UnifiedQuery): Promise<any>;
|
|
15
13
|
count(filters: any): Promise<number>;
|
|
@@ -22,5 +20,5 @@ export declare class ObjectRepository {
|
|
|
22
20
|
createMany(data: any[]): Promise<any>;
|
|
23
21
|
updateMany(filters: any, data: any): Promise<any>;
|
|
24
22
|
deleteMany(filters: any): Promise<any>;
|
|
25
|
-
|
|
23
|
+
execute(actionName: string, id: string | number | undefined, params: any): Promise<any>;
|
|
26
24
|
}
|