@gravityai-dev/plugin-base
Version:
Base package for Gravity plugin development
128 lines • 4.62 kB
JavaScript
/**
* Unified Plugin Base and Platform Dependencies
*
* This file combines plugin interfaces with platform dependencies,
* eliminating redundancy across plugin packages.
*/
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.setPlatformDependencies = setPlatformDependencies;
exports.getPlatformDependencies = getPlatformDependencies;
exports.createPlugin = createPlugin;
exports.initializePlatformFromAPI = initializePlatformFromAPI;
// Global platform instance
let platformDeps = null;
/**
* Set platform dependencies (called by plugin setup)
*/
function setPlatformDependencies(deps) {
platformDeps = deps;
}
/**
* Get platform dependencies (used by internal code)
*/
function getPlatformDependencies() {
if (!platformDeps) {
// Return stub implementations that won't crash at module load
return {
packageVersion: "1.0.26",
PromiseNode: class {
constructor(name) {
this.nodeType = 'stub';
this.logger = { info: () => { }, error: () => { }, debug: () => { } };
}
validateConfig(config) { return { success: true }; }
executeNode(inputs, config, context) { return {}; }
validateAndGetContext(context) { return { workflowId: '', executionId: '', nodeId: '' }; }
getExecutionContext(context) {
return {
workflowId: '',
executionId: '',
nodeId: '',
nodeType: '',
config: {},
credentials: {}
};
}
},
CallbackNode: class {
constructor(name) { }
},
NodeInputType: {
STRING: 'string',
OBJECT: 'object',
ARRAY: 'array',
NUMBER: 'number',
BOOLEAN: 'boolean'
},
NodeConcurrency: {
SINGLE: 'single',
MULTIPLE: 'multiple'
},
getNodeCredentials: () => Promise.resolve({}),
getConfig: () => ({}),
createLogger: () => ({ info: () => { }, error: () => { }, debug: () => { }, warn: () => { } }),
saveTokenUsage: () => Promise.resolve(),
callService: () => Promise.resolve(null),
getRedisClient: () => null,
gravityPublish: () => Promise.resolve(),
};
}
return platformDeps;
}
/**
* Helper to create a plugin
*/
function createPlugin(config) {
return config;
}
/**
* Initialize platform dependencies from plugin API
*/
function initializePlatformFromAPI(api) {
setPlatformDependencies({
// Core dependencies from API
PromiseNode: api.classes.PromiseNode,
CallbackNode: api.classes.CallbackNode,
NodeInputType: api.types.NodeInputType,
NodeConcurrency: api.types.NodeConcurrency,
getNodeCredentials: api.getNodeCredentials,
getConfig: api.getConfig,
createLogger: api.createLogger,
saveTokenUsage: api.saveTokenUsage,
callService: api.callService,
getRedisClient: api.getRedisClient,
gravityPublish: api.gravityPublish,
getAudioWebSocketManager: api.getAudioWebSocketManager,
// Type placeholders (not used at runtime)
NodeInput: null,
NodeOutput: null,
NodeDefinition: null,
NodeExecutor: null,
NodeExecutionContext: null,
NodeLifecycle: null,
WorkflowNode: null,
EnhancedNodeDefinition: null,
NodeCredential: null,
ValidationResult: null,
});
}
// Export types
__exportStar(require("./types"), exports);
// Export shared credentials
__exportStar(require("./credentials"), exports);
//# sourceMappingURL=index.js.map
;