@lad-tech/nsc-toolkit 0.7.1 → 1.0.0
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/.github/workflows/publish-package-to-npmjs.yml +16 -4
- package/.releaserc +12 -0
- package/CHANGELOG.md +22 -0
- package/commitlint.config.js +19 -0
- package/dist/Root.js +1 -1
- package/dist/Root.js.map +1 -1
- package/dist/types/Root.d.ts +2 -2
- package/lefthook.yml +15 -0
- package/package.json +7 -1
- package/examples/HttpGate/index.ts +0 -61
- package/examples/HttpGate/package-lock.json +0 -835
- package/examples/HttpGate/package.json +0 -15
- package/examples/LogicService/index.ts +0 -16
- package/examples/LogicService/interfaces.ts +0 -10
- package/examples/LogicService/methods/WeirdSum.ts +0 -20
- package/examples/LogicService/service.json +0 -31
- package/examples/LogicService/service.ts +0 -15
- package/examples/MathService/Untitled-1.json +0 -62
- package/examples/MathService/index.ts +0 -22
- package/examples/MathService/interfaces.ts +0 -26
- package/examples/MathService/methods/Fibonacci.ts +0 -29
- package/examples/MathService/methods/Sum.ts +0 -16
- package/examples/MathService/methods/SumStream.ts +0 -18
- package/examples/MathService/service.json +0 -64
- package/examples/MathService/service.ts +0 -18
- package/examples/SimpleCache.ts +0 -21
- package/examples/misc/trace_1.png +0 -0
- package/examples/misc/trace_2.png +0 -0
- package/src/Client.ts +0 -239
- package/src/Method.ts +0 -7
- package/src/Root.ts +0 -71
- package/src/Service.ts +0 -423
- package/src/index.ts +0 -5
- package/src/injector.ts +0 -43
- package/src/interfaces.ts +0 -92
|
@@ -1,18 +1,30 @@
|
|
|
1
1
|
name: Publish Package to npmjs
|
|
2
2
|
on:
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
push:
|
|
4
|
+
branches: [ main ]
|
|
5
|
+
env:
|
|
6
|
+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
7
|
+
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
5
8
|
jobs:
|
|
6
9
|
build:
|
|
7
10
|
runs-on: ubuntu-latest
|
|
11
|
+
strategy:
|
|
12
|
+
matrix:
|
|
13
|
+
node-version: [ 18.x ]
|
|
14
|
+
|
|
8
15
|
steps:
|
|
9
16
|
- uses: actions/checkout@v3
|
|
10
17
|
- uses: actions/setup-node@v3
|
|
11
18
|
with:
|
|
12
|
-
node-version:
|
|
19
|
+
node-version: ${{ matrix.node-version }}
|
|
20
|
+
cache: 'npm'
|
|
13
21
|
registry-url: 'https://registry.npmjs.org'
|
|
14
22
|
- run: npm i
|
|
15
23
|
- run: npm run build
|
|
16
|
-
- run:
|
|
24
|
+
- run: npx semantic-release
|
|
17
25
|
env:
|
|
26
|
+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
27
|
+
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
18
28
|
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
29
|
+
|
|
30
|
+
|
package/.releaserc
ADDED
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# 1.0.0 (2022-12-05)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* remove eslint jest rules ([37cd3dc](https://github.com/lad-tech/nsc-toolkit/commit/37cd3dc15a3912b0080b2b99d774421e2db7f40e))
|
|
7
|
+
* transfer logger formatter ([6722a21](https://github.com/lad-tech/nsc-toolkit/commit/6722a21320a7984537813833002b713e6036bfaa))
|
|
8
|
+
* version up ([927db66](https://github.com/lad-tech/nsc-toolkit/commit/927db66bb70e4db92aa18f656143f2a619c5dc6d))
|
|
9
|
+
* version up ([d3fb4e0](https://github.com/lad-tech/nsc-toolkit/commit/d3fb4e0904a28639756e71c00058a6a04d1660a1))
|
|
10
|
+
* version up ([53be760](https://github.com/lad-tech/nsc-toolkit/commit/53be760f06c26f9fb418486aa75f6d145d98e089))
|
|
11
|
+
* исправлен пайплайн ci ([068c306](https://github.com/lad-tech/nsc-toolkit/commit/068c30636324f29ddcf68044ac9b8927c7f4fee3))
|
|
12
|
+
* Исправлен тип метода handler класса Method [#3](https://github.com/lad-tech/nsc-toolkit/issues/3) ([b577644](https://github.com/lad-tech/nsc-toolkit/commit/b577644dfb5afc7f7d404e38d87956bf40033779))
|
|
13
|
+
* Исправлена работа с кешем ([4a2d9fd](https://github.com/lad-tech/nsc-toolkit/commit/4a2d9fdadf2cf95590c2474e192c611f55e32926))
|
|
14
|
+
* Исправленна передача форматтера логов ([d23fb2f](https://github.com/lad-tech/nsc-toolkit/commit/d23fb2fdc29a5876796961f486e961271bbed0c5))
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### Features
|
|
18
|
+
|
|
19
|
+
* build lib ([522e2c7](https://github.com/lad-tech/nsc-toolkit/commit/522e2c736d4a6f4799ef84ec4fea86abcbbe15e6))
|
|
20
|
+
* В клиенте используется форматтер логов из сервиса ([3bf51fe](https://github.com/lad-tech/nsc-toolkit/commit/3bf51fe2115136cd8f7cac630a81f273fde02d19))
|
|
21
|
+
* Добавлен semantic-release ([80f64b9](https://github.com/lad-tech/nsc-toolkit/commit/80f64b929cdaa660d4cee555acb7eefc12e91c0c))
|
|
22
|
+
* Добавлена возможность добавить свой форматтер для логов [#5](https://github.com/lad-tech/nsc-toolkit/issues/5) ([f81427f](https://github.com/lad-tech/nsc-toolkit/commit/f81427fa0edcbc7624adc8bde81c554341d807aa))
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
module.exports = {
|
|
2
|
+
extends: ['@commitlint/config-conventional'],
|
|
3
|
+
rules: {
|
|
4
|
+
'header-max-length': [1, 'always', 120],
|
|
5
|
+
'type-enum': [
|
|
6
|
+
1,
|
|
7
|
+
'always',
|
|
8
|
+
['docs', 'style', 'ci', 'debug', 'refactor', 'perf', 'fix', 'test', 'chore', 'build', 'revert', 'feat'],
|
|
9
|
+
],
|
|
10
|
+
// tslint:disable-next-line:object-literal-sort-keys
|
|
11
|
+
'type-case': [1, 'always', 'lower-case'],
|
|
12
|
+
'type-empty': [1, 'never'],
|
|
13
|
+
'subject-case': [0, 'always', 'lower-case'],
|
|
14
|
+
'scope-case': [1, 'always', 'lower-case'],
|
|
15
|
+
'body-leading-blank': [1, 'always'],
|
|
16
|
+
'footer-leading-blank': [1, 'always'],
|
|
17
|
+
},
|
|
18
|
+
};
|
|
19
|
+
|
package/dist/Root.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Root = void 0;
|
|
4
|
-
const opentelemetry = require("@opentelemetry/api");
|
|
5
4
|
const toolbelt_1 = require("@lad-tech/toolbelt");
|
|
5
|
+
const opentelemetry = require("@opentelemetry/api");
|
|
6
6
|
class Root {
|
|
7
7
|
constructor(brocker, outputFormatter) {
|
|
8
8
|
this.brocker = brocker;
|
package/dist/Root.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Root.js","sourceRoot":"","sources":["../src/Root.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"Root.js","sourceRoot":"","sources":["../src/Root.ts"],"names":[],"mappings":";;;AAAA,iDAA0C;AAC1C,oDAAoD;AAIpD,MAAa,IAAI;IAKf,YAAsB,OAAuB,EAAE,eAAsC;QAA/D,YAAO,GAAP,OAAO,CAAgB;QAJnC,0CAAqC,GAAG,mBAAmB,CAAC;QAC5D,sBAAiB,GAAG,OAAO,CAAC;QAIpC,IAAI,CAAC,MAAM,GAAG,IAAI,eAAI,CAAC,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC;IACrD,CAAC;IAES,YAAY,CAAC,KAAc;QACnC,MAAM,MAAM,GAAG,CAAC,KAAM,CAAC;QACvB,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE;YACjB,MAAM,IAAI,KAAK,CAAC,gCAAgC,KAAK,UAAU,CAAC,CAAC;SAClE;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAES,iBAAiB,CAAC,IAAY,EAAE,QAAQ,GAAG,IAAI;QACvD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,KAAK,IAAI,QAAQ,EAAE;YACtB,MAAM,IAAI,KAAK,CAAC,0CAA0C,IAAI,EAAE,CAAC,CAAC;SACnE;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACO,UAAU,CAAC,OAAiB;QACpC,IAAI,OAAO,EAAE;YACX,OAAO,aAAa,CAAC,KAAK,CAAC,cAAc,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,OAAO,CAAC,CAAC;SACpF;IACH,CAAC;IAES,UAAU,CAAC,OAAgB,EAAE,UAAmB;QACxD,IAAI;YACF,IAAI,CAAC,OAAO,EAAE;gBACZ,MAAM,OAAO,GAAG,UAAU,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,yBAAyB,CAAC,CAAC,CAAC;gBACnG,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,GAAG,IAAI,CAAC;aACpC;YACD,OAAO,OAAO,CAAC;SAChB;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACjB;IACH,CAAC;IAES,iBAAiB,CAAC,KAAqB,EAAE,IAAa;QAC9D,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,IAAI,KAAK,YAAY,KAAK,EAAE;YAC1B,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;SACzB;aAAM;YACL,OAAO,GAAG,KAAK,CAAC;SACjB;QACD,OAAO;YACL,OAAO,EAAE,IAAI;YACb,KAAK,EAAE;gBACL,OAAO;gBACP,IAAI;aACL;SACF,CAAC;IACJ,CAAC;CACF;AA9DD,oBA8DC"}
|
package/dist/types/Root.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Logs } from '@lad-tech/toolbelt';
|
|
2
2
|
import * as opentelemetry from '@opentelemetry/api';
|
|
3
3
|
import { NatsConnection } from 'nats';
|
|
4
|
-
import {
|
|
4
|
+
import { Baggage } from './interfaces';
|
|
5
5
|
export declare class Root {
|
|
6
6
|
protected brocker: NatsConnection;
|
|
7
7
|
protected SERVICE_SUBJECT_FOR_GET_HTTP_SETTINGS: string;
|
package/lefthook.yml
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
pre-commit:
|
|
2
|
+
parallel: true
|
|
3
|
+
commands:
|
|
4
|
+
eslint:
|
|
5
|
+
glob: "*.{js,ts,jsx,tsx}"
|
|
6
|
+
run: npx eslint --fix {staged_files}
|
|
7
|
+
types:
|
|
8
|
+
glob: "*.{ts, tsx}"
|
|
9
|
+
run: npx tsc --noEmit {staged_files}
|
|
10
|
+
commit-msg:
|
|
11
|
+
parallel: true
|
|
12
|
+
commands:
|
|
13
|
+
commitlint:
|
|
14
|
+
run: npx commitlint --edit
|
|
15
|
+
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lad-tech/nsc-toolkit",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "1.0.0",
|
|
4
4
|
"description": "Toolkit for create microservices around NATS",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "./dist/types/index.d.ts",
|
|
@@ -14,6 +14,10 @@
|
|
|
14
14
|
"devDependencies": {
|
|
15
15
|
"@types/node": "^17.0.42",
|
|
16
16
|
"@typescript-eslint/eslint-plugin": "^5.43.0",
|
|
17
|
+
"@semantic-release/changelog": "^6.0.2",
|
|
18
|
+
"@semantic-release/npm": "^9.0.1",
|
|
19
|
+
"@commitlint/cli": "^17.2.0",
|
|
20
|
+
"@commitlint/config-conventional": "^17.2.0",
|
|
17
21
|
"eslint": "^7.32.0",
|
|
18
22
|
"eslint-config-airbnb-base": "^15.0.0",
|
|
19
23
|
"eslint-config-prettier": "^8.5.0",
|
|
@@ -24,6 +28,8 @@
|
|
|
24
28
|
"prettier": "^2.6.1",
|
|
25
29
|
"prettier-eslint": "^13.0.0",
|
|
26
30
|
"ts-jest": "^27.1.4",
|
|
31
|
+
"lefthook": "^1.2.0",
|
|
32
|
+
"semantic-release": "^19.0.5",
|
|
27
33
|
"typescript": "^4.6.3"
|
|
28
34
|
},
|
|
29
35
|
"dependencies": {
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import { connect } from 'nats';
|
|
2
|
-
import LogicService, { WeirdSumRequest } from '../LogicService';
|
|
3
|
-
import { Service } from '../../src/Service';
|
|
4
|
-
import { SimpleCache } from '../SimpleCache';
|
|
5
|
-
import { Logs } from '@lad-tech/toolbelt';
|
|
6
|
-
import Fastify from 'fastify';
|
|
7
|
-
import { Baggage, ExternalBaggage } from '../../src/interfaces';
|
|
8
|
-
|
|
9
|
-
declare module 'fastify' {
|
|
10
|
-
interface FastifyRequest {
|
|
11
|
-
baggage: Baggage;
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
const HTTP_SERVICE_PORT = 8000;
|
|
16
|
-
const logger = new Logs.Logger({ location: 'HttpGate' });
|
|
17
|
-
|
|
18
|
-
const upHttpGate = async (service: Service) => {
|
|
19
|
-
const fastify = Fastify();
|
|
20
|
-
|
|
21
|
-
fastify.decorateRequest('baggage', null);
|
|
22
|
-
|
|
23
|
-
fastify.addHook<{ Headers: ExternalBaggage }>('preHandler', (request, reply, done) => {
|
|
24
|
-
request.baggage = service.getRootBaggage(request.routerPath, request.headers);
|
|
25
|
-
reply.header('trace-id', request.baggage.traceId);
|
|
26
|
-
done();
|
|
27
|
-
});
|
|
28
|
-
|
|
29
|
-
fastify.addHook<{ Headers: ExternalBaggage }>('onResponse', (request, reply, done) => {
|
|
30
|
-
service.endRootSpan(request.baggage.traceId);
|
|
31
|
-
done();
|
|
32
|
-
});
|
|
33
|
-
|
|
34
|
-
fastify.post<{ Body: WeirdSumRequest }>('/math/weird/sum', async request => {
|
|
35
|
-
return await service.buildService(LogicService, request.baggage).weirdSum(request.body);
|
|
36
|
-
});
|
|
37
|
-
|
|
38
|
-
await fastify.listen({ port: HTTP_SERVICE_PORT });
|
|
39
|
-
};
|
|
40
|
-
|
|
41
|
-
const start = async () => {
|
|
42
|
-
try {
|
|
43
|
-
const brokerConnection = await connect({ servers: ['localhost:4222'] });
|
|
44
|
-
const service = new Service({
|
|
45
|
-
brokerConnection,
|
|
46
|
-
name: 'HttpGate',
|
|
47
|
-
methods: [],
|
|
48
|
-
events: [],
|
|
49
|
-
cache: { service: new SimpleCache(), timeout: 100 },
|
|
50
|
-
});
|
|
51
|
-
|
|
52
|
-
await service.start();
|
|
53
|
-
await upHttpGate(service);
|
|
54
|
-
logger.info('Http server start on port:', HTTP_SERVICE_PORT);
|
|
55
|
-
} catch (error) {
|
|
56
|
-
logger.error(error);
|
|
57
|
-
process.exit(1);
|
|
58
|
-
}
|
|
59
|
-
};
|
|
60
|
-
|
|
61
|
-
start();
|