rian 0.0.2-alpha.1 → 0.0.2-alpha.10

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/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { Traceparent } from 'rian/tracecontext';
1
+ import { Traceparent } from 'tctx';
2
2
 
3
3
  declare type Span = {
4
4
  name: string;
@@ -6,15 +6,15 @@ declare type Span = {
6
6
  parent?: Traceparent;
7
7
  start: number;
8
8
  end: number;
9
- attributes: Attributes;
9
+ context: Context;
10
10
  };
11
11
  declare type Collector = (spans: ReadonlySet<Span>) => any;
12
- declare type Attributes = {
13
- [property: string]: string | number | boolean | undefined | Error;
12
+ declare type Context = {
13
+ [property: string]: any;
14
14
  };
15
15
  declare type Options = {
16
16
  collector: Collector;
17
- traceparent?: Traceparent;
17
+ traceparent?: string;
18
18
  };
19
19
  declare type OmitScopeParam<T extends unknown[]> = T extends [] ? [] : T extends [infer H, ...infer R] ? H extends Scope ? OmitScopeParam<R> : [H, ...OmitScopeParam<R>] : T;
20
20
  interface CallableScope extends Scope {
@@ -23,8 +23,10 @@ interface CallableScope extends Scope {
23
23
  interface Scope {
24
24
  traceparent: Traceparent;
25
25
  fork(name: string, traceparent?: Traceparent): CallableScope;
26
- measure<Fn extends (...args: any[]) => any, Params extends Parameters<Fn>>(name: string, fn: Fn, ...args: OmitScopeParam<Params>): ReturnType<Fn>;
27
- set_attributes(attributes: Attributes): void;
26
+ measure<Fn extends (...args: any[]) => any, Params extends Parameters<Fn>>(name: string, fn: Fn, // TODO Fix types here
27
+ ...args: OmitScopeParam<Params>): ReturnType<Fn>;
28
+ set_context(contextFn: (context: Context) => Context): void;
29
+ set_context(context: Context): void;
28
30
  end(): void;
29
31
  }
30
32
  interface Tracer extends Scope {
@@ -32,4 +34,4 @@ interface Tracer extends Scope {
32
34
  }
33
35
  declare const create: (name: string, options: Options) => Tracer;
34
36
 
35
- export { Attributes, Collector, Options, Scope, Span, Tracer, create };
37
+ export { Collector, Context, Options, Scope, Span, Tracer, create };
package/index.js CHANGED
@@ -1,75 +1,93 @@
1
1
  'use strict';
2
2
 
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.create = void 0;
5
- const tracecontext_1 = require("rian/tracecontext");
3
+ const tctx = require('tctx');
4
+
5
+ function _interopNamespace(e) {
6
+ if (e && e.__esModule) return e;
7
+ const n = Object.create(null);
8
+ if (e) {
9
+ for (const k in e) {
10
+ if (k !== 'default') {
11
+ const d = Object.getOwnPropertyDescriptor(e, k);
12
+ Object.defineProperty(n, k, d.get ? d : {
13
+ enumerable: true,
14
+ get: function () { return e[k]; }
15
+ });
16
+ }
17
+ }
18
+ }
19
+ n["default"] = e;
20
+ return n;
21
+ }
22
+
23
+ const tctx__namespace = /*#__PURE__*/_interopNamespace(tctx);
24
+
6
25
  const measure = (cb, scope, promises) => {
7
26
  const set_error = (error) => {
8
- scope.set_attributes({
27
+ scope.set_context({
9
28
  error,
10
29
  });
11
30
  };
12
- try {
13
- const r = cb();
14
- if (r instanceof Promise)
15
- promises.push(r.catch(set_error).finally(() => scope.end()));
16
- return r;
17
- }
18
- catch (e) {
19
- set_error(e);
20
- throw e;
21
- }
22
- finally {
23
- scope.end();
24
- }
31
+ return (...args) => {
32
+ try {
33
+ var r = cb(...args, scope), is_promise = r instanceof Promise;
34
+ if (is_promise)
35
+ promises.push(r.catch(set_error).finally(() => scope.end()));
36
+ return r;
37
+ }
38
+ catch (e) {
39
+ set_error(e);
40
+ throw e;
41
+ }
42
+ finally {
43
+ if (is_promise !== true)
44
+ scope.end();
45
+ }
46
+ };
25
47
  };
26
48
  const create = (name, options) => {
27
49
  const spans = new Set();
28
50
  const promises = [];
29
- const scope = (name, parent) => {
30
- const me = parent ? parent.child() : (0, tracecontext_1.make_traceparent)();
31
- const attributes = {};
32
- const start = performance.now();
51
+ const span = (name, parent) => {
52
+ const id = parent ? parent.child() : tctx__namespace.make(true);
53
+ let context = {};
54
+ const start = Date.now();
33
55
  let ended = false;
34
- const $ = {
35
- get traceparent() {
36
- return me;
37
- },
38
- fork(name) {
39
- return scope(name, me);
40
- },
41
- measure(name, cb, ...args) {
42
- const scope = this.fork(name);
43
- return measure(() => cb(...args, scope), scope, promises);
44
- },
45
- set_attributes(attr) {
46
- Object.assign(attributes, attr);
47
- },
48
- end() {
49
- if (ended)
50
- return void 0;
51
- spans.add({
52
- id: me,
53
- parent,
54
- start,
55
- end: performance.now(),
56
- name,
57
- attributes,
58
- });
59
- ended = true;
60
- },
56
+ // @ts-ignore
57
+ const $ = (cb) => measure(cb, $, promises)();
58
+ $.traceparent = id;
59
+ $.fork = (name) => span(name, id);
60
+ $.measure = (name, cb, ...args) => measure(cb, span(name, id), promises)(...args);
61
+ $.set_context = (ctx) => {
62
+ if (typeof ctx === 'function')
63
+ return void (context = ctx(context));
64
+ Object.assign(context, ctx);
61
65
  };
62
- return Object.setPrototypeOf((cb) => measure(cb, $, promises), $);
66
+ $.end = () => {
67
+ if (ended)
68
+ return void 0;
69
+ spans.add({
70
+ id,
71
+ parent,
72
+ start,
73
+ end: Date.now(),
74
+ name,
75
+ context,
76
+ });
77
+ ended = true;
78
+ };
79
+ return $;
63
80
  };
64
- const me = scope(name, typeof options.traceparent === 'string'
65
- ? (0, tracecontext_1.parse_traceparent)(options.traceparent)
66
- : options.traceparent);
67
- const meEnd = me.end.bind(me);
68
- me.end = async () => {
69
- await Promise.all(promises);
81
+ const root = span(name, typeof options.traceparent === 'string'
82
+ ? tctx__namespace.parse(options.traceparent)
83
+ : undefined);
84
+ const meEnd = root.end.bind(root);
85
+ root.end = async () => {
70
86
  meEnd();
87
+ await Promise.all(promises);
71
88
  return options.collector(spans);
72
89
  };
73
- return me;
90
+ return root;
74
91
  };
92
+
75
93
  exports.create = create;
package/index.mjs CHANGED
@@ -1,73 +1,71 @@
1
- Object.defineProperty(exports, "__esModule", { value: true });
2
- exports.create = void 0;
3
- const tracecontext_1 = require("rian/tracecontext");
1
+ import * as tctx from 'tctx';
2
+
4
3
  const measure = (cb, scope, promises) => {
5
4
  const set_error = (error) => {
6
- scope.set_attributes({
5
+ scope.set_context({
7
6
  error,
8
7
  });
9
8
  };
10
- try {
11
- const r = cb();
12
- if (r instanceof Promise)
13
- promises.push(r.catch(set_error).finally(() => scope.end()));
14
- return r;
15
- }
16
- catch (e) {
17
- set_error(e);
18
- throw e;
19
- }
20
- finally {
21
- scope.end();
22
- }
9
+ return (...args) => {
10
+ try {
11
+ var r = cb(...args, scope), is_promise = r instanceof Promise;
12
+ if (is_promise)
13
+ promises.push(r.catch(set_error).finally(() => scope.end()));
14
+ return r;
15
+ }
16
+ catch (e) {
17
+ set_error(e);
18
+ throw e;
19
+ }
20
+ finally {
21
+ if (is_promise !== true)
22
+ scope.end();
23
+ }
24
+ };
23
25
  };
24
26
  const create = (name, options) => {
25
27
  const spans = new Set();
26
28
  const promises = [];
27
- const scope = (name, parent) => {
28
- const me = parent ? parent.child() : (0, tracecontext_1.make_traceparent)();
29
- const attributes = {};
30
- const start = performance.now();
29
+ const span = (name, parent) => {
30
+ const id = parent ? parent.child() : tctx.make(true);
31
+ let context = {};
32
+ const start = Date.now();
31
33
  let ended = false;
32
- const $ = {
33
- get traceparent() {
34
- return me;
35
- },
36
- fork(name) {
37
- return scope(name, me);
38
- },
39
- measure(name, cb, ...args) {
40
- const scope = this.fork(name);
41
- return measure(() => cb(...args, scope), scope, promises);
42
- },
43
- set_attributes(attr) {
44
- Object.assign(attributes, attr);
45
- },
46
- end() {
47
- if (ended)
48
- return void 0;
49
- spans.add({
50
- id: me,
51
- parent,
52
- start,
53
- end: performance.now(),
54
- name,
55
- attributes,
56
- });
57
- ended = true;
58
- },
34
+ // @ts-ignore
35
+ const $ = (cb) => measure(cb, $, promises)();
36
+ $.traceparent = id;
37
+ $.fork = (name) => span(name, id);
38
+ $.measure = (name, cb, ...args) => measure(cb, span(name, id), promises)(...args);
39
+ $.set_context = (ctx) => {
40
+ if (typeof ctx === 'function')
41
+ return void (context = ctx(context));
42
+ Object.assign(context, ctx);
43
+ };
44
+ $.end = () => {
45
+ if (ended)
46
+ return void 0;
47
+ spans.add({
48
+ id,
49
+ parent,
50
+ start,
51
+ end: Date.now(),
52
+ name,
53
+ context,
54
+ });
55
+ ended = true;
59
56
  };
60
- return Object.setPrototypeOf((cb) => measure(cb, $, promises), $);
57
+ return $;
61
58
  };
62
- const me = scope(name, typeof options.traceparent === 'string'
63
- ? (0, tracecontext_1.parse_traceparent)(options.traceparent)
64
- : options.traceparent);
65
- const meEnd = me.end.bind(me);
66
- me.end = async () => {
67
- await Promise.all(promises);
59
+ const root = span(name, typeof options.traceparent === 'string'
60
+ ? tctx.parse(options.traceparent)
61
+ : undefined);
62
+ const meEnd = root.end.bind(root);
63
+ root.end = async () => {
68
64
  meEnd();
65
+ await Promise.all(promises);
69
66
  return options.collector(spans);
70
67
  };
71
- return me;
68
+ return root;
72
69
  };
73
- exports.create = create;
70
+
71
+ export { create };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rian",
3
- "version": "0.0.2-alpha.1",
3
+ "version": "0.0.2-alpha.10",
4
4
  "description": "A tracer for the edge",
5
5
  "keywords": [
6
6
  "TODO"
@@ -19,10 +19,6 @@
19
19
  "import": "./index.mjs",
20
20
  "require": "./index.js"
21
21
  },
22
- "./tracecontext": {
23
- "import": "./tracecontext.mjs",
24
- "require": "./tracecontext.js"
25
- },
26
22
  "./package.json": "./package.json"
27
23
  },
28
24
  "main": "./index.js",
@@ -34,6 +30,6 @@
34
30
  "*.d.ts"
35
31
  ],
36
32
  "dependencies": {
37
- "tctx": "^0.0.6"
33
+ "tctx": "^0.0.10"
38
34
  }
39
35
  }
package/tracecontext.d.ts DELETED
@@ -1 +0,0 @@
1
- export { Traceparent, make as make_traceparent, parse as parse_traceparent } from 'tctx';
package/tracecontext.js DELETED
@@ -1,7 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.parse_traceparent = exports.make_traceparent = void 0;
5
- var tctx_1 = require("tctx");
6
- Object.defineProperty(exports, "make_traceparent", { enumerable: true, get: function () { return tctx_1.make; } });
7
- Object.defineProperty(exports, "parse_traceparent", { enumerable: true, get: function () { return tctx_1.parse; } });
package/tracecontext.mjs DELETED
@@ -1,5 +0,0 @@
1
- Object.defineProperty(exports, "__esModule", { value: true });
2
- exports.parse_traceparent = exports.make_traceparent = void 0;
3
- var tctx_1 = require("tctx");
4
- Object.defineProperty(exports, "make_traceparent", { enumerable: true, get: function () { return tctx_1.make; } });
5
- Object.defineProperty(exports, "parse_traceparent", { enumerable: true, get: function () { return tctx_1.parse; } });