rian 0.2.1 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,110 +1 @@
1
- // src/exporter.otel.http.ts
2
- const { name:rian_name, version:rian_version } = require('rian/package.json');
3
- var SpanStatusCode_UNSET = 0;
4
- var SpanStatusCode_ERROR = 2;
5
- var convert_value_to_anyvalue = (value) => {
6
- let type = typeof value, any_value = {};
7
- if (type === "string")
8
- any_value.stringValue = value;
9
- else if (type === "number")
10
- if (Number.isInteger(value))
11
- any_value.intValue = value;
12
- else
13
- any_value.doubleValue = value;
14
- else if (type === "boolean")
15
- any_value.boolValue = value;
16
- else if (Array.isArray(value))
17
- any_value.arrayValue = {
18
- values: value.map((i) => convert_value_to_anyvalue(i))
19
- };
20
- else if (value)
21
- any_value.kvlistValue = { values: convert_object_to_kv(value) };
22
- return any_value;
23
- };
24
- var convert_object_to_kv = (input) => {
25
- const value = [];
26
- for (let key of Object.keys(input)) {
27
- value.push({
28
- key,
29
- value: convert_value_to_anyvalue(input[key])
30
- });
31
- }
32
- return value;
33
- };
34
- var map_kind = (kind) => {
35
- switch (kind) {
36
- default:
37
- case "INTERNAL": {
38
- return 1;
39
- }
40
- case "SERVER": {
41
- return 2;
42
- }
43
- case "CLIENT": {
44
- return 3;
45
- }
46
- case "PRODUCER": {
47
- return 4;
48
- }
49
- case "CONSUMER": {
50
- return 5;
51
- }
52
- }
53
- };
54
- var exporter = (request) => (spans, context) => {
55
- const otel_spans = [];
56
- for (let span of spans) {
57
- const { kind, error, ...span_ctx } = span.context;
58
- let status;
59
- if (error) {
60
- status = {
61
- code: SpanStatusCode_ERROR
62
- };
63
- if ("message" in error) {
64
- status.message = error.message;
65
- }
66
- }
67
- otel_spans.push({
68
- traceId: span.id.trace_id,
69
- spanId: span.id.parent_id,
70
- parentSpanId: span.parent?.parent_id,
71
- name: span.name,
72
- kind: map_kind(kind || "INTERNAL"),
73
- startTimeUnixNano: span.start * 1e6,
74
- endTimeUnixNano: span.end ? span.end * 1e6 : void 0,
75
- droppedAttributesCount: 0,
76
- droppedEventsCount: 0,
77
- droppedLinksCount: 0,
78
- attributes: convert_object_to_kv(span_ctx),
79
- status: status || { code: SpanStatusCode_UNSET },
80
- events: span.events.map((i) => ({
81
- name: i.name,
82
- attributes: convert_object_to_kv(i.attributes),
83
- droppedAttributesCount: 0,
84
- timeUnixNano: i.timestamp * 1e6
85
- }))
86
- });
87
- }
88
- return request({
89
- resourceSpans: [
90
- {
91
- resource: {
92
- attributes: convert_object_to_kv(context),
93
- droppedAttributesCount: 0
94
- },
95
- instrumentationLibrarySpans: [
96
- {
97
- instrumentationLibrary: {
98
- name: rian_name,
99
- version: rian_version
100
- },
101
- spans: otel_spans
102
- }
103
- ]
104
- }
105
- ]
106
- });
107
- };
108
-
109
-
110
- exports.exporter = exporter;
1
+ const { name:e, version:t } = require('rian/package.json');var r=e=>{let t=typeof e,n={};return"string"===t?n.stringValue=e:"number"===t?Number.isInteger(e)?n.intValue=e:n.doubleValue=e:"boolean"===t?n.boolValue=e:Array.isArray(e)?n.arrayValue={values:e.map((e=>r(e)))}:e&&(n.kvlistValue={values:a(e)}),n},a=e=>{let t=[];for(let a of Object.keys(e))t.push({key:a,value:r(e[a])});return t},n=e=>{switch(e){default:case"INTERNAL":return 1;case"SERVER":return 2;case"CLIENT":return 3;case"PRODUCER":return 4;case"CONSUMER":return 5}},s=r=>(s,i)=>{let u=[];for(let e of s){let t,{kind:r,error:s,...i}=e.context;s&&(t={code:2},"message"in s&&(t.message=s.message)),u.push({traceId:e.id.trace_id,spanId:e.id.parent_id,parentSpanId:e.parent?.parent_id,name:e.name,kind:n(r||"INTERNAL"),startTimeUnixNano:1e6*e.start,endTimeUnixNano:e.end?1e6*e.end:void 0,droppedAttributesCount:0,droppedEventsCount:0,droppedLinksCount:0,attributes:a(i),status:t||{code:0},events:e.events.map((e=>({name:e.name,attributes:a(e.attributes),droppedAttributesCount:0,timeUnixNano:1e6*e.timestamp})))})}return r({resourceSpans:[{resource:{attributes:a(i),droppedAttributesCount:0},instrumentationLibrarySpans:[{instrumentationLibrary:{name:e,version:t},spans:u}]}]})};exports.exporter=s;
@@ -1,110 +1 @@
1
- // src/exporter.otel.http.ts
2
- import { name as rian_name, version as rian_version } from "rian/package.json";
3
- var SpanStatusCode_UNSET = 0;
4
- var SpanStatusCode_ERROR = 2;
5
- var convert_value_to_anyvalue = (value) => {
6
- let type = typeof value, any_value = {};
7
- if (type === "string")
8
- any_value.stringValue = value;
9
- else if (type === "number")
10
- if (Number.isInteger(value))
11
- any_value.intValue = value;
12
- else
13
- any_value.doubleValue = value;
14
- else if (type === "boolean")
15
- any_value.boolValue = value;
16
- else if (Array.isArray(value))
17
- any_value.arrayValue = {
18
- values: value.map((i) => convert_value_to_anyvalue(i))
19
- };
20
- else if (value)
21
- any_value.kvlistValue = { values: convert_object_to_kv(value) };
22
- return any_value;
23
- };
24
- var convert_object_to_kv = (input) => {
25
- const value = [];
26
- for (let key of Object.keys(input)) {
27
- value.push({
28
- key,
29
- value: convert_value_to_anyvalue(input[key])
30
- });
31
- }
32
- return value;
33
- };
34
- var map_kind = (kind) => {
35
- switch (kind) {
36
- default:
37
- case "INTERNAL": {
38
- return 1;
39
- }
40
- case "SERVER": {
41
- return 2;
42
- }
43
- case "CLIENT": {
44
- return 3;
45
- }
46
- case "PRODUCER": {
47
- return 4;
48
- }
49
- case "CONSUMER": {
50
- return 5;
51
- }
52
- }
53
- };
54
- var exporter = (request) => (spans, context) => {
55
- const otel_spans = [];
56
- for (let span of spans) {
57
- const { kind, error, ...span_ctx } = span.context;
58
- let status;
59
- if (error) {
60
- status = {
61
- code: SpanStatusCode_ERROR
62
- };
63
- if ("message" in error) {
64
- status.message = error.message;
65
- }
66
- }
67
- otel_spans.push({
68
- traceId: span.id.trace_id,
69
- spanId: span.id.parent_id,
70
- parentSpanId: span.parent?.parent_id,
71
- name: span.name,
72
- kind: map_kind(kind || "INTERNAL"),
73
- startTimeUnixNano: span.start * 1e6,
74
- endTimeUnixNano: span.end ? span.end * 1e6 : void 0,
75
- droppedAttributesCount: 0,
76
- droppedEventsCount: 0,
77
- droppedLinksCount: 0,
78
- attributes: convert_object_to_kv(span_ctx),
79
- status: status || { code: SpanStatusCode_UNSET },
80
- events: span.events.map((i) => ({
81
- name: i.name,
82
- attributes: convert_object_to_kv(i.attributes),
83
- droppedAttributesCount: 0,
84
- timeUnixNano: i.timestamp * 1e6
85
- }))
86
- });
87
- }
88
- return request({
89
- resourceSpans: [
90
- {
91
- resource: {
92
- attributes: convert_object_to_kv(context),
93
- droppedAttributesCount: 0
94
- },
95
- instrumentationLibrarySpans: [
96
- {
97
- instrumentationLibrary: {
98
- name: rian_name,
99
- version: rian_version
100
- },
101
- spans: otel_spans
102
- }
103
- ]
104
- }
105
- ]
106
- });
107
- };
108
- export {
109
- exporter
110
- };
1
+ import{name as e,version as t}from"rian/package.json";var r=e=>{let t=typeof e,n={};return"string"===t?n.stringValue=e:"number"===t?Number.isInteger(e)?n.intValue=e:n.doubleValue=e:"boolean"===t?n.boolValue=e:Array.isArray(e)?n.arrayValue={values:e.map((e=>r(e)))}:e&&(n.kvlistValue={values:a(e)}),n},a=e=>{let t=[];for(let a of Object.keys(e))t.push({key:a,value:r(e[a])});return t},n=e=>{switch(e){default:case"INTERNAL":return 1;case"SERVER":return 2;case"CLIENT":return 3;case"PRODUCER":return 4;case"CONSUMER":return 5}},s=r=>(s,i)=>{let u=[];for(let e of s){let t,{kind:r,error:s,...i}=e.context;s&&(t={code:2},"message"in s&&(t.message=s.message)),u.push({traceId:e.id.trace_id,spanId:e.id.parent_id,parentSpanId:e.parent?.parent_id,name:e.name,kind:n(r||"INTERNAL"),startTimeUnixNano:1e6*e.start,endTimeUnixNano:e.end?1e6*e.end:void 0,droppedAttributesCount:0,droppedEventsCount:0,droppedLinksCount:0,attributes:a(i),status:t||{code:0},events:e.events.map((e=>({name:e.name,attributes:a(e.attributes),droppedAttributesCount:0,timeUnixNano:1e6*e.timestamp})))})}return r({resourceSpans:[{resource:{attributes:a(i),droppedAttributesCount:0},instrumentationLibrarySpans:[{instrumentationLibrary:{name:e,version:t},spans:u}]}]})};export{s as exporter};
@@ -1,43 +1 @@
1
- // src/exporter.zipkin.ts
2
- const { flattie } = require('flattie');
3
- var exporter = (request) => (spans, context) => {
4
- const zipkin = [];
5
- for (let span of spans) {
6
- const { kind, error, ...span_ctx } = span.context;
7
- if (error) {
8
- if ("message" in error) {
9
- span_ctx.error = {
10
- name: error.name,
11
- message: error.message,
12
- stack: error.stack
13
- };
14
- } else {
15
- span_ctx.error = true;
16
- }
17
- }
18
- zipkin.push({
19
- id: span.id.parent_id,
20
- traceId: span.id.trace_id,
21
- parentId: span.parent ? span.parent.parent_id : void 0,
22
- name: span.name,
23
- kind: kind === "INTERNAL" ? void 0 : kind,
24
- timestamp: span.start * 1e3,
25
- duration: span.end ? (span.end - span.start) * 1e3 : void 0,
26
- localEndpoint: context.localEndpoint || {
27
- serviceName: span_ctx["service.name"]
28
- },
29
- tags: flattie({
30
- ...context,
31
- ...span_ctx
32
- }, ".", true),
33
- annotations: span.events.map((i) => ({
34
- value: `${i.name} :: ${JSON.stringify(i.attributes)}`,
35
- timestamp: i.timestamp * 1e3
36
- }))
37
- });
38
- }
39
- return request(zipkin);
40
- };
41
-
42
-
43
- exports.exporter = exporter;
1
+ const { flattie:e } = require('flattie');var t=t=>(a,n)=>{let r=[];for(let t of a){let{kind:a,error:i,...s}=t.context;i&&(s.error=!("message"in i)||{name:i.name,message:i.message,stack:i.stack}),r.push({id:t.id.parent_id,traceId:t.id.trace_id,parentId:t.parent?t.parent.parent_id:void 0,name:t.name,kind:"INTERNAL"===a?void 0:a,timestamp:1e3*t.start,duration:t.end?1e3*(t.end-t.start):void 0,localEndpoint:n.localEndpoint||{serviceName:s["service.name"]},tags:e({...n,...s},".",!0),annotations:t.events.map((e=>({value:`${e.name} :: ${JSON.stringify(e.attributes)}`,timestamp:1e3*e.timestamp})))})}return t(r)};exports.exporter=t;
@@ -1,43 +1 @@
1
- // src/exporter.zipkin.ts
2
- import { flattie } from "flattie";
3
- var exporter = (request) => (spans, context) => {
4
- const zipkin = [];
5
- for (let span of spans) {
6
- const { kind, error, ...span_ctx } = span.context;
7
- if (error) {
8
- if ("message" in error) {
9
- span_ctx.error = {
10
- name: error.name,
11
- message: error.message,
12
- stack: error.stack
13
- };
14
- } else {
15
- span_ctx.error = true;
16
- }
17
- }
18
- zipkin.push({
19
- id: span.id.parent_id,
20
- traceId: span.id.trace_id,
21
- parentId: span.parent ? span.parent.parent_id : void 0,
22
- name: span.name,
23
- kind: kind === "INTERNAL" ? void 0 : kind,
24
- timestamp: span.start * 1e3,
25
- duration: span.end ? (span.end - span.start) * 1e3 : void 0,
26
- localEndpoint: context.localEndpoint || {
27
- serviceName: span_ctx["service.name"]
28
- },
29
- tags: flattie({
30
- ...context,
31
- ...span_ctx
32
- }, ".", true),
33
- annotations: span.events.map((i) => ({
34
- value: `${i.name} :: ${JSON.stringify(i.attributes)}`,
35
- timestamp: i.timestamp * 1e3
36
- }))
37
- });
38
- }
39
- return request(zipkin);
40
- };
41
- export {
42
- exporter
43
- };
1
+ import{flattie as e}from"flattie";var t=t=>(a,n)=>{let r=[];for(let t of a){let{kind:a,error:i,...s}=t.context;i&&(s.error=!("message"in i)||{name:i.name,message:i.message,stack:i.stack}),r.push({id:t.id.parent_id,traceId:t.id.trace_id,parentId:t.parent?t.parent.parent_id:void 0,name:t.name,kind:"INTERNAL"===a?void 0:a,timestamp:1e3*t.start,duration:t.end?1e3*(t.end-t.start):void 0,localEndpoint:n.localEndpoint||{serviceName:s["service.name"]},tags:e({...n,...s},".",!0),annotations:t.events.map((e=>({value:`${e.name} :: ${JSON.stringify(e.attributes)}`,timestamp:1e3*e.timestamp})))})}return t(r)};export{t as exporter};
package/index.js CHANGED
@@ -1,76 +1 @@
1
- // src/index.ts
2
- const { name:rian_name, version:rian_version } = require('rian/package.json');
3
- const tctx = require('tctx');
4
- const { measureFn } = require('rian/utils');
5
- var PROMISES = /* @__PURE__ */ new WeakMap();
6
- var ADD_PROMISE = (scope, promise) => {
7
- if (PROMISES.has(scope))
8
- PROMISES.get(scope).push(promise);
9
- else
10
- PROMISES.set(scope, [promise]);
11
- };
12
- var defaultSampler = (_name, parentId) => {
13
- if (!parentId)
14
- return true;
15
- return tctx.is_sampled(parentId);
16
- };
17
- var sdk_object = {
18
- "telemetry.sdk.name": rian_name,
19
- "telemetry.sdk.version": rian_version
20
- };
21
- var create = (name, options) => {
22
- const spans = /* @__PURE__ */ new Set();
23
- const sampler = options.sampler || defaultSampler;
24
- const sampler_callable = typeof sampler !== "boolean";
25
- const span = (name2, parent) => {
26
- const should_sample = sampler_callable ? sampler(name2, parent, options.context) : sampler;
27
- const id = parent ? parent.child(should_sample) : tctx.make(should_sample);
28
- const span_obj = {
29
- id,
30
- parent,
31
- start: Date.now(),
32
- name: name2,
33
- events: [],
34
- context: {}
35
- };
36
- if (should_sample)
37
- spans.add(span_obj);
38
- const $ = (cb) => measureFn($, cb);
39
- $.traceparent = id;
40
- $.fork = (name3) => span(name3, id);
41
- $.set_context = (ctx) => {
42
- if (typeof ctx === "function")
43
- return void (span_obj.context = ctx(span_obj.context));
44
- Object.assign(span_obj.context, ctx);
45
- };
46
- $.add_event = (name3, attributes) => {
47
- span_obj.events.push({
48
- name: name3,
49
- timestamp: Date.now(),
50
- attributes: attributes || {}
51
- });
52
- };
53
- $.end = () => {
54
- if (span_obj.end == null)
55
- span_obj.end = Date.now();
56
- };
57
- return $;
58
- };
59
- const root = span(name, typeof options.traceparent === "string" ? tctx.parse(options.traceparent) : void 0);
60
- const endRoot = root.end.bind(root);
61
- root.end = async () => {
62
- endRoot();
63
- if (PROMISES.has(root))
64
- await Promise.all(PROMISES.get(root));
65
- return options.exporter(spans, {
66
- ...options.context || {},
67
- ...sdk_object
68
- });
69
- };
70
- return root;
71
- };
72
-
73
-
74
- exports.ADD_PROMISE = ADD_PROMISE;
75
- exports.PROMISES = PROMISES;
76
- exports.create = create;
1
+ const e = require('tctx');const { measureFn:t } = require('rian/utils');var n=new WeakMap,a=(e,t)=>{n.has(e)?n.get(e).push(t):n.set(e,[t])},r=(t,n)=>!n||e.is_sampled(n),o={"telemetry.sdk.name":"rian","telemetry.sdk.version":"0.2.2"},s=(a,s)=>{let i=new Set,p=s.sampler||r,d="boolean"!=typeof p,c=(n,a)=>{let r=d?p(n,a,s.context):p,o=a?a.child(r):e.make(r),m={id:o,parent:a,start:Date.now(),name:n,events:[],context:{}};r&&i.add(m);let l=e=>t(l,e);return l.traceparent=o,l.fork=e=>c(e,o),l.set_context=e=>{"function"!=typeof e?Object.assign(m.context,e):m.context=e(m.context)},l.add_event=(e,t)=>{m.events.push({name:e,timestamp:Date.now(),attributes:t||{}})},l.end=()=>{null==m.end&&(m.end=Date.now())},l},m=c(a,"string"==typeof s.traceparent?e.parse(s.traceparent):void 0),l=m.end.bind(m);return m.end=async()=>(l(),n.has(m)&&await Promise.all(n.get(m)),s.exporter(i,{...s.context||{},...o})),m};exports.ADD_PROMISE=a;exports.PROMISES=n;exports.create=s;
package/index.mjs CHANGED
@@ -1,76 +1 @@
1
- // src/index.ts
2
- import { name as rian_name, version as rian_version } from "rian/package.json";
3
- import * as tctx from "tctx";
4
- import { measureFn } from "rian/utils";
5
- var PROMISES = /* @__PURE__ */ new WeakMap();
6
- var ADD_PROMISE = (scope, promise) => {
7
- if (PROMISES.has(scope))
8
- PROMISES.get(scope).push(promise);
9
- else
10
- PROMISES.set(scope, [promise]);
11
- };
12
- var defaultSampler = (_name, parentId) => {
13
- if (!parentId)
14
- return true;
15
- return tctx.is_sampled(parentId);
16
- };
17
- var sdk_object = {
18
- "telemetry.sdk.name": rian_name,
19
- "telemetry.sdk.version": rian_version
20
- };
21
- var create = (name, options) => {
22
- const spans = /* @__PURE__ */ new Set();
23
- const sampler = options.sampler || defaultSampler;
24
- const sampler_callable = typeof sampler !== "boolean";
25
- const span = (name2, parent) => {
26
- const should_sample = sampler_callable ? sampler(name2, parent, options.context) : sampler;
27
- const id = parent ? parent.child(should_sample) : tctx.make(should_sample);
28
- const span_obj = {
29
- id,
30
- parent,
31
- start: Date.now(),
32
- name: name2,
33
- events: [],
34
- context: {}
35
- };
36
- if (should_sample)
37
- spans.add(span_obj);
38
- const $ = (cb) => measureFn($, cb);
39
- $.traceparent = id;
40
- $.fork = (name3) => span(name3, id);
41
- $.set_context = (ctx) => {
42
- if (typeof ctx === "function")
43
- return void (span_obj.context = ctx(span_obj.context));
44
- Object.assign(span_obj.context, ctx);
45
- };
46
- $.add_event = (name3, attributes) => {
47
- span_obj.events.push({
48
- name: name3,
49
- timestamp: Date.now(),
50
- attributes: attributes || {}
51
- });
52
- };
53
- $.end = () => {
54
- if (span_obj.end == null)
55
- span_obj.end = Date.now();
56
- };
57
- return $;
58
- };
59
- const root = span(name, typeof options.traceparent === "string" ? tctx.parse(options.traceparent) : void 0);
60
- const endRoot = root.end.bind(root);
61
- root.end = async () => {
62
- endRoot();
63
- if (PROMISES.has(root))
64
- await Promise.all(PROMISES.get(root));
65
- return options.exporter(spans, {
66
- ...options.context || {},
67
- ...sdk_object
68
- });
69
- };
70
- return root;
71
- };
72
- export {
73
- ADD_PROMISE,
74
- PROMISES,
75
- create
76
- };
1
+ import*as e from"tctx";import{measureFn as t}from"rian/utils";var n=new WeakMap,a=(e,t)=>{n.has(e)?n.get(e).push(t):n.set(e,[t])},r=(t,n)=>!n||e.is_sampled(n),o={"telemetry.sdk.name":"rian","telemetry.sdk.version":"0.2.2"},s=(a,s)=>{let i=new Set,p=s.sampler||r,d="boolean"!=typeof p,c=(n,a)=>{let r=d?p(n,a,s.context):p,o=a?a.child(r):e.make(r),m={id:o,parent:a,start:Date.now(),name:n,events:[],context:{}};r&&i.add(m);let l=e=>t(l,e);return l.traceparent=o,l.fork=e=>c(e,o),l.set_context=e=>{"function"!=typeof e?Object.assign(m.context,e):m.context=e(m.context)},l.add_event=(e,t)=>{m.events.push({name:e,timestamp:Date.now(),attributes:t||{}})},l.end=()=>{null==m.end&&(m.end=Date.now())},l},m=c(a,"string"==typeof s.traceparent?e.parse(s.traceparent):void 0),l=m.end.bind(m);return m.end=async()=>(l(),n.has(m)&&await Promise.all(n.get(m)),s.exporter(i,{...s.context||{},...o})),m};export{a as ADD_PROMISE,n as PROMISES,s as create};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rian",
3
- "version": "0.2.1",
3
+ "version": "0.2.2",
4
4
  "description": "Effective tracing for the edge and origins",
5
5
  "keywords": [
6
6
  "opentelemetry",
@@ -58,7 +58,7 @@
58
58
  "utils/*"
59
59
  ],
60
60
  "scripts": {
61
- "build": "bundt"
61
+ "build": "bundt --minify"
62
62
  },
63
63
  "dependencies": {
64
64
  "flattie": "^1.1.0",
package/utils/index.js CHANGED
@@ -1,30 +1 @@
1
- // src/utils.ts
2
- const { ADD_PROMISE, PROMISES } = require('rian');
3
- var measureFn = (scope, fn, ...args) => {
4
- try {
5
- var r = fn(...args, scope), is_promise = r instanceof Promise;
6
- if (is_promise && !PROMISES.has(scope))
7
- ADD_PROMISE(scope, r.catch((e) => void scope.set_context({
8
- error: e
9
- })).finally(() => scope.end()));
10
- return r;
11
- } catch (e) {
12
- if (e instanceof Error)
13
- scope.set_context({
14
- error: e
15
- });
16
- throw e;
17
- } finally {
18
- if (is_promise !== true)
19
- scope.end();
20
- }
21
- };
22
- var measure = (scope, name, fn, ...args) => measureFn(scope.fork(name), fn, ...args);
23
- var wrap = (scope, name, fn) => function() {
24
- return measureFn(scope.fork(name), fn, ...arguments);
25
- };
26
-
27
-
28
- exports.measure = measure;
29
- exports.measureFn = measureFn;
30
- exports.wrap = wrap;
1
+ const { ADD_PROMISE:r, PROMISES:t } = require('rian');var n=(n,o,...e)=>{try{var a=o(...e,n),c=a instanceof Promise;return c&&!t.has(n)&&r(n,a.catch((r=>{n.set_context({error:r})})).finally((()=>n.end()))),a}catch(r){throw r instanceof Error&&n.set_context({error:r}),r}finally{!0!==c&&n.end()}},o=(r,t,o,...e)=>n(r.fork(t),o,...e),e=(r,t,o)=>function(){return n(r.fork(t),o,...arguments)};exports.measure=o;exports.measureFn=n;exports.wrap=e;
package/utils/index.mjs CHANGED
@@ -1,30 +1 @@
1
- // src/utils.ts
2
- import { ADD_PROMISE, PROMISES } from "rian";
3
- var measureFn = (scope, fn, ...args) => {
4
- try {
5
- var r = fn(...args, scope), is_promise = r instanceof Promise;
6
- if (is_promise && !PROMISES.has(scope))
7
- ADD_PROMISE(scope, r.catch((e) => void scope.set_context({
8
- error: e
9
- })).finally(() => scope.end()));
10
- return r;
11
- } catch (e) {
12
- if (e instanceof Error)
13
- scope.set_context({
14
- error: e
15
- });
16
- throw e;
17
- } finally {
18
- if (is_promise !== true)
19
- scope.end();
20
- }
21
- };
22
- var measure = (scope, name, fn, ...args) => measureFn(scope.fork(name), fn, ...args);
23
- var wrap = (scope, name, fn) => function() {
24
- return measureFn(scope.fork(name), fn, ...arguments);
25
- };
26
- export {
27
- measure,
28
- measureFn,
29
- wrap
30
- };
1
+ import{ADD_PROMISE as r,PROMISES as t}from"rian";var n=(n,o,...e)=>{try{var a=o(...e,n),c=a instanceof Promise;return c&&!t.has(n)&&r(n,a.catch((r=>{n.set_context({error:r})})).finally((()=>n.end()))),a}catch(r){throw r instanceof Error&&n.set_context({error:r}),r}finally{!0!==c&&n.end()}},o=(r,t,o,...e)=>n(r.fork(t),o,...e),e=(r,t,o)=>function(){return n(r.fork(t),o,...arguments)};export{o as measure,n as measureFn,e as wrap};