@toa.io/origin 0.0.3 → 0.0.5

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@toa.io/origin",
3
- "version": "0.0.3",
3
+ "version": "0.0.5",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -0,0 +1,14 @@
1
+ const settings: Partial<Settings> = {} as const
2
+
3
+ export function connect(values: Settings) {
4
+ Object.assign(settings, values)
5
+
6
+ if (settings.delay) console.warn(`API delay is enabled (${settings.delay}ms)`)
7
+ }
8
+
9
+ interface Settings {
10
+ origin: string
11
+ delay?: number
12
+ }
13
+
14
+ export { settings }
package/source/index.ts CHANGED
@@ -3,5 +3,5 @@ export { Method } from './Method'
3
3
  export { Failure } from './Failure'
4
4
  export { authenticate, request, use, type Options } from './request'
5
5
  export { events } from './events'
6
- export { connect } from './settings'
6
+ export { connect } from './connect'
7
7
  export type * from './Octets'
package/source/request.ts CHANGED
@@ -1,13 +1,9 @@
1
+ import { settings } from './connect'
1
2
  import { events } from './events'
2
3
  import { fail } from './fail'
3
4
  import { ok } from './ok'
4
- import { settings } from './settings'
5
5
  import type { Failure } from './Failure'
6
6
 
7
- const delay = settings.delay
8
-
9
- if (delay) console.warn(`API delay is enabled (${delay}ms)`)
10
-
11
7
  let challenge: string | null = null
12
8
 
