@tramvai/module-micro-sentry 3.24.1

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/README.md ADDED
@@ -0,0 +1,66 @@
1
+ # Micro-sentry
2
+
3
+ Integration with [micro-sentry](https://github.com/taiga-family/micro-sentry).
4
+
5
+ ## Installation
6
+
7
+ You need to install `@tramvai/module-micro-sentry`:
8
+
9
+ ```bash
10
+ yarn add @tramvai/module-micro-sentry
11
+ ```
12
+
13
+ And connect to the project: `TramvaiMicroSentryModule`:
14
+
15
+ ```tsx
16
+ import { TramvaiMicroSentryModule } from '@tramvai/module-micro-sentry';
17
+
18
+ createApp({
19
+ modules: [TramvaiMicroSentryModule],
20
+ });
21
+ ```
22
+
23
+ And make sure to add `SENTRY_DSN` environment on deployed stands. Otherwise module will not work.
24
+
25
+ ## Explanation
26
+
27
+ ### Environment variables
28
+
29
+ Required:
30
+
31
+ - `SENTRY_DSN` - [DSN](https://docs.sentry.io/product/sentry-basics/dsn-explainer/) of the app
32
+
33
+ ## How to
34
+
35
+ ### Send custom error
36
+
37
+ ```tsx
38
+ import { declareAction } from '@tramvai/core';
39
+ import { SENTRY_TOKEN } from '@tramvai/module-micro-sentry';
40
+ import { loadUsers } from './users';
41
+
42
+ export default declareAction({
43
+ name: 'loadUsers',
44
+ async fn() {
45
+ try {
46
+ await loadUsers();
47
+ } catch (e) {
48
+ microSentryClient.report(e);
49
+ throw e;
50
+ }
51
+ },
52
+ deps: {
53
+ microSentryClient: MICRO_SENTRY_INSTANCE_TOKEN,
54
+ },
55
+ });
56
+ ```
57
+
58
+ ## Exported tokens
59
+
60
+ #### `MICRO_SENTRY_INSTANCE_TOKEN`
61
+
62
+ Ready to use instance of micro-sentry
63
+
64
+ ### `MICRO_SENTRY_OPTIONS_TOKEN`
65
+
66
+ Configuration options for micro-sentry
@@ -0,0 +1,5 @@
1
+ export * from './tokens';
2
+ export declare const TramvaiMicroSentryModule: import("@tinkoff/dippy/lib/modules/module.h").ModuleClass & Partial<import("@tinkoff/dippy/lib/modules/module.h").ModuleSecretParameters> & {
3
+ [x: string]: (...args: any[]) => import("@tramvai/core").ModuleType;
4
+ };
5
+ //# sourceMappingURL=browser.d.ts.map
package/lib/browser.js ADDED
@@ -0,0 +1,28 @@
1
+ import { declareModule, provide } from '@tramvai/core';
2
+ import { ENV_MANAGER_TOKEN } from '@tramvai/module-common';
3
+ import { sharedProviders } from './providers.browser.js';
4
+ import { MICRO_SENTRY_OPTIONS_TOKEN } from './tokens.browser.js';
5
+ export { MICRO_SENTRY_INSTANCE_TOKEN, MICRO_SENTRY_OPTIONS_TOKEN } from './tokens.browser.js';
6
+
7
+ const TramvaiMicroSentryModule = declareModule({
8
+ name: 'TramvaiMicroSentryModule',
9
+ providers: [
10
+ provide({
11
+ provide: MICRO_SENTRY_OPTIONS_TOKEN,
12
+ useFactory: ({ envManager }) => {
13
+ const defaultOptions = {
14
+ environment: process.env.NODE_ENV,
15
+ dsn: envManager.get('SENTRY_DSN'),
16
+ };
17
+ return defaultOptions;
18
+ },
19
+ deps: {
20
+ envManager: ENV_MANAGER_TOKEN,
21
+ },
22
+ }),
23
+ ...sharedProviders,
24
+ ],
25
+ imports: [],
26
+ });
27
+
28
+ export { TramvaiMicroSentryModule };
@@ -0,0 +1,33 @@
1
+ import { provide, commandLineListTokens } from '@tramvai/core';
2
+ import { ENV_USED_TOKEN } from '@tramvai/module-common';
3
+ import { BrowserMicroSentryClient } from '@micro-sentry/browser';
4
+ import { MICRO_SENTRY_INSTANCE_TOKEN, MICRO_SENTRY_OPTIONS_TOKEN } from './tokens.browser.js';
5
+
6
+ const sharedProviders = [
7
+ provide({
8
+ provide: ENV_USED_TOKEN,
9
+ useValue: [{ key: 'SENTRY_DSN' }],
10
+ }),
11
+ provide({
12
+ provide: MICRO_SENTRY_INSTANCE_TOKEN,
13
+ useFactory: ({ microSentryOptions }) => {
14
+ return new BrowserMicroSentryClient(microSentryOptions);
15
+ },
16
+ deps: {
17
+ microSentryOptions: MICRO_SENTRY_OPTIONS_TOKEN,
18
+ },
19
+ }),
20
+ provide({
21
+ provide: commandLineListTokens.init,
22
+ useFactory: ({ microSentry }) => {
23
+ return function initMicroSentry() {
24
+ return microSentry;
25
+ };
26
+ },
27
+ deps: {
28
+ microSentry: MICRO_SENTRY_INSTANCE_TOKEN,
29
+ },
30
+ }),
31
+ ];
32
+
33
+ export { sharedProviders };
@@ -0,0 +1,3 @@
1
+ import { type Provider } from '@tramvai/core';
2
+ export declare const sharedProviders: Provider[];
3
+ //# sourceMappingURL=providers.d.ts.map
@@ -0,0 +1,5 @@
1
+ export * from './tokens';
2
+ export declare const TramvaiMicroSentryModule: import("@tinkoff/dippy/lib/modules/module.h").ModuleClass & Partial<import("@tinkoff/dippy/lib/modules/module.h").ModuleSecretParameters> & {
3
+ [x: string]: (...args: any[]) => import("@tramvai/core").ModuleType;
4
+ };
5
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1,21 @@
1
+ import { declareModule, provide } from '@tramvai/core';
2
+ import { MICRO_SENTRY_INSTANCE_TOKEN } from './tokens.es.js';
3
+ export { MICRO_SENTRY_INSTANCE_TOKEN, MICRO_SENTRY_OPTIONS_TOKEN } from './tokens.es.js';
4
+
5
+ const TramvaiMicroSentryModule = declareModule({
6
+ name: 'TramvaiMicroSentryModule',
7
+ imports: [],
8
+ providers: [
9
+ provide({
10
+ provide: MICRO_SENTRY_INSTANCE_TOKEN,
11
+ useFactory: () => {
12
+ if (process.env.NODE_ENV === 'development') {
13
+ console.warn('micro-sentry will work only in browser environment, and will not work in server environment. If you need error logging both on server and client, take a look on @tramvai/module-sentry package');
14
+ }
15
+ return null;
16
+ },
17
+ }),
18
+ ],
19
+ });
20
+
21
+ export { TramvaiMicroSentryModule };
package/lib/server.js ADDED
@@ -0,0 +1,26 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var core = require('@tramvai/core');
6
+ var tokens = require('./tokens.js');
7
+
8
+ const TramvaiMicroSentryModule = core.declareModule({
9
+ name: 'TramvaiMicroSentryModule',
10
+ imports: [],
11
+ providers: [
12
+ core.provide({
13
+ provide: tokens.MICRO_SENTRY_INSTANCE_TOKEN,
14
+ useFactory: () => {
15
+ if (process.env.NODE_ENV === 'development') {
16
+ console.warn('micro-sentry will work only in browser environment, and will not work in server environment. If you need error logging both on server and client, take a look on @tramvai/module-sentry package');
17
+ }
18
+ return null;
19
+ },
20
+ }),
21
+ ],
22
+ });
23
+
24
+ exports.MICRO_SENTRY_INSTANCE_TOKEN = tokens.MICRO_SENTRY_INSTANCE_TOKEN;
25
+ exports.MICRO_SENTRY_OPTIONS_TOKEN = tokens.MICRO_SENTRY_OPTIONS_TOKEN;
26
+ exports.TramvaiMicroSentryModule = TramvaiMicroSentryModule;
@@ -0,0 +1,6 @@
1
+ import { createToken } from '@tramvai/core';
2
+
3
+ const MICRO_SENTRY_INSTANCE_TOKEN = createToken('MICRO_SENTRY_INSTANCE_TOKEN');
4
+ const MICRO_SENTRY_OPTIONS_TOKEN = createToken('MICRO_SENTRY_OPTIONS_TOKEN');
5
+
6
+ export { MICRO_SENTRY_INSTANCE_TOKEN, MICRO_SENTRY_OPTIONS_TOKEN };
@@ -0,0 +1,8 @@
1
+ import type { BrowserSentryClientOptions, BrowserMicroSentryClient } from '@micro-sentry/browser';
2
+ export declare const MICRO_SENTRY_INSTANCE_TOKEN: (BrowserMicroSentryClient & {
3
+ __type?: "base token" | undefined;
4
+ }) | null;
5
+ export declare const MICRO_SENTRY_OPTIONS_TOKEN: BrowserSentryClientOptions & {
6
+ __type?: "base token" | undefined;
7
+ };
8
+ //# sourceMappingURL=tokens.d.ts.map
@@ -0,0 +1,6 @@
1
+ import { createToken } from '@tramvai/core';
2
+
3
+ const MICRO_SENTRY_INSTANCE_TOKEN = createToken('MICRO_SENTRY_INSTANCE_TOKEN');
4
+ const MICRO_SENTRY_OPTIONS_TOKEN = createToken('MICRO_SENTRY_OPTIONS_TOKEN');
5
+
6
+ export { MICRO_SENTRY_INSTANCE_TOKEN, MICRO_SENTRY_OPTIONS_TOKEN };
package/lib/tokens.js ADDED
@@ -0,0 +1,11 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var core = require('@tramvai/core');
6
+
7
+ const MICRO_SENTRY_INSTANCE_TOKEN = core.createToken('MICRO_SENTRY_INSTANCE_TOKEN');
8
+ const MICRO_SENTRY_OPTIONS_TOKEN = core.createToken('MICRO_SENTRY_OPTIONS_TOKEN');
9
+
10
+ exports.MICRO_SENTRY_INSTANCE_TOKEN = MICRO_SENTRY_INSTANCE_TOKEN;
11
+ exports.MICRO_SENTRY_OPTIONS_TOKEN = MICRO_SENTRY_OPTIONS_TOKEN;
package/package.json ADDED
@@ -0,0 +1,29 @@
1
+ {
2
+ "name": "@tramvai/module-micro-sentry",
3
+ "version": "3.24.1",
4
+ "description": "Micro-sentry module",
5
+ "browser": "lib/browser.js",
6
+ "main": "lib/server.js",
7
+ "typings": "lib/server.d.ts",
8
+ "license": "Apache-2.0",
9
+ "files": [
10
+ "lib"
11
+ ],
12
+ "sideEffects": false,
13
+ "repository": {
14
+ "type": "git",
15
+ "url": "git@github.com:Tinkoff/tramvai.git"
16
+ },
17
+ "scripts": {
18
+ "build": "tramvai-build --forPublish --preserveModules",
19
+ "watch": "tsc -w"
20
+ },
21
+ "dependencies": {
22
+ "@micro-sentry/browser": "^7.0.1"
23
+ },
24
+ "peerDependencies": {
25
+ "@tramvai/core": "3.24.1",
26
+ "@tramvai/module-common": "3.24.1"
27
+ },
28
+ "module": "lib/server.es.js"
29
+ }