@prismatic-io/spectral
Advanced tools
Comparing version 7.0.13-pre to 7.0.14-pre
@@ -118,2 +118,7 @@ /// <reference types="node" /> | ||
} | ||
export interface DataSourceContext { | ||
logger: ActionLogger; | ||
customer: Customer; | ||
instance: Instance; | ||
} | ||
export declare type DataSourceResult = { | ||
@@ -126,3 +131,3 @@ result: DataSourceResultType; | ||
}; | ||
export declare type DataSourcePerformFunction = (params: Record<string, unknown>) => Promise<DataSourceResult>; | ||
export declare type DataSourcePerformFunction = (context: DataSourceContext, params: Record<string, unknown>) => Promise<DataSourceResult>; | ||
export interface DataSource { | ||
@@ -129,0 +134,0 @@ key: string; |
@@ -7,3 +7,3 @@ /** | ||
*/ | ||
import { TriggerPayload, TriggerResult, ConnectionValue, ActionLogger, Component, ActionContext, ActionPerformReturn, DataSourceResult } from "./serverTypes"; | ||
import { TriggerPayload, TriggerResult, ConnectionValue, ActionLogger, Component, ActionContext, ActionPerformReturn, DataSourceResult, DataSourceContext } from "./serverTypes"; | ||
import { ConnectionDefinition, ActionDefinition, TriggerDefinition, Inputs, ActionInputParameters, DataSourceDefinition, ActionPerformReturn as InvokeActionPerformReturn, TriggerResult as InvokeTriggerResult, DataSourceResult as InvokeDataSourceResult } from "./types"; | ||
@@ -59,3 +59,3 @@ export declare const createConnection: <T extends ConnectionDefinition>({ key }: T, values: Record<string, unknown>) => ConnectionValue; | ||
jsonForm: import("./types").JSONForm; | ||
}>({ perform }: DataSourceDefinition<TInputs, TDataSourceType>, params: ActionInputParameters<TInputs>) => Promise<InvokeDataSourceResult<TDataSourceType>>; | ||
}>({ perform }: DataSourceDefinition<TInputs, TDataSourceType>, params: ActionInputParameters<TInputs>, context?: Partial<DataSourceContext> | undefined) => Promise<InvokeDataSourceResult<TDataSourceType>>; | ||
export declare class ComponentTestHarness<TComponent extends Component> { | ||
@@ -69,3 +69,3 @@ component: TComponent; | ||
action(key: string, params?: Record<string, unknown>, context?: Partial<ActionContext>): Promise<ActionPerformReturn>; | ||
dataSource(key: string, params?: Record<string, unknown>): Promise<DataSourceResult>; | ||
dataSource(key: string, params?: Record<string, unknown>, context?: Partial<DataSourceContext>): Promise<DataSourceResult>; | ||
} | ||
@@ -94,4 +94,4 @@ export declare const createHarness: <TComponent extends Component>(component: TComponent) => ComponentTestHarness<TComponent>; | ||
jsonForm: import("./types").JSONForm; | ||
}>({ perform }: DataSourceDefinition<TInputs_2, TDataSourceType>, params: ActionInputParameters<TInputs_2>) => Promise<InvokeDataSourceResult<TDataSourceType>>; | ||
}>({ perform }: DataSourceDefinition<TInputs_2, TDataSourceType>, params: ActionInputParameters<TInputs_2>, context?: Partial<DataSourceContext> | undefined) => Promise<InvokeDataSourceResult<TDataSourceType>>; | ||
}; | ||
export default _default; |
@@ -40,3 +40,3 @@ "use strict"; | ||
exports.loggerMock = loggerMock; | ||
const baseContext = { | ||
const baseActionContext = { | ||
logger: (0, exports.loggerMock)(), | ||
@@ -72,3 +72,3 @@ instanceState: {}, | ||
const invoke = ({ perform }, params, context) => __awaiter(void 0, void 0, void 0, function* () { | ||
const realizedContext = Object.assign(Object.assign({}, baseContext), context); | ||
const realizedContext = Object.assign(Object.assign({}, baseActionContext), context); | ||
const result = yield perform(realizedContext, params); | ||
@@ -125,3 +125,3 @@ return { | ||
const invokeTrigger = ({ perform }, context, payload, params) => __awaiter(void 0, void 0, void 0, function* () { | ||
const realizedContext = Object.assign(Object.assign({}, baseContext), context); | ||
const realizedContext = Object.assign(Object.assign({}, baseActionContext), context); | ||
const realizedPayload = Object.assign(Object.assign({}, (0, exports.defaultTriggerPayload)()), payload); | ||
@@ -136,2 +136,14 @@ const realizedParams = params || {}; | ||
exports.invokeTrigger = invokeTrigger; | ||
const baseDataSourceContext = { | ||
logger: (0, exports.loggerMock)(), | ||
customer: { | ||
id: "customerId", | ||
name: "Customer 1", | ||
externalId: "1234", | ||
}, | ||
instance: { | ||
id: "instanceId", | ||
name: "Instance 1", | ||
}, | ||
}; | ||
/** | ||
@@ -142,4 +154,5 @@ * Invokes specified DataSourceDefinition perform function using supplied params. | ||
*/ | ||
const invokeDataSource = ({ perform }, params) => __awaiter(void 0, void 0, void 0, function* () { | ||
const result = yield perform(params); | ||
const invokeDataSource = ({ perform }, params, context) => __awaiter(void 0, void 0, void 0, function* () { | ||
const realizedContext = Object.assign(Object.assign({}, baseDataSourceContext), context); | ||
const result = yield perform(realizedContext, params); | ||
return result; | ||
@@ -152,3 +165,3 @@ }); | ||
} | ||
buildContext(context) { | ||
buildContext(baseContext, context) { | ||
return Object.assign(Object.assign({}, baseContext), context); | ||
@@ -171,3 +184,3 @@ } | ||
const trigger = this.component.triggers[key]; | ||
return trigger.perform(this.buildContext(context), Object.assign(Object.assign({}, (0, exports.defaultTriggerPayload)()), payload), this.buildParams(trigger.inputs, params)); | ||
return trigger.perform(this.buildContext(baseActionContext, context), Object.assign(Object.assign({}, (0, exports.defaultTriggerPayload)()), payload), this.buildParams(trigger.inputs, params)); | ||
}); | ||
@@ -178,9 +191,9 @@ } | ||
const action = this.component.actions[key]; | ||
return action.perform(this.buildContext(context), this.buildParams(action.inputs, params)); | ||
return action.perform(this.buildContext(baseActionContext, context), this.buildParams(action.inputs, params)); | ||
}); | ||
} | ||
dataSource(key, params) { | ||
dataSource(key, params, context) { | ||
return __awaiter(this, void 0, void 0, function* () { | ||
const dataSource = this.component.dataSources[key]; | ||
return dataSource.perform(this.buildParams(dataSource.inputs, params)); | ||
return dataSource.perform(this.buildContext(baseDataSourceContext, context), this.buildParams(dataSource.inputs, params)); | ||
}); | ||
@@ -187,0 +200,0 @@ } |
@@ -1,3 +0,9 @@ | ||
import { Inputs, DataSourceResult, DataSourceType, ActionInputParameters } from "."; | ||
import { Inputs, DataSourceResult, DataSourceType, ActionInputParameters, ActionLogger, Customer, Instance } from "."; | ||
/** Context provided to perform method containing helpers and contextual data */ | ||
export interface DataSourceContext { | ||
logger: ActionLogger; | ||
customer: Customer; | ||
instance: Instance; | ||
} | ||
/** Definition of the function to perform when a Data Source is invoked. */ | ||
export declare type DataSourcePerformFunction<TInputs extends Inputs, TDataSourceType extends DataSourceType> = (params: ActionInputParameters<TInputs>) => Promise<DataSourceResult<TDataSourceType>>; | ||
export declare type DataSourcePerformFunction<TInputs extends Inputs, TDataSourceType extends DataSourceType> = (context: DataSourceContext, params: ActionInputParameters<TInputs>) => Promise<DataSourceResult<TDataSourceType>>; |
{ | ||
"name": "@prismatic-io/spectral", | ||
"version": "7.0.13-pre", | ||
"version": "7.0.14-pre", | ||
"description": "Utility library for building Prismatic components", | ||
@@ -5,0 +5,0 @@ "keywords": [ |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
151882
3398