13
9
  export function authenticate(value: string | null) {
@@ -27,8 +23,8 @@ export async function request<T = unknown>(
27
23
  options.headers ??= {}
28
24
  options.headers['accept'] ??= 'application/json'
29
25
 
30
- if (delay)
31
- options.headers['sleep'] = Math.round((Math.random() * delay) / 2 + delay / 2).toString()
26
+ if (settings.delay)
27
+ options.headers['sleep'] = Math.round((Math.random() * settings.delay) / 2 + settings.delay / 2).toString()
32
28
 
33
29
  const authentication = options.credentials === 'include'
34
30
 
@@ -36,7 +32,7 @@ export async function request<T = unknown>(
36
32
  if (options.body instanceof File || options.body instanceof ReadableStream) {
37
33
  options.method ??= 'POST'
38
34
  options.duplex = 'half'
39
- options.headers['content-type'] ??= 'application/octet-stream'
35
+ options.headers['content-type'] ??= (options.body as File).type ?? 'application/octet-stream'
40
36
  } else {
41
37
  options.body = JSON.stringify(options.body)
42
38
  options.headers['content-type'] ??= 'application/json'
@@ -1,7 +1,7 @@
1
1
  declare const settings: Partial<Settings>;
2
- export declare function connect(set: Settings): void;
2
+ export declare function connect(values: Settings): void;
3
3
  interface Settings {
4
4
  origin: string;
5
- delay: number;
5
+ delay?: number;
6
6
  }
7
7
  export { settings };
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.settings = void 0;
4
+ exports.connect = connect;
5
+ const settings = {};
6
+ exports.settings = settings;
7
+ function connect(values) {
8
+ Object.assign(settings, values);
9
+ if (settings.delay)
10
+ console.warn(`API delay is enabled (${settings.delay}ms)`);
11
+ }
12
+ //# sourceMappingURL=connect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connect.js","sourceRoot":"","sources":["../source/connect.ts"],"names":[],"mappings":";;;AAEA,0BAIC;AAND,MAAM,QAAQ,GAAsB,EAAW,CAAA;AAatC,4BAAQ;AAXjB,SAAgB,OAAO,CAAC,MAAgB;IACtC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;IAE/B,IAAI,QAAQ,CAAC,KAAK;QAAE,OAAO,CAAC,IAAI,CAAC,yBAAyB,QAAQ,CAAC,KAAK,KAAK,CAAC,CAAA;AAChF,CAAC"}
@@ -3,5 +3,5 @@ export { Method } from './Method';
3
3
  export { Failure } from './Failure';
4
4
  export { authenticate, request, use, type Options } from './request';
5
5
  export { events } from './events';
6
- export { connect } from './settings';
6
+ export { connect } from './connect';
7
7
  export type * from './Octets';
@@ -13,6 +13,6 @@ Object.defineProperty(exports, "request", { enumerable: true, get: function () {
13
13
  Object.defineProperty(exports, "use", { enumerable: true, get: function () { return request_1.use; } });
14
14
  var events_1 = require("./events");
15
15
  Object.defineProperty(exports, "events", { enumerable: true, get: function () { return events_1.events; } });
16
- var settings_1 = require("./settings");
17
- Object.defineProperty(exports, "connect", { enumerable: true, get: function () { return settings_1.connect; } });
16
+ var connect_1 = require("./connect");
17
+ Object.defineProperty(exports, "connect", { enumerable: true, get: function () { return connect_1.connect; } });
18
18
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../source/index.ts"],"names":[],"mappings":";;;AAAA,uCAAqC;AAA5B,oGAAA,QAAQ,OAAA;AACjB,mCAAiC;AAAxB,gGAAA,MAAM,OAAA;AACf,qCAAmC;AAA1B,kGAAA,OAAO,OAAA;AAChB,qCAAoE;AAA3D,uGAAA,YAAY,OAAA;AAAE,kGAAA,OAAO,OAAA;AAAE,8FAAA,GAAG,OAAA;AACnC,mCAAiC;AAAxB,gGAAA,MAAM,OAAA;AACf,uCAAoC;AAA3B,mGAAA,OAAO,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../source/index.ts"],"names":[],"mappings":";;;AAAA,uCAAqC;AAA5B,oGAAA,QAAQ,OAAA;AACjB,mCAAiC;AAAxB,gGAAA,MAAM,OAAA;AACf,qCAAmC;AAA1B,kGAAA,OAAO,OAAA;AAChB,qCAAoE;AAA3D,uGAAA,YAAY,OAAA;AAAE,kGAAA,OAAO,OAAA;AAAE,8FAAA,GAAG,OAAA;AACnC,mCAAiC;AAAxB,gGAAA,MAAM,OAAA;AACf,qCAAmC;AAA1B,kGAAA,OAAO,OAAA"}
@@ -3,13 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.authenticate = authenticate;
4
4
  exports.use = use;
5
5
  exports.request = request;
6
+ const connect_1 = require("./connect");
6
7
  const events_1 = require("./events");
7
8
  const fail_1 = require("./fail");
8
9
  const ok_1 = require("./ok");
9
- const settings_1 = require("./settings");
10
- const delay = settings_1.settings.delay;
11
- if (delay)
12
- console.warn(`API delay is enabled (${delay}ms)`);
13
10
  let challenge = null;
14
11
  function authenticate(value) {
15
12
  challenge = value;
@@ -21,14 +18,14 @@ function use(fetcher) {
21
18
  async function request(path, options = {}) {
22
19
  options.headers ??= {};
23
20
  options.headers['accept'] ??= 'application/json';
24
- if (delay)
25
- options.headers['sleep'] = Math.round((Math.random() * delay) / 2 + delay / 2).toString();
21
+ if (connect_1.settings.delay)
22
+ options.headers['sleep'] = Math.round((Math.random() * connect_1.settings.delay) / 2 + connect_1.settings.delay / 2).toString();
26
23
  const authentication = options.credentials === 'include';
27
24
  if (options.body !== undefined)
28
25
  if (options.body instanceof File || options.body instanceof ReadableStream) {
29
26
  options.method ??= 'POST';
30
27
  options.duplex = 'half';
31
- options.headers['content-type'] ??= 'application/octet-stream';
28
+ options.headers['content-type'] ??= options.body.type ?? 'application/octet-stream';
32
29
  }
33
30
  else {
34
31
  options.body = JSON.stringify(options.body);
@@ -44,7 +41,7 @@ async function request(path, options = {}) {
44
41
  const id = typeof window !== 'undefined' && (window.crypto.randomUUID?.() ?? Math.random().toString());
45
42
  if (id)
46
43
  events_1.events.emit('request', { id, path, options });
47
- const response = await _fetch(settings_1.settings.origin + path, options);
44
+ const response = await _fetch(connect_1.settings.origin + path, options);
48
45
  if (id)
49
46
  events_1.events.emit('response', { id, response, duration: performance.now() - start });
50
47
  if (!response.ok)
@@ -1 +1 @@
1
- {"version":3,"file":"request.js","sourceRoot":"","sources":["../source/request.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"request.js","sourceRoot":"","sources":["../source/request.ts"],"names":[],"mappings":";;AAQA,oCAEC;AAID,kBAEC;AAED,0BA6CC;AA/DD,uCAAoC;AACpC,qCAAiC;AACjC,iCAA6B;AAC7B,6BAAyB;AAGzB,IAAI,SAAS,GAAkB,IAAI,CAAA;AAEnC,SAAgB,YAAY,CAAC,KAAoB;IAC/C,SAAS,GAAG,KAAK,CAAA;AACnB,CAAC;AAED,IAAI,MAAM,GAAG,KAAK,CAAA;AAElB,SAAgB,GAAG,CAAC,OAAqB;IACvC,MAAM,GAAG,OAAO,CAAA;AAClB,CAAC;AAEM,KAAK,UAAU,OAAO,CAC3B,IAAY,EACZ,UAAmB,EAAE;IAErB,OAAO,CAAC,OAAO,KAAK,EAAE,CAAA;IACtB,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,kBAAkB,CAAA;IAEhD,IAAI,kBAAQ,CAAC,KAAK;QAChB,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,kBAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,kBAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAA;IAE7G,MAAM,cAAc,GAAG,OAAO,CAAC,WAAW,KAAK,SAAS,CAAA;IAExD,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS;QAC5B,IAAI,OAAO,CAAC,IAAI,YAAY,IAAI,IAAI,OAAO,CAAC,IAAI,YAAY,cAAc,EAAE,CAAC;YAC3E,OAAO,CAAC,MAAM,KAAK,MAAM,CAAA;YACzB,OAAO,CAAC,MAAM,GAAG,MAAM,CAAA;YACvB,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,KAAM,OAAO,CAAC,IAAa,CAAC,IAAI,IAAI,0BAA0B,CAAA;QAC/F,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YAC3C,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,kBAAkB,CAAA;QACxD,CAAC;IAEH,IAAI,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,SAAS,EAAE,CAAC;QACrE,IAAI,SAAS,KAAK,IAAI;YACpB,MAAM,IAAI,KAAK,CAAC,gEAAgE,OAAO,CAAC,MAAM,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC,CAAA;QAEpH,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,SAAS,CAAA;QAC5C,OAAO,OAAO,CAAC,WAAW,CAAA,CAAC,aAAa;IAC1C,CAAC;IAED,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAA;IAE/B,MAAM,EAAE,GACN,OAAO,MAAM,KAAK,WAAW,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAA;IAE7F,IAAI,EAAE;QACJ,eAAM,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;IAE/C,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,kBAAQ,CAAC,MAAM,GAAG,IAAI,EAAE,OAAO,CAAC,CAAA;IAE9D,IAAI,EAAE;QACJ,eAAM,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC,CAAA;IAEhF,IAAI,CAAC,QAAQ,CAAC,EAAE;QAAE,OAAO,MAAM,IAAA,WAAI,EAAC,QAAQ,CAAC,CAAA;;QACxC,OAAO,MAAM,IAAA,OAAE,EAAI,QAAQ,CAAC,CAAA;AACnC,CAAC"}
@@ -1,12 +0,0 @@
1
- const settings: Partial<Settings> = {} as const
2
-
3
- export function connect(set: Settings) {
4
- Object.assign(settings, set)
5
- }
6
-
7
- interface Settings {
8
- origin: string
9
- delay: number
10
- }
11
-
12
- export { settings }
@@ -1,10 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.settings = void 0;
4
- exports.connect = connect;
5
- const settings = {};
6
- exports.settings = settings;
7
- function connect(set) {
8
- Object.assign(settings, set);
9
- }
10
- //# sourceMappingURL=settings.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"settings.js","sourceRoot":"","sources":["../source/settings.ts"],"names":[],"mappings":";;;AAEA,0BAEC;AAJD,MAAM,QAAQ,GAAsB,EAAW,CAAA;AAWtC,4BAAQ;AATjB,SAAgB,OAAO,CAAC,GAAa;IACnC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;AAC9B,CAAC"}