Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 16 additions & 1 deletion .eslintrc
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,20 @@
"env": {
"node": true,
"jest": true
}
},
"overrides": [
{
"files": ["src/**/*"],
"rules": {
"no-restricted-syntax": [
"error",
{
"selector": "Identifier[name='__dirname']",
"message": "__dirname is not supported, instead use import {sourceDir} from '<src>/utils/source-dir.js' for paths inside the src dir and import {packageRoot} from '<src>/utils/package-root.js' for paths outside the src dir"
}
]
},
"excludedFiles": ["*.test.*"]
}
]
}
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,10 @@ npm-debug.log
.DS_Store
.env
.vscode
.tshy*

node_modules

build
build-integration
dist
1 change: 1 addition & 0 deletions .prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
"@gravity-ui/prettier-config"
1 change: 0 additions & 1 deletion .prettierrc.js

This file was deleted.

File renamed without changes.
2 changes: 1 addition & 1 deletion commitlint.config.js
Original file line number Diff line number Diff line change
@@ -1 +1 @@
module.exports = {extends: ['@commitlint/config-conventional']};
export default {extends: ['@commitlint/config-conventional']};
8 changes: 4 additions & 4 deletions integration-test/build.sh
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/bin/bash

tsc -p integration-test
mkdir -p build-integration/integration-test/proto/
cp -rf integration-test/proto/* build-integration/integration-test/proto/
node_modules/.bin/grpc_tools_node_protoc --descriptor_set_out=build-integration/integration-test/proto/descriptor_set.bin --include_imports integration-test/proto/*.proto
tsc -p integration-test/tsconfig.server.json
mkdir -p build-integration/proto/
cp -rf integration-test/proto/* build-integration/proto/
node_modules/.bin/grpc_tools_node_protoc --descriptor_set_out=build-integration/proto/descriptor_set.bin --include_imports integration-test/proto/*.proto
2 changes: 1 addition & 1 deletion integration-test/client/create-core-context.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import {Console} from 'console';

import {Dict, GatewayContext, GatewayContextParams} from '../../lib';
import {Dict, GatewayContext, GatewayContextParams} from '../../src/index.js';

const logger = new Console({stdout: process.stdout});
const logFactory = (type: string) => (message: string, _params: any) => {
Expand Down
6 changes: 3 additions & 3 deletions integration-test/client/index.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import {getGatewayControllers} from '../../lib';
import {getGatewayControllers} from '../../src/index.js';

import {ErrorConstructor, createCoreContext} from './create-core-context';
import {schema} from './schema/meta';
import {ErrorConstructor, createCoreContext} from './create-core-context.js';
import {schema} from './schema/meta.js';

export function gatewayCall(request: any) {
const controllers = getGatewayControllers(
Expand Down
12 changes: 5 additions & 7 deletions integration-test/client/native-call.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
import * as grpc from '@grpc/grpc-js';
import {Metadata} from '@grpc/grpc-js/build/src/metadata';

import {v1Package} from '../package-definitions';
import {v1Package} from '../package-definitions.js';

function serverStreamCall(
//@ts-ignore
//@ts-expect-error
client: v1Package.MetaService,
serviceMetadata: Metadata,
serviceMetadata: grpc.Metadata,
actionName: string,
) {
// eslint-disable-next-line new-cap
Expand All @@ -31,14 +30,13 @@ function serverStreamCall(
}

export function nativeCall() {
//@ts-ignore
//@ts-expect-error
const client = new v1Package.MetaService('localhost:50051', grpc.credentials.createInsecure());
const serviceMetadata = new grpc.Metadata();
const metadata = {
const metadata: Record<string, grpc.MetadataValue> = {
'meta-key': 'meta-value',
};
Object.keys(metadata).forEach((key) => {
// @ts-ignore
serviceMetadata.add(key, metadata[key]);
});

Expand Down
4 changes: 2 additions & 2 deletions integration-test/client/schema/meta.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import {GrpcReflection} from '../../../lib';
import {protoPath, serverEndpoint} from '../../constants';
import {GrpcReflection} from '../../../src/index.js';
import {protoPath, serverEndpoint} from '../../constants.cjs';

const config = {
protoPath: protoPath,
Expand Down
6 changes: 3 additions & 3 deletions integration-test/client/unary.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,10 @@ jest.mock('grpc-reflection-js', () => ({

import * as grpcReflection from 'grpc-reflection-js';

import {getGatewayControllers} from '../../lib';
import {getGatewayControllers} from '../../src/index.js';

import {ErrorConstructor, createCoreContext} from './create-core-context';
import {schema} from './schema/meta';
import {ErrorConstructor, createCoreContext} from './create-core-context.js';
import {schema} from './schema/meta.js';

const mockGrpcRetryCondition = jest.fn((error) => {
return Boolean(error?.details === 'Error details here');
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import path from 'path';
import * as path from 'path';

export const serverEndpoint = '0.0.0.0:50051';
export const protoPath = path.join(__dirname, 'proto/test_service.proto');
5 changes: 3 additions & 2 deletions integration-test/package-definitions.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import * as protoLoader from '@grpc/proto-loader';
import {protoPath} from './constants';
import * as grpc from '@grpc/grpc-js';
import * as protoLoader from '@grpc/proto-loader';

import {protoPath} from './constants.cjs';

const packageDefinition = protoLoader.loadSync(protoPath, {
keepCase: true,
Expand Down
20 changes: 11 additions & 9 deletions integration-test/server/index.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import {createServer} from 'http';
import * as path from 'path';
import * as url from 'url';

import {
Server,
Expand All @@ -8,12 +9,14 @@ import {
handleClientStreamingCall,
handleServerStreamingCall,
handleUnaryCall,
} from '@grpc/grpc-js/build/src';
import {Status} from '@grpc/grpc-js/build/src/constants';
} from '@grpc/grpc-js';
import {Status} from '@grpc/grpc-js/build/src/constants.js';
import {addReflection} from 'grpc-server-reflection';

import {serverEndpoint} from '../constants';
import {v1Package} from '../package-definitions';
import {serverEndpoint} from '../constants.cjs';
import {v1Package} from '../package-definitions.js';

const __dirname = url.fileURLToPath(new URL('.', import.meta.url));

function startHttpServer() {
const hostname = '127.0.0.1';
Expand Down Expand Up @@ -137,9 +140,8 @@ const getDataWithTimeout: handleUnaryCall<any, any> = (call, callback) => {
function startGrpcServer() {
const server = new Server();
addReflection(server, path.resolve(__dirname, '../proto/descriptor_set.bin'));
// @ts-ignore
// @ts-expect-error
server.addService(v1Package.MetaService.service, {
// @ts-ignore
GetEntityUnary: getEntityUnary,
GetLongEntityUnary: getLongEntityUnary,
MethodWithError: methodWithError,
Expand All @@ -150,15 +152,15 @@ function startGrpcServer() {
GetEntityListDuplexStream: getEntityListDuplexStream,
GetEntityTestOptions: getEntityTestOptions,
});
// @ts-ignore
// @ts-expect-error
server.addService(v1Package.Meta2Service.service, {
GetEntityUnary: getEntityUnary,
});
// @ts-ignore
// @ts-expect-error
server.addService(v1Package.Meta3Service.service, {
GetEntityUnary: getEntityUnary,
});
// @ts-ignore
// @ts-expect-error
server.addService(v1Package.TimeoutService.service, {
GetDataWithTimeout: getDataWithTimeout,
});
Expand Down
8 changes: 4 additions & 4 deletions integration-test/tsconfig.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
{
"extends": "@gravity-ui/tsconfig/tsconfig",
"extends": "@gravity-ui/tsconfig",
"compilerOptions": {
"declaration": true,
"module": "NodeNext",
"moduleResolution": "NodeNext",
"allowJs": false,
"outDir": "../build-integration"
},
"include": ["server/**/*.ts", "client/**/*.ts"],
"exclude": ["lib/**/*.test.ts", "node_modules"]
"include": ["**/*"],
}
10 changes: 10 additions & 0 deletions integration-test/tsconfig.server.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"extends": "@gravity-ui/tsconfig",
"compilerOptions": {
"module": "NodeNext",
"moduleResolution": "NodeNext",
"allowJs": false,
"outDir": "../build-integration"
},
"include": ["server/**/*"]
}
14 changes: 11 additions & 3 deletions jest.config-integration.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,17 @@
module.exports = {
export default {
roots: ['<rootDir>/integration-test'],
moduleDirectories: ['node_modules'],
moduleFileExtensions: ['js', 'ts', 'json'],
moduleFileExtensions: ['cjs', 'cts', 'js', 'ts', 'json'],
testMatch: ['<rootDir>/integration-test/**/?(*.)test.ts'],
transform: {
'^.+\\.(ts|tsx)$': 'ts-jest',
'^.+\\.c?ts$': [
'ts-jest',
{tsconfig: '<rootDir>/integration-test/tsconfig.json', useESM: true},
],
},
extensionsToTreatAsEsm: ['.ts'],
moduleNameMapper: {
'(.+\\/source-dir)\\.js$': '$1-cjs',
'(.+)\\.c?js$': '$1',
},
};
15 changes: 10 additions & 5 deletions jest.config.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,14 @@
module.exports = {
roots: ['<rootDir>/lib'],
export default {
roots: ['<rootDir>/src'],
moduleDirectories: ['node_modules'],
moduleFileExtensions: ['js', 'ts', 'json'],
testMatch: ['<rootDir>/lib/**/?(*.)test.ts'],
moduleFileExtensions: ['cjs', 'cts', 'js', 'ts', 'json'],
testMatch: ['<rootDir>/src/**/?(*.)test.ts'],
transform: {
'^.+\\.(ts|tsx)$': ['ts-jest', {tsconfig: '<rootDir>/tsconfig.json'}],
'^.+\\.c?ts$': ['ts-jest', {tsconfig: '<rootDir>/tsconfig.json', useESM: true}],
},
extensionsToTreatAsEsm: ['.ts'],
moduleNameMapper: {
'(.+\\/source-dir)\\.js$': '$1-cjs',
'(.+)\\.js$': '$1',
},
};
3 changes: 0 additions & 3 deletions lib/utils/overrideEndpoints/index.ts

This file was deleted.

Loading