@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.
@@ -1,18 +1,30 @@
1
1
  name: Publish Package to npmjs
2
2
  on:
3
- release:
4
- types: [ published ]
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: '16.x'
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: npm publish --access public
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
@@ -0,0 +1,12 @@
1
+ branches:
2
+ - main
3
+
4
+ debug: true
5
+ ci: true
6
+ dryRun: false
7
+ plugins:
8
+ - "@semantic-release/commit-analyzer"
9
+ - "@semantic-release/changelog"
10
+ - "@semantic-release/release-notes-generator"
11
+ - "@semantic-release/github"
12
+ - "@semantic-release/npm"
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":";;;AACA,oDAAoD;AAEpD,iDAA0C;AAE1C,MAAa,IAAI;IAKf,YACY,OAAuB,EACjC,eAAsC;QAD5B,YAAO,GAAP,OAAO,CAAgB;QALzB,0CAAqC,GAAG,mBAAmB,CAAC;QAC5D,sBAAiB,GAAG,OAAO,CAAC;QAOpC,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;AAjED,oBAiEC"}
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"}
@@ -1,7 +1,7 @@
1
- import { Baggage } from './interfaces';
1
+ import { Logs } from '@lad-tech/toolbelt';
2
2
  import * as opentelemetry from '@opentelemetry/api';
3
3
  import { NatsConnection } from 'nats';
4
- import { Logs } from '@lad-tech/toolbelt';
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.7.1",
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();