Skip to content

Commit

Permalink
Release (#195)
Browse files Browse the repository at this point in the history
  • Loading branch information
tjholm committed Jul 5, 2023
2 parents 87633e5 + c82ef3e commit 8fd9094
Show file tree
Hide file tree
Showing 19 changed files with 3,816 additions and 289 deletions.
3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "@nitric/sdk",
"description": "Nitric NodeJS client sdk",
"nitric": "v0.27.0",
"nitric": "v0.30.0",
"author": "Nitric <https://github.com/nitrictech>",
"repository": "https://github.com/nitrictech/node-sdk",
"main": "lib/index.js",
Expand Down Expand Up @@ -40,6 +40,7 @@
"@opentelemetry/sdk-trace-node": "^1.10.1",
"@opentelemetry/semantic-conventions": "^1.10.1",
"google-protobuf": "3.14.0",
"portfinder": "^1.0.32",
"tslib": "^2.1.0"
},
"license": "Apache-2.0",
Expand Down
16 changes: 16 additions & 0 deletions src/faas/v0/start.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ import {
NotificationResponseContext,
BucketNotificationWorker,
BucketNotificationConfig,
HttpWorker,
} from '@nitric/api/proto/faas/v1/faas_pb';

import {
Expand All @@ -57,6 +58,7 @@ import {
} from '../../resources';

import * as grpc from '@grpc/grpc-js';
import { HttpWorkerOptions } from '@nitric/sdk/resources/http';

export class FaasWorkerOptions {}

Expand All @@ -65,6 +67,7 @@ type FaasClientOptions =
| RateWorkerOptions
| CronWorkerOptions
| FaasWorkerOptions
| HttpWorkerOptions
| BucketNotificationWorkerOptions;

/**
Expand Down Expand Up @@ -160,6 +163,7 @@ export class Faas {

this.anyHandler = handlers.length && createHandler(...handlers);
if (
!(this.options instanceof HttpWorkerOptions) &&
!this.httpHandler &&
!this.eventHandler &&
!this.bucketNotificationHandler &&
Expand All @@ -177,6 +181,14 @@ export class Faas {
// Begin Bi-Di streaming
const faasStream = faasClient.triggerStream();

// Start Node application that HTTP proxy sits on
if (
this.options instanceof HttpWorkerOptions &&
process.env.NITRIC_ENVIRONMENT !== 'build'
) {
this.options.app.listen(this.options.port, this.options.callback);
}

faasStream.on('data', async (message: ServerMessage) => {
// We have an init response from the membrane
if (message.hasInitResponse()) {
Expand Down Expand Up @@ -314,6 +326,10 @@ export class Faas {
config.setNotificationType(this.options.notificationType);
notificationWorker.setConfig(config);
initRequest.setBucketNotification(notificationWorker);
} else if (this.options instanceof HttpWorkerOptions) {
const httpWorker = new HttpWorker();
httpWorker.setPort(this.options.port);
initRequest.setHttpWorker(httpWorker);
}
// Original faas workers should return a blank InitRequest for compatibility.

Expand Down
126 changes: 126 additions & 0 deletions src/gen/proto/deploy/v1/deploy_pb.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -459,6 +459,56 @@ export namespace TopicSubscription {
}
}

export class HttpTarget extends jspb.Message {
hasExecutionUnit(): boolean;
clearExecutionUnit(): void;
getExecutionUnit(): string;
setExecutionUnit(value: string): void;

getTargetCase(): HttpTarget.TargetCase;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): HttpTarget.AsObject;
static toObject(includeInstance: boolean, msg: HttpTarget): HttpTarget.AsObject;
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
static serializeBinaryToWriter(message: HttpTarget, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): HttpTarget;
static deserializeBinaryFromReader(message: HttpTarget, reader: jspb.BinaryReader): HttpTarget;
}

export namespace HttpTarget {
export type AsObject = {
executionUnit: string,
}

export enum TargetCase {
TARGET_NOT_SET = 0,
EXECUTION_UNIT = 1,
}
}

export class Http extends jspb.Message {
hasTarget(): boolean;
clearTarget(): void;
getTarget(): HttpTarget | undefined;
setTarget(value?: HttpTarget): void;

serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): Http.AsObject;
static toObject(includeInstance: boolean, msg: Http): Http.AsObject;
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
static serializeBinaryToWriter(message: Http, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): Http;
static deserializeBinaryFromReader(message: Http, reader: jspb.BinaryReader): Http;
}

export namespace Http {
export type AsObject = {
target?: HttpTarget.AsObject,
}
}

export class Api extends jspb.Message {
hasOpenapi(): boolean;
clearOpenapi(): void;
Expand Down Expand Up @@ -487,6 +537,68 @@ export namespace Api {
}
}

export class Websocket extends jspb.Message {
hasConnectTarget(): boolean;
clearConnectTarget(): void;
getConnectTarget(): WebsocketTarget | undefined;
setConnectTarget(value?: WebsocketTarget): void;

hasDisconnectTarget(): boolean;
clearDisconnectTarget(): void;
getDisconnectTarget(): WebsocketTarget | undefined;
setDisconnectTarget(value?: WebsocketTarget): void;

hasMessageTarget(): boolean;
clearMessageTarget(): void;
getMessageTarget(): WebsocketTarget | undefined;
setMessageTarget(value?: WebsocketTarget): void;

serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): Websocket.AsObject;
static toObject(includeInstance: boolean, msg: Websocket): Websocket.AsObject;
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
static serializeBinaryToWriter(message: Websocket, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): Websocket;
static deserializeBinaryFromReader(message: Websocket, reader: jspb.BinaryReader): Websocket;
}

export namespace Websocket {
export type AsObject = {
connectTarget?: WebsocketTarget.AsObject,
disconnectTarget?: WebsocketTarget.AsObject,
messageTarget?: WebsocketTarget.AsObject,
}
}

export class WebsocketTarget extends jspb.Message {
hasExecutionUnit(): boolean;
clearExecutionUnit(): void;
getExecutionUnit(): string;
setExecutionUnit(value: string): void;

getTargetCase(): WebsocketTarget.TargetCase;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): WebsocketTarget.AsObject;
static toObject(includeInstance: boolean, msg: WebsocketTarget): WebsocketTarget.AsObject;
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
static serializeBinaryToWriter(message: WebsocketTarget, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): WebsocketTarget;
static deserializeBinaryFromReader(message: WebsocketTarget, reader: jspb.BinaryReader): WebsocketTarget;
}

export namespace WebsocketTarget {
export type AsObject = {
executionUnit: string,
}

export enum TargetCase {
TARGET_NOT_SET = 0,
EXECUTION_UNIT = 1,
}
}

export class ScheduleTarget extends jspb.Message {
hasExecutionUnit(): boolean;
clearExecutionUnit(): void;
Expand Down Expand Up @@ -593,6 +705,16 @@ export class Resource extends jspb.Message {
getSecret(): Secret | undefined;
setSecret(value?: Secret): void;

hasWebsocket(): boolean;
clearWebsocket(): void;
getWebsocket(): Websocket | undefined;
setWebsocket(value?: Websocket): void;

hasHttp(): boolean;
clearHttp(): void;
getHttp(): Http | undefined;
setHttp(value?: Http): void;

getConfigCase(): Resource.ConfigCase;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): Resource.AsObject;
Expand All @@ -617,6 +739,8 @@ export namespace Resource {
schedule?: Schedule.AsObject,
collection?: Collection.AsObject,
secret?: Secret.AsObject,
websocket?: Websocket.AsObject,
http?: Http.AsObject,
}

export enum ConfigCase {
Expand All @@ -630,6 +754,8 @@ export namespace Resource {
SCHEDULE = 16,
COLLECTION = 17,
SECRET = 18,
WEBSOCKET = 19,
HTTP = 20,
}
}

Expand Down
Loading

0 comments on commit 8fd9094

Please sign in to comment.