@tthr/vue 0.0.59 → 0.0.61
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/nuxt/module.js +2 -128
- package/nuxt/module.js.map +1 -1
- package/nuxt/module.ts +1 -131
- package/nuxt/runtime/composables.js +1 -0
- package/nuxt/runtime/plugin.client.js +1 -0
- package/nuxt/runtime/server/plugins/cron.d.ts +2 -0
- package/nuxt/runtime/server/plugins/cron.d.ts.map +1 -1
- package/nuxt/runtime/server/plugins/cron.js +58 -13
- package/nuxt/runtime/server/plugins/cron.js.map +1 -1
- package/package.json +1 -1
package/nuxt/module.js
CHANGED
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
* Environment variables (in .env):
|
|
19
19
|
* - TETHER_API_KEY: Your project's API key (required, kept server-side)
|
|
20
20
|
*/
|
|
21
|
-
import { defineNuxtModule, addPlugin, createResolver, addImports, addComponent, addServerHandler, addServerImports
|
|
21
|
+
import { defineNuxtModule, addPlugin, createResolver, addImports, addComponent, addServerHandler, addServerImports } from '@nuxt/kit';
|
|
22
22
|
export default defineNuxtModule({
|
|
23
23
|
meta: {
|
|
24
24
|
name: '@tthr/vue',
|
|
@@ -133,132 +133,6 @@ export default defineNuxtModule({
|
|
|
133
133
|
// Also inline the user's tether/functions directory so Nitro transpiles TypeScript
|
|
134
134
|
nitroConfig.externals.inline.push(`${nuxt.options.rootDir}/tether`);
|
|
135
135
|
});
|
|
136
|
-
// Get the absolute path to user's tether/functions directory for the generated plugin
|
|
137
|
-
const tetherFunctionsDir = `${nuxt.options.rootDir}/tether/functions`;
|
|
138
|
-
// Generate a server plugin to auto-register cron handlers from tether/functions
|
|
139
|
-
// This runs at build time and creates a plugin that imports user's functions
|
|
140
|
-
// NOTE: Must be .js file (not .ts) to avoid Rollup parse errors during Nitro build
|
|
141
|
-
addTemplate({
|
|
142
|
-
filename: 'server/plugins/tether-functions.js',
|
|
143
|
-
write: true,
|
|
144
|
-
getContents: () => `
|
|
145
|
-
/**
|
|
146
|
-
* Auto-generated plugin to register Tether functions as cron handlers
|
|
147
|
-
* This file is generated by @tthr/vue/nuxt module
|
|
148
|
-
*/
|
|
149
|
-
import { defineNitroPlugin } from 'nitropack/runtime';
|
|
150
|
-
|
|
151
|
-
// Absolute path to user's tether functions (injected at build time)
|
|
152
|
-
const TETHER_FUNCTIONS_DIR = '${tetherFunctionsDir}';
|
|
153
|
-
|
|
154
|
-
/**
|
|
155
|
-
* Create a simple logger for function execution
|
|
156
|
-
*/
|
|
157
|
-
function createLogger(functionName) {
|
|
158
|
-
const prefix = \`[Tether] \${functionName}\`;
|
|
159
|
-
return {
|
|
160
|
-
log: (msg, data) => console.log(prefix, msg, data !== undefined ? data : ''),
|
|
161
|
-
info: (msg, data) => console.log(prefix, msg, data !== undefined ? data : ''),
|
|
162
|
-
warn: (msg, data) => console.warn(prefix, msg, data !== undefined ? data : ''),
|
|
163
|
-
error: (msg, data) => console.error(prefix, msg, data !== undefined ? data : ''),
|
|
164
|
-
debug: (msg, data) => console.debug(prefix, msg, data !== undefined ? data : ''),
|
|
165
|
-
};
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
/**
|
|
169
|
-
* Create the handler context for a function
|
|
170
|
-
*/
|
|
171
|
-
function createHandlerContext(functionName, args, tetherClient) {
|
|
172
|
-
const log = createLogger(functionName);
|
|
173
|
-
|
|
174
|
-
// Create db proxy that uses tether server client
|
|
175
|
-
const db = new Proxy({}, {
|
|
176
|
-
get(_, tableName) {
|
|
177
|
-
return {
|
|
178
|
-
findMany: async (options) => tetherClient.query(\`_db.\${tableName}.findMany\`, options),
|
|
179
|
-
findFirst: async (options) => tetherClient.query(\`_db.\${tableName}.findFirst\`, options),
|
|
180
|
-
findUnique: async (options) => tetherClient.query(\`_db.\${tableName}.findUnique\`, options),
|
|
181
|
-
findById: async (id) => tetherClient.query(\`_db.\${tableName}.findById\`, { id }),
|
|
182
|
-
count: async (options) => tetherClient.query(\`_db.\${tableName}.count\`, options),
|
|
183
|
-
create: async (options) => tetherClient.mutation(\`_db.\${tableName}.create\`, options),
|
|
184
|
-
insert: async (data) => tetherClient.mutation(\`_db.\${tableName}.insert\`, { data }),
|
|
185
|
-
insertMany: async (data) => tetherClient.mutation(\`_db.\${tableName}.insertMany\`, { data }),
|
|
186
|
-
update: async (options) => tetherClient.mutation(\`_db.\${tableName}.update\`, options),
|
|
187
|
-
upsert: async (options) => tetherClient.mutation(\`_db.\${tableName}.upsert\`, options),
|
|
188
|
-
delete: async (options) => tetherClient.mutation(\`_db.\${tableName}.delete\`, options),
|
|
189
|
-
deleteById: async (id) => tetherClient.mutation(\`_db.\${tableName}.deleteById\`, { id }),
|
|
190
|
-
};
|
|
191
|
-
},
|
|
192
|
-
});
|
|
193
|
-
|
|
194
|
-
// Create tether context for actions
|
|
195
|
-
const tetherContext = {
|
|
196
|
-
query: tetherClient.query.bind(tetherClient),
|
|
197
|
-
mutation: tetherClient.mutation.bind(tetherClient),
|
|
198
|
-
env: new Proxy({}, {
|
|
199
|
-
get(_, key) {
|
|
200
|
-
return process.env[key];
|
|
201
|
-
},
|
|
202
|
-
}),
|
|
203
|
-
};
|
|
204
|
-
|
|
205
|
-
return {
|
|
206
|
-
args,
|
|
207
|
-
db,
|
|
208
|
-
ctx: { auth: { userId: null, claims: {} }, userId: null },
|
|
209
|
-
log,
|
|
210
|
-
tether: tetherContext,
|
|
211
|
-
};
|
|
212
|
-
}
|
|
213
|
-
|
|
214
|
-
export default defineNitroPlugin(async () => {
|
|
215
|
-
console.log('[Tether] Auto-registering functions from tether/functions...');
|
|
216
|
-
|
|
217
|
-
try {
|
|
218
|
-
// Dynamically import the cron module and tether server utilities
|
|
219
|
-
const { registerCronHandler } = await import('@tthr/vue/nuxt/runtime/server/plugins/cron.js');
|
|
220
|
-
const { useTetherServer } = await import('@tthr/vue/nuxt/runtime/server/utils/tether.js');
|
|
221
|
-
|
|
222
|
-
// Dynamically import user's tether functions
|
|
223
|
-
// This happens at runtime after Nitro has bundled everything
|
|
224
|
-
const tetherFunctions = await import('${tetherFunctionsDir}/index');
|
|
225
|
-
|
|
226
|
-
// Get the tether client for handler context
|
|
227
|
-
const tetherClient = useTetherServer(null);
|
|
228
|
-
|
|
229
|
-
// Iterate through all exported modules
|
|
230
|
-
for (const [moduleName, moduleExports] of Object.entries(tetherFunctions)) {
|
|
231
|
-
if (!moduleExports || typeof moduleExports !== 'object') continue;
|
|
232
|
-
|
|
233
|
-
// Iterate through all exports in each module
|
|
234
|
-
for (const [fnName, fnDef] of Object.entries(moduleExports)) {
|
|
235
|
-
// Check if it's a Tether function definition (has handler property)
|
|
236
|
-
if (!fnDef || typeof fnDef !== 'object' || typeof fnDef.handler !== 'function') continue;
|
|
237
|
-
|
|
238
|
-
const fullName = \`\${moduleName}.\${fnName}\`;
|
|
239
|
-
|
|
240
|
-
// Register the cron handler
|
|
241
|
-
registerCronHandler(fullName, async (args) => {
|
|
242
|
-
const context = createHandlerContext(fullName, args, tetherClient);
|
|
243
|
-
return fnDef.handler(context);
|
|
244
|
-
});
|
|
245
|
-
|
|
246
|
-
console.log(\`[Tether] Registered handler: \${fullName}\`);
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
|
|
250
|
-
console.log('[Tether] Function registration complete');
|
|
251
|
-
} catch (error) {
|
|
252
|
-
console.error('[Tether] Failed to register functions:', error);
|
|
253
|
-
}
|
|
254
|
-
});
|
|
255
|
-
`,
|
|
256
|
-
});
|
|
257
|
-
// Add the generated plugin to Nitro
|
|
258
|
-
nuxt.hook('nitro:config', (nitroConfig) => {
|
|
259
|
-
nitroConfig.plugins = nitroConfig.plugins || [];
|
|
260
|
-
// Add our generated plugin after the cron plugin
|
|
261
|
-
nitroConfig.plugins.push('#build/server/plugins/tether-functions.js');
|
|
262
|
-
});
|
|
263
136
|
},
|
|
264
137
|
});
|
|
138
|
+
//# sourceMappingURL=module.js.map
|
package/nuxt/module.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.js","sourceRoot":"","sources":["module.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,cAAc,EAAE,UAAU,EAAE,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"module.js","sourceRoot":"","sources":["module.ts"],"names":[],"mappings":"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"}
|
package/nuxt/module.ts
CHANGED
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
* - TETHER_API_KEY: Your project's API key (required, kept server-side)
|
|
20
20
|
*/
|
|
21
21
|
|
|
22
|
-
import { defineNuxtModule, addPlugin, createResolver, addImports, addComponent, addServerHandler, addServerImports
|
|
22
|
+
import { defineNuxtModule, addPlugin, createResolver, addImports, addComponent, addServerHandler, addServerImports } from '@nuxt/kit';
|
|
23
23
|
|
|
24
24
|
export interface TetherModuleOptions {
|
|
25
25
|
/** Project ID from Tether dashboard */
|
|
@@ -158,135 +158,5 @@ export default defineNuxtModule<TetherModuleOptions>({
|
|
|
158
158
|
// Also inline the user's tether/functions directory so Nitro transpiles TypeScript
|
|
159
159
|
nitroConfig.externals.inline.push(`${nuxt.options.rootDir}/tether`);
|
|
160
160
|
});
|
|
161
|
-
|
|
162
|
-
// Get the absolute path to user's tether/functions directory for the generated plugin
|
|
163
|
-
const tetherFunctionsDir = `${nuxt.options.rootDir}/tether/functions`;
|
|
164
|
-
|
|
165
|
-
// Generate a server plugin to auto-register cron handlers from tether/functions
|
|
166
|
-
// This runs at build time and creates a plugin that imports user's functions
|
|
167
|
-
// NOTE: Must be .js file (not .ts) to avoid Rollup parse errors during Nitro build
|
|
168
|
-
addTemplate({
|
|
169
|
-
filename: 'server/plugins/tether-functions.js',
|
|
170
|
-
write: true,
|
|
171
|
-
getContents: () => `
|
|
172
|
-
/**
|
|
173
|
-
* Auto-generated plugin to register Tether functions as cron handlers
|
|
174
|
-
* This file is generated by @tthr/vue/nuxt module
|
|
175
|
-
*/
|
|
176
|
-
import { defineNitroPlugin } from 'nitropack/runtime';
|
|
177
|
-
|
|
178
|
-
// Absolute path to user's tether functions (injected at build time)
|
|
179
|
-
const TETHER_FUNCTIONS_DIR = '${tetherFunctionsDir}';
|
|
180
|
-
|
|
181
|
-
/**
|
|
182
|
-
* Create a simple logger for function execution
|
|
183
|
-
*/
|
|
184
|
-
function createLogger(functionName) {
|
|
185
|
-
const prefix = \`[Tether] \${functionName}\`;
|
|
186
|
-
return {
|
|
187
|
-
log: (msg, data) => console.log(prefix, msg, data !== undefined ? data : ''),
|
|
188
|
-
info: (msg, data) => console.log(prefix, msg, data !== undefined ? data : ''),
|
|
189
|
-
warn: (msg, data) => console.warn(prefix, msg, data !== undefined ? data : ''),
|
|
190
|
-
error: (msg, data) => console.error(prefix, msg, data !== undefined ? data : ''),
|
|
191
|
-
debug: (msg, data) => console.debug(prefix, msg, data !== undefined ? data : ''),
|
|
192
|
-
};
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
/**
|
|
196
|
-
* Create the handler context for a function
|
|
197
|
-
*/
|
|
198
|
-
function createHandlerContext(functionName, args, tetherClient) {
|
|
199
|
-
const log = createLogger(functionName);
|
|
200
|
-
|
|
201
|
-
// Create db proxy that uses tether server client
|
|
202
|
-
const db = new Proxy({}, {
|
|
203
|
-
get(_, tableName) {
|
|
204
|
-
return {
|
|
205
|
-
findMany: async (options) => tetherClient.query(\`_db.\${tableName}.findMany\`, options),
|
|
206
|
-
findFirst: async (options) => tetherClient.query(\`_db.\${tableName}.findFirst\`, options),
|
|
207
|
-
findUnique: async (options) => tetherClient.query(\`_db.\${tableName}.findUnique\`, options),
|
|
208
|
-
findById: async (id) => tetherClient.query(\`_db.\${tableName}.findById\`, { id }),
|
|
209
|
-
count: async (options) => tetherClient.query(\`_db.\${tableName}.count\`, options),
|
|
210
|
-
create: async (options) => tetherClient.mutation(\`_db.\${tableName}.create\`, options),
|
|
211
|
-
insert: async (data) => tetherClient.mutation(\`_db.\${tableName}.insert\`, { data }),
|
|
212
|
-
insertMany: async (data) => tetherClient.mutation(\`_db.\${tableName}.insertMany\`, { data }),
|
|
213
|
-
update: async (options) => tetherClient.mutation(\`_db.\${tableName}.update\`, options),
|
|
214
|
-
upsert: async (options) => tetherClient.mutation(\`_db.\${tableName}.upsert\`, options),
|
|
215
|
-
delete: async (options) => tetherClient.mutation(\`_db.\${tableName}.delete\`, options),
|
|
216
|
-
deleteById: async (id) => tetherClient.mutation(\`_db.\${tableName}.deleteById\`, { id }),
|
|
217
|
-
};
|
|
218
|
-
},
|
|
219
|
-
});
|
|
220
|
-
|
|
221
|
-
// Create tether context for actions
|
|
222
|
-
const tetherContext = {
|
|
223
|
-
query: tetherClient.query.bind(tetherClient),
|
|
224
|
-
mutation: tetherClient.mutation.bind(tetherClient),
|
|
225
|
-
env: new Proxy({}, {
|
|
226
|
-
get(_, key) {
|
|
227
|
-
return process.env[key];
|
|
228
|
-
},
|
|
229
|
-
}),
|
|
230
|
-
};
|
|
231
|
-
|
|
232
|
-
return {
|
|
233
|
-
args,
|
|
234
|
-
db,
|
|
235
|
-
ctx: { auth: { userId: null, claims: {} }, userId: null },
|
|
236
|
-
log,
|
|
237
|
-
tether: tetherContext,
|
|
238
|
-
};
|
|
239
|
-
}
|
|
240
|
-
|
|
241
|
-
export default defineNitroPlugin(async () => {
|
|
242
|
-
console.log('[Tether] Auto-registering functions from tether/functions...');
|
|
243
|
-
|
|
244
|
-
try {
|
|
245
|
-
// Dynamically import the cron module and tether server utilities
|
|
246
|
-
const { registerCronHandler } = await import('@tthr/vue/nuxt/runtime/server/plugins/cron.js');
|
|
247
|
-
const { useTetherServer } = await import('@tthr/vue/nuxt/runtime/server/utils/tether.js');
|
|
248
|
-
|
|
249
|
-
// Dynamically import user's tether functions
|
|
250
|
-
// This happens at runtime after Nitro has bundled everything
|
|
251
|
-
const tetherFunctions = await import('${tetherFunctionsDir}/index');
|
|
252
|
-
|
|
253
|
-
// Get the tether client for handler context
|
|
254
|
-
const tetherClient = useTetherServer(null);
|
|
255
|
-
|
|
256
|
-
// Iterate through all exported modules
|
|
257
|
-
for (const [moduleName, moduleExports] of Object.entries(tetherFunctions)) {
|
|
258
|
-
if (!moduleExports || typeof moduleExports !== 'object') continue;
|
|
259
|
-
|
|
260
|
-
// Iterate through all exports in each module
|
|
261
|
-
for (const [fnName, fnDef] of Object.entries(moduleExports)) {
|
|
262
|
-
// Check if it's a Tether function definition (has handler property)
|
|
263
|
-
if (!fnDef || typeof fnDef !== 'object' || typeof fnDef.handler !== 'function') continue;
|
|
264
|
-
|
|
265
|
-
const fullName = \`\${moduleName}.\${fnName}\`;
|
|
266
|
-
|
|
267
|
-
// Register the cron handler
|
|
268
|
-
registerCronHandler(fullName, async (args) => {
|
|
269
|
-
const context = createHandlerContext(fullName, args, tetherClient);
|
|
270
|
-
return fnDef.handler(context);
|
|
271
|
-
});
|
|
272
|
-
|
|
273
|
-
console.log(\`[Tether] Registered handler: \${fullName}\`);
|
|
274
|
-
}
|
|
275
|
-
}
|
|
276
|
-
|
|
277
|
-
console.log('[Tether] Function registration complete');
|
|
278
|
-
} catch (error) {
|
|
279
|
-
console.error('[Tether] Failed to register functions:', error);
|
|
280
|
-
}
|
|
281
|
-
});
|
|
282
|
-
`,
|
|
283
|
-
});
|
|
284
|
-
|
|
285
|
-
// Add the generated plugin to Nitro
|
|
286
|
-
nuxt.hook('nitro:config' as any, (nitroConfig: any) => {
|
|
287
|
-
nitroConfig.plugins = nitroConfig.plugins || [];
|
|
288
|
-
// Add our generated plugin after the cron plugin
|
|
289
|
-
nitroConfig.plugins.push('#build/server/plugins/tether-functions.js');
|
|
290
|
-
});
|
|
291
161
|
},
|
|
292
162
|
});
|
|
@@ -8,6 +8,8 @@
|
|
|
8
8
|
* The connection is secured with the API key and only server connections
|
|
9
9
|
* (identified by ?type=server) receive cron triggers.
|
|
10
10
|
*/
|
|
11
|
+
import { defineNitroPlugin } from 'nitropack/runtime';
|
|
12
|
+
export { defineNitroPlugin };
|
|
11
13
|
/**
|
|
12
14
|
* Register a cron handler for a specific function
|
|
13
15
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cron.d.ts","sourceRoot":"","sources":["cron.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;
|
|
1
|
+
{"version":3,"file":"cron.d.ts","sourceRoot":"","sources":["cron.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAGtD,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAiC7B;;;;;;;;;;;;;GAaG;AACH,wBAAgB,mBAAmB,CACjC,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,GAC3C,IAAI,CAGN;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAEhE;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,EAAE,CAE1C;;AA6SD,wBAkCG"}
|
|
@@ -122,22 +122,65 @@ async function reportExecution(config, trigger, result, durationMs) {
|
|
|
122
122
|
log.error('Failed to report execution:', error);
|
|
123
123
|
}
|
|
124
124
|
}
|
|
125
|
+
/**
|
|
126
|
+
* Execute a function via the Tether API
|
|
127
|
+
* This is used when no local handler is registered - the function is executed
|
|
128
|
+
* on the Tether server which has access to the database and environment.
|
|
129
|
+
*/
|
|
130
|
+
async function executeViaApi(config, functionName, functionType, args) {
|
|
131
|
+
const base = config.url.replace(/\/$/, '');
|
|
132
|
+
const env = config.environment;
|
|
133
|
+
let apiPath;
|
|
134
|
+
if (env && env !== 'production') {
|
|
135
|
+
apiPath = `${base}/api/v1/projects/${config.projectId}/env/${env}`;
|
|
136
|
+
}
|
|
137
|
+
else {
|
|
138
|
+
apiPath = `${base}/api/v1/projects/${config.projectId}`;
|
|
139
|
+
}
|
|
140
|
+
// Determine endpoint based on function type
|
|
141
|
+
let endpoint;
|
|
142
|
+
if (functionType === 'query') {
|
|
143
|
+
endpoint = `${apiPath}/query`;
|
|
144
|
+
}
|
|
145
|
+
else if (functionType === 'mutation') {
|
|
146
|
+
endpoint = `${apiPath}/mutation`;
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
// Default to action endpoint for actions and unknown types
|
|
150
|
+
endpoint = `${apiPath}/action`;
|
|
151
|
+
}
|
|
152
|
+
const response = await fetch(endpoint, {
|
|
153
|
+
method: 'POST',
|
|
154
|
+
headers: {
|
|
155
|
+
'Content-Type': 'application/json',
|
|
156
|
+
'Authorization': `Bearer ${config.apiKey}`,
|
|
157
|
+
},
|
|
158
|
+
body: JSON.stringify({ function: functionName, args }),
|
|
159
|
+
});
|
|
160
|
+
if (!response.ok) {
|
|
161
|
+
const error = await response.json().catch(() => ({ error: 'Unknown error' }));
|
|
162
|
+
throw new Error(error.error || `Function '${functionName}' failed with status ${response.status}`);
|
|
163
|
+
}
|
|
164
|
+
const result = await response.json();
|
|
165
|
+
return result.data;
|
|
166
|
+
}
|
|
125
167
|
async function handleCronTrigger(config, trigger) {
|
|
126
168
|
log.info(`Received trigger for ${trigger.functionName} (execution: ${trigger.executionId})`);
|
|
127
169
|
const startTime = Date.now();
|
|
128
170
|
const handler = cronHandlers.get(trigger.functionName);
|
|
129
|
-
if (!handler) {
|
|
130
|
-
log.warn(`No handler registered for: ${trigger.functionName}`);
|
|
131
|
-
log.warn(`Registered handlers: ${Array.from(cronHandlers.keys()).join(', ') || '(none)'}`);
|
|
132
|
-
const durationMs = Date.now() - startTime;
|
|
133
|
-
await reportExecution(config, trigger, {
|
|
134
|
-
success: false,
|
|
135
|
-
error: `No handler registered for function: ${trigger.functionName}`,
|
|
136
|
-
}, durationMs);
|
|
137
|
-
return;
|
|
138
|
-
}
|
|
139
171
|
try {
|
|
140
|
-
|
|
172
|
+
let result;
|
|
173
|
+
if (handler) {
|
|
174
|
+
// Use locally registered handler
|
|
175
|
+
log.debug(`Using local handler for: ${trigger.functionName}`);
|
|
176
|
+
result = await handler(trigger.args);
|
|
177
|
+
}
|
|
178
|
+
else {
|
|
179
|
+
// Execute via Tether API (default behaviour)
|
|
180
|
+
// This allows cron to work without explicit handler registration
|
|
181
|
+
log.debug(`Executing via API: ${trigger.functionName} (${trigger.functionType})`);
|
|
182
|
+
result = await executeViaApi(config, trigger.functionName, trigger.functionType, trigger.args);
|
|
183
|
+
}
|
|
141
184
|
const durationMs = Date.now() - startTime;
|
|
142
185
|
await reportExecution(config, trigger, {
|
|
143
186
|
success: true,
|
|
@@ -273,9 +316,10 @@ export default defineNitroPlugin((nitro) => {
|
|
|
273
316
|
return;
|
|
274
317
|
}
|
|
275
318
|
log.info('Initialising cron connection...');
|
|
276
|
-
|
|
319
|
+
const config = { url, projectId, apiKey };
|
|
320
|
+
// Connect on next tick to allow the server to fully initialise
|
|
277
321
|
process.nextTick(() => {
|
|
278
|
-
connect(
|
|
322
|
+
connect(config);
|
|
279
323
|
});
|
|
280
324
|
// Clean up on shutdown
|
|
281
325
|
nitro.hooks.hook('close', () => {
|
|
@@ -288,3 +332,4 @@ export default defineNitroPlugin((nitro) => {
|
|
|
288
332
|
log.debug('Connection closed');
|
|
289
333
|
});
|
|
290
334
|
});
|
|
335
|
+
//# sourceMappingURL=cron.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cron.js","sourceRoot":"","sources":["cron.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cron.js","sourceRoot":"","sources":["cron.ts"],"names":[],"mappings":"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"}
|