@player-ui/player 0.8.0--canary.307.9621 → 0.8.0-next.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.
Files changed (214) hide show
  1. package/dist/Player.native.js +11630 -0
  2. package/dist/Player.native.js.map +1 -0
  3. package/dist/cjs/index.cjs +5626 -0
  4. package/dist/cjs/index.cjs.map +1 -0
  5. package/dist/{index.esm.js → index.legacy-esm.js} +2044 -1667
  6. package/dist/{index.cjs.js → index.mjs} +2052 -1761
  7. package/dist/index.mjs.map +1 -0
  8. package/package.json +29 -63
  9. package/src/__tests__/data.test.ts +498 -0
  10. package/src/__tests__/flow.test.ts +312 -0
  11. package/src/__tests__/helpers/action-exp.plugin.ts +22 -0
  12. package/src/__tests__/helpers/actions.flow.ts +67 -0
  13. package/src/__tests__/helpers/binding.plugin.ts +125 -0
  14. package/src/__tests__/helpers/expression.plugin.ts +88 -0
  15. package/src/__tests__/helpers/transform-plugin.ts +19 -0
  16. package/src/__tests__/helpers/validation.flow.ts +56 -0
  17. package/src/__tests__/player.test.ts +597 -0
  18. package/src/__tests__/string-resolver.test.ts +186 -0
  19. package/src/__tests__/validation.test.ts +3555 -0
  20. package/src/__tests__/view.test.ts +715 -0
  21. package/src/binding/__tests__/binding.test.ts +113 -0
  22. package/src/binding/__tests__/index.test.ts +208 -0
  23. package/src/binding/__tests__/resolver.test.ts +83 -0
  24. package/src/binding/binding.ts +6 -6
  25. package/src/binding/index.ts +34 -34
  26. package/src/binding/resolver.ts +19 -19
  27. package/src/binding/utils.ts +7 -7
  28. package/src/binding-grammar/__tests__/parser.test.ts +64 -0
  29. package/src/binding-grammar/__tests__/test-utils/ast-cases.ts +198 -0
  30. package/src/binding-grammar/__tests__/test-utils/perf-test.ts +66 -0
  31. package/src/binding-grammar/ast.ts +11 -11
  32. package/src/binding-grammar/custom/index.ts +19 -22
  33. package/src/binding-grammar/ebnf/index.ts +20 -21
  34. package/src/binding-grammar/ebnf/types.ts +13 -13
  35. package/src/binding-grammar/index.ts +4 -4
  36. package/src/binding-grammar/parsimmon/index.ts +14 -14
  37. package/src/controllers/constants/__tests__/index.test.ts +106 -0
  38. package/src/controllers/constants/index.ts +3 -3
  39. package/src/controllers/constants/utils.ts +4 -4
  40. package/src/controllers/data/controller.ts +22 -22
  41. package/src/controllers/data/index.ts +1 -1
  42. package/src/controllers/data/utils.ts +7 -7
  43. package/src/controllers/flow/__tests__/controller.test.ts +195 -0
  44. package/src/controllers/flow/__tests__/flow.test.ts +381 -0
  45. package/src/controllers/flow/controller.ts +13 -13
  46. package/src/controllers/flow/flow.ts +23 -23
  47. package/src/controllers/flow/index.ts +2 -2
  48. package/src/controllers/index.ts +5 -5
  49. package/src/controllers/validation/binding-tracker.ts +71 -59
  50. package/src/controllers/validation/controller.ts +104 -104
  51. package/src/controllers/validation/index.ts +2 -2
  52. package/src/controllers/view/asset-transform.ts +20 -20
  53. package/src/controllers/view/controller.ts +27 -27
  54. package/src/controllers/view/index.ts +4 -4
  55. package/src/controllers/view/store.ts +3 -3
  56. package/src/controllers/view/types.ts +7 -7
  57. package/src/data/__tests__/__snapshots__/dependency-tracker.test.ts.snap +64 -0
  58. package/src/data/__tests__/dependency-tracker.test.ts +146 -0
  59. package/src/data/__tests__/local-model.test.ts +46 -0
  60. package/src/data/__tests__/model.test.ts +78 -0
  61. package/src/data/dependency-tracker.ts +16 -16
  62. package/src/data/index.ts +4 -4
  63. package/src/data/local-model.ts +6 -6
  64. package/src/data/model.ts +17 -17
  65. package/src/data/noop-model.ts +1 -1
  66. package/src/expressions/__tests__/__snapshots__/parser.test.ts.snap +854 -0
  67. package/src/expressions/__tests__/evaluator-functions.test.ts +47 -0
  68. package/src/expressions/__tests__/evaluator.test.ts +410 -0
  69. package/src/expressions/__tests__/parser.test.ts +115 -0
  70. package/src/expressions/__tests__/utils.test.ts +44 -0
  71. package/src/expressions/evaluator-functions.ts +6 -6
  72. package/src/expressions/evaluator.ts +71 -67
  73. package/src/expressions/index.ts +4 -4
  74. package/src/expressions/parser.ts +102 -105
  75. package/src/expressions/types.ts +29 -21
  76. package/src/expressions/utils.ts +32 -21
  77. package/src/index.ts +13 -13
  78. package/src/logger/__tests__/consoleLogger.test.ts +46 -0
  79. package/src/logger/__tests__/noopLogger.test.ts +13 -0
  80. package/src/logger/__tests__/proxyLogger.test.ts +31 -0
  81. package/src/logger/__tests__/tapableLogger.test.ts +41 -0
  82. package/src/logger/consoleLogger.ts +9 -9
  83. package/src/logger/index.ts +5 -5
  84. package/src/logger/noopLogger.ts +1 -1
  85. package/src/logger/proxyLogger.ts +6 -6
  86. package/src/logger/tapableLogger.ts +7 -7
  87. package/src/logger/types.ts +2 -2
  88. package/src/player.ts +60 -58
  89. package/src/plugins/default-exp-plugin.ts +10 -10
  90. package/src/plugins/default-view-plugin.ts +29 -0
  91. package/src/plugins/flow-exp-plugin.ts +6 -6
  92. package/src/schema/__tests__/schema.test.ts +243 -0
  93. package/src/schema/index.ts +2 -2
  94. package/src/schema/schema.ts +24 -24
  95. package/src/schema/types.ts +4 -4
  96. package/src/string-resolver/__tests__/index.test.ts +361 -0
  97. package/src/string-resolver/index.ts +17 -17
  98. package/src/types.ts +17 -17
  99. package/src/utils/__tests__/replaceParams.test.ts +33 -0
  100. package/src/utils/index.ts +1 -1
  101. package/src/utils/replaceParams.ts +1 -1
  102. package/src/validator/__tests__/binding-map-splice.test.ts +53 -0
  103. package/src/validator/__tests__/validation-middleware.test.ts +127 -0
  104. package/src/validator/binding-map-splice.ts +5 -5
  105. package/src/validator/index.ts +4 -4
  106. package/src/validator/registry.ts +1 -1
  107. package/src/validator/types.ts +13 -13
  108. package/src/validator/validation-middleware.ts +15 -15
  109. package/src/view/__tests__/view.immutable.test.ts +269 -0
  110. package/src/view/__tests__/view.test.ts +959 -0
  111. package/src/view/builder/index.test.ts +69 -0
  112. package/src/view/builder/index.ts +3 -3
  113. package/src/view/index.ts +5 -5
  114. package/src/view/parser/__tests__/__snapshots__/parser.test.ts.snap +394 -0
  115. package/src/view/parser/__tests__/parser.test.ts +264 -0
  116. package/src/view/parser/index.ts +43 -33
  117. package/src/view/parser/types.ts +11 -11
  118. package/src/view/parser/utils.ts +5 -5
  119. package/src/view/plugins/__tests__/__snapshots__/template.test.ts.snap +278 -0
  120. package/src/view/plugins/__tests__/applicability.test.ts +265 -0
  121. package/src/view/plugins/__tests__/string.test.ts +122 -0
  122. package/src/view/plugins/__tests__/template.test.ts +724 -0
  123. package/src/view/plugins/applicability.ts +19 -19
  124. package/src/view/plugins/index.ts +4 -5
  125. package/src/view/plugins/options.ts +1 -1
  126. package/src/view/plugins/string-resolver.ts +22 -22
  127. package/src/view/plugins/switch.ts +22 -23
  128. package/src/view/plugins/template-plugin.ts +26 -27
  129. package/src/view/resolver/__tests__/dependencies.test.ts +321 -0
  130. package/src/view/resolver/__tests__/edgecases.test.ts +626 -0
  131. package/src/view/resolver/index.ts +42 -42
  132. package/src/view/resolver/types.ts +21 -20
  133. package/src/view/resolver/utils.ts +9 -9
  134. package/src/view/view.ts +32 -22
  135. package/types/binding/binding.d.ts +50 -0
  136. package/types/binding/index.d.ts +29 -0
  137. package/types/binding/resolver.d.ts +26 -0
  138. package/types/binding/utils.d.ts +12 -0
  139. package/types/binding-grammar/ast.d.ts +67 -0
  140. package/types/binding-grammar/custom/index.d.ts +4 -0
  141. package/types/binding-grammar/ebnf/index.d.ts +4 -0
  142. package/types/binding-grammar/ebnf/types.d.ts +75 -0
  143. package/types/binding-grammar/index.d.ts +5 -0
  144. package/types/binding-grammar/parsimmon/index.d.ts +4 -0
  145. package/types/controllers/constants/index.d.ts +45 -0
  146. package/types/controllers/constants/utils.d.ts +6 -0
  147. package/types/controllers/data/controller.d.ts +45 -0
  148. package/types/controllers/data/index.d.ts +2 -0
  149. package/types/controllers/data/utils.d.ts +14 -0
  150. package/types/controllers/flow/controller.d.ts +25 -0
  151. package/types/controllers/flow/flow.d.ts +50 -0
  152. package/types/controllers/flow/index.d.ts +3 -0
  153. package/types/controllers/index.d.ts +6 -0
  154. package/types/controllers/validation/binding-tracker.d.ts +32 -0
  155. package/types/controllers/validation/controller.d.ts +151 -0
  156. package/types/controllers/validation/index.d.ts +3 -0
  157. package/types/controllers/view/asset-transform.d.ts +19 -0
  158. package/types/controllers/view/controller.d.ts +37 -0
  159. package/types/controllers/view/index.d.ts +5 -0
  160. package/types/controllers/view/store.d.ts +20 -0
  161. package/types/controllers/view/types.d.ts +16 -0
  162. package/types/data/dependency-tracker.d.ts +49 -0
  163. package/types/data/index.d.ts +5 -0
  164. package/types/data/local-model.d.ts +16 -0
  165. package/types/data/model.d.ts +86 -0
  166. package/types/data/noop-model.d.ts +13 -0
  167. package/types/expressions/evaluator-functions.d.ts +15 -0
  168. package/types/expressions/evaluator.d.ts +52 -0
  169. package/types/expressions/index.d.ts +5 -0
  170. package/types/expressions/parser.d.ts +10 -0
  171. package/types/expressions/types.d.ts +144 -0
  172. package/types/expressions/utils.d.ts +12 -0
  173. package/types/index.d.ts +14 -0
  174. package/types/logger/consoleLogger.d.ts +17 -0
  175. package/types/logger/index.d.ts +6 -0
  176. package/types/logger/noopLogger.d.ts +10 -0
  177. package/types/logger/proxyLogger.d.ts +15 -0
  178. package/types/logger/tapableLogger.d.ts +23 -0
  179. package/types/logger/types.d.ts +6 -0
  180. package/types/player.d.ts +101 -0
  181. package/types/plugins/default-exp-plugin.d.ts +9 -0
  182. package/types/plugins/default-view-plugin.d.ts +9 -0
  183. package/types/plugins/flow-exp-plugin.d.ts +11 -0
  184. package/types/schema/index.d.ts +3 -0
  185. package/types/schema/schema.d.ts +36 -0
  186. package/types/schema/types.d.ts +38 -0
  187. package/types/string-resolver/index.d.ts +30 -0
  188. package/types/types.d.ts +73 -0
  189. package/types/utils/index.d.ts +2 -0
  190. package/types/utils/replaceParams.d.ts +9 -0
  191. package/types/validator/binding-map-splice.d.ts +10 -0
  192. package/types/validator/index.d.ts +5 -0
  193. package/types/validator/registry.d.ts +11 -0
  194. package/types/validator/types.d.ts +53 -0
  195. package/types/validator/validation-middleware.d.ts +36 -0
  196. package/types/view/builder/index.d.ts +35 -0
  197. package/types/view/index.d.ts +6 -0
  198. package/types/view/parser/index.d.ts +52 -0
  199. package/types/view/parser/types.d.ts +109 -0
  200. package/types/view/parser/utils.d.ts +6 -0
  201. package/types/view/plugins/applicability.d.ts +10 -0
  202. package/types/view/plugins/index.d.ts +5 -0
  203. package/types/view/plugins/options.d.ts +4 -0
  204. package/types/view/plugins/string-resolver.d.ts +13 -0
  205. package/types/view/plugins/switch.d.ts +14 -0
  206. package/types/view/plugins/template-plugin.d.ts +33 -0
  207. package/types/view/resolver/index.d.ts +73 -0
  208. package/types/view/resolver/types.d.ts +129 -0
  209. package/types/view/resolver/utils.d.ts +11 -0
  210. package/types/view/view.d.ts +37 -0
  211. package/dist/index.d.ts +0 -1814
  212. package/dist/player.dev.js +0 -11472
  213. package/dist/player.prod.js +0 -2
  214. package/src/view/plugins/plugin.ts +0 -21
@@ -1,16 +1,17 @@
1
- import { isExpressionNode } from './types';
1
+ import { isExpressionNode } from "./types";
2
2
  import type {
3
+ ErrorWithLocation,
3
4
  ExpressionHandler,
4
5
  ExpressionNode,
5
6
  ExpressionObjectType,
6
7
  ExpressionType,
7
8
  NodeLocation,
8
9
  NodePosition,
9
- } from './types';
10
+ } from "./types";
10
11
 
11
12
  /** Generates a function by removing the first context argument */
12
13
  export function withoutContext<T extends unknown[], Return>(
13
- fn: (...args: T) => Return
14
+ fn: (...args: T) => Return,
14
15
  ): ExpressionHandler<T, Return> {
15
16
  return (_context, ...args) => fn(...args);
16
17
  }
@@ -26,16 +27,16 @@ function isInRange(position: NodePosition, location: NodeLocation) {
26
27
  /** Get the node in the expression that's closest to the desired position */
27
28
  export function findClosestNodeAtPosition(
28
29
  node: ExpressionNode,
29
- position: NodePosition
30
+ position: NodePosition,
30
31
  ): ExpressionNode | undefined {
31
32
  // This is just mapping recursively over nodes in the tree
32
33
 
33
34
  // eslint-disable-next-line default-case
34
35
  switch (node.type) {
35
- case 'Modification':
36
- case 'Assignment':
37
- case 'LogicalExpression':
38
- case 'BinaryExpression': {
36
+ case "Modification":
37
+ case "Assignment":
38
+ case "LogicalExpression":
39
+ case "BinaryExpression": {
39
40
  const check =
40
41
  findClosestNodeAtPosition(node.left, position) ??
41
42
  findClosestNodeAtPosition(node.right, position);
@@ -46,7 +47,7 @@ export function findClosestNodeAtPosition(
46
47
  break;
47
48
  }
48
49
 
49
- case 'UnaryExpression': {
50
+ case "UnaryExpression": {
50
51
  const checkArg = findClosestNodeAtPosition(node.argument, position);
51
52
  if (checkArg) {
52
53
  return checkArg;
@@ -55,7 +56,7 @@ export function findClosestNodeAtPosition(
55
56
  break;
56
57
  }
57
58
 
58
- case 'MemberExpression': {
59
+ case "MemberExpression": {
59
60
  const checkObject =
60
61
  findClosestNodeAtPosition(node.object, position) ??
61
62
  findClosestNodeAtPosition(node.property, position);
@@ -66,7 +67,7 @@ export function findClosestNodeAtPosition(
66
67
  break;
67
68
  }
68
69
 
69
- case 'ConditionalExpression': {
70
+ case "ConditionalExpression": {
70
71
  const checkObject =
71
72
  findClosestNodeAtPosition(node.test, position) ??
72
73
  findClosestNodeAtPosition(node.consequent, position) ??
@@ -78,13 +79,13 @@ export function findClosestNodeAtPosition(
78
79
  break;
79
80
  }
80
81
 
81
- case 'ArrayExpression':
82
- case 'Compound': {
82
+ case "ArrayExpression":
83
+ case "Compound": {
83
84
  const elements =
84
- node.type === 'ArrayExpression' ? node.elements : node.body;
85
+ node.type === "ArrayExpression" ? node.elements : node.body;
85
86
 
86
87
  const anyElements = elements.find((e) =>
87
- findClosestNodeAtPosition(e, position)
88
+ findClosestNodeAtPosition(e, position),
88
89
  );
89
90
 
90
91
  if (anyElements) {
@@ -94,7 +95,7 @@ export function findClosestNodeAtPosition(
94
95
  break;
95
96
  }
96
97
 
97
- case 'Object': {
98
+ case "Object": {
98
99
  const checkObject = node.attributes.reduce<ExpressionNode | undefined>(
99
100
  (found, next) => {
100
101
  return (
@@ -103,7 +104,7 @@ export function findClosestNodeAtPosition(
103
104
  findClosestNodeAtPosition(next.value, position)
104
105
  );
105
106
  },
106
- undefined
107
+ undefined,
107
108
  );
108
109
 
109
110
  if (checkObject) {
@@ -113,7 +114,7 @@ export function findClosestNodeAtPosition(
113
114
  break;
114
115
  }
115
116
 
116
- case 'CallExpression': {
117
+ case "CallExpression": {
117
118
  const anyArgs =
118
119
  node.args.find((arg) => {
119
120
  return findClosestNodeAtPosition(arg, position);
@@ -135,16 +136,26 @@ export function findClosestNodeAtPosition(
135
136
 
136
137
  /** Checks if the expression is a simple type */
137
138
  export function isObjectExpression(
138
- expr: ExpressionType
139
+ expr: ExpressionType,
139
140
  ): expr is ExpressionObjectType {
140
141
  if (isExpressionNode(expr)) {
141
142
  return false;
142
143
  }
143
144
 
144
145
  return (
145
- typeof expr === 'object' &&
146
+ typeof expr === "object" &&
146
147
  expr !== null &&
147
148
  !Array.isArray(expr) &&
148
- 'value' in expr
149
+ "value" in expr
150
+ );
151
+ }
152
+
153
+ /**
154
+ * Type guard for ErrorWithLocation
155
+ */
156
+ export function isErrorWithLocation(error: Error): error is ErrorWithLocation {
157
+ return (
158
+ (error as ErrorWithLocation).index !== undefined &&
159
+ (error as ErrorWithLocation).description !== undefined
149
160
  );
150
161
  }
package/src/index.ts CHANGED
@@ -1,15 +1,15 @@
1
1
  // Add the types export first so it's naming takes precedence
2
- export * from '@player-ui/types';
3
- export * from './binding';
4
- export * from './data';
5
- export * from './expressions';
6
- export * from './logger';
7
- export * from './schema';
8
- export * from './string-resolver';
9
- export * from './validator';
10
- export * from './view';
2
+ export * from "@player-ui/types";
3
+ export * from "./binding/index";
4
+ export * from "./data/index";
5
+ export * from "./expressions/index";
6
+ export * from "./logger/index";
7
+ export * from "./schema/index";
8
+ export * from "./string-resolver/index";
9
+ export * from "./validator/index";
10
+ export * from "./view/index";
11
11
 
12
- export * from './player';
13
- export * from './controllers';
14
- export * from './types';
15
- export * from './plugins/flow-exp-plugin';
12
+ export * from "./player";
13
+ export * from "./controllers/index";
14
+ export * from "./types";
15
+ export * from "./plugins/flow-exp-plugin";
@@ -0,0 +1,46 @@
1
+ import { describe, it, expect, vitest, beforeEach } from "vitest";
2
+ import { ConsoleLogger } from "..";
3
+ import type { ConsoleHandler } from "../consoleLogger";
4
+
5
+ describe("console logger", () => {
6
+ let consoleFns: ConsoleHandler;
7
+
8
+ beforeEach(() => {
9
+ consoleFns = {
10
+ log: vitest.fn(),
11
+ warn: vitest.fn(),
12
+ error: vitest.fn(),
13
+ };
14
+ });
15
+
16
+ it("calls console fns", () => {
17
+ const logger = new ConsoleLogger("warn", consoleFns);
18
+ logger.warn("test warning");
19
+
20
+ expect(consoleFns.warn).toBeCalledTimes(1);
21
+ expect(consoleFns.warn).toBeCalledWith("player - warn -", "test warning");
22
+ });
23
+
24
+ it("handles severity", () => {
25
+ const logger = new ConsoleLogger("warn", consoleFns);
26
+ logger.warn("test warning");
27
+ expect(consoleFns.warn).toBeCalledTimes(1);
28
+
29
+ logger.info("test info");
30
+ expect(consoleFns.log).toBeCalledTimes(0);
31
+
32
+ logger.setSeverity("info");
33
+ logger.info("test info");
34
+ expect(consoleFns.log).toBeCalledTimes(1);
35
+ expect(consoleFns.log).toBeCalledWith("player - info -", "test info");
36
+
37
+ logger.setSeverity("trace");
38
+ logger.debug("test debug");
39
+ expect(consoleFns.log).toBeCalledTimes(2);
40
+ expect(consoleFns.log).toBeCalledWith("player - debug -", "test debug");
41
+
42
+ logger.error("errrr");
43
+ expect(consoleFns.error).toBeCalledTimes(1);
44
+ expect(consoleFns.error).toBeCalledWith("player - error -", "errrr");
45
+ });
46
+ });
@@ -0,0 +1,13 @@
1
+ import { test, expect } from "vitest";
2
+ import { NoopLogger, severities } from "..";
3
+ import type { LogFn } from "../types";
4
+
5
+ test("does nothing - like it should", () => {
6
+ const logger = new NoopLogger();
7
+
8
+ severities.forEach((s) => {
9
+ (logger[s] as LogFn)("foo");
10
+ });
11
+
12
+ expect(true).toBe(true);
13
+ });
@@ -0,0 +1,31 @@
1
+ import { test, expect, vitest } from "vitest";
2
+ import type { Logger } from "../types";
3
+ import ProxyLogger from "../proxyLogger";
4
+
5
+ test("proxyLogger works with no logger", () => {
6
+ const proxyLogger = new ProxyLogger(() => undefined);
7
+ expect(() => proxyLogger.info("foo")).not.toThrow();
8
+ });
9
+
10
+ test("calls real logger when set", () => {
11
+ const testLogger: Logger = {
12
+ trace: vitest.fn(),
13
+ debug: vitest.fn(),
14
+ info: vitest.fn(),
15
+ warn: vitest.fn(),
16
+ error: vitest.fn(),
17
+ };
18
+
19
+ let useTestLogger = false;
20
+
21
+ const proxyLogger = new ProxyLogger(() =>
22
+ useTestLogger ? testLogger : undefined,
23
+ );
24
+
25
+ proxyLogger.error("err");
26
+ expect(testLogger.error).toBeCalledTimes(0);
27
+
28
+ useTestLogger = true;
29
+ proxyLogger.error("err");
30
+ expect(testLogger.error).toBeCalledTimes(1);
31
+ });
@@ -0,0 +1,41 @@
1
+ import { test, expect, vitest } from "vitest";
2
+ import { TapableLogger } from "..";
3
+ import type { Logger } from "../types";
4
+ import { severities } from "../types";
5
+
6
+ test("works via logger api", () => {
7
+ const logger = new TapableLogger();
8
+
9
+ const testLogger: Logger = {
10
+ trace: vitest.fn(),
11
+ debug: vitest.fn(),
12
+ info: vitest.fn(),
13
+ warn: vitest.fn(),
14
+ error: vitest.fn(),
15
+ };
16
+
17
+ logger.addHandler(testLogger);
18
+
19
+ severities.forEach((s) => {
20
+ logger[s](s);
21
+ });
22
+
23
+ severities.forEach((s) => {
24
+ expect(testLogger[s]).toBeCalledTimes(1);
25
+ expect(testLogger[s]).toBeCalledWith(s);
26
+ });
27
+
28
+ severities.forEach((s) => {
29
+ (testLogger[s] as jest.Mock<any, any>).mockClear();
30
+ });
31
+
32
+ logger.removeHandler(testLogger);
33
+
34
+ severities.forEach((s) => {
35
+ logger[s](s);
36
+ });
37
+
38
+ severities.forEach((s) => {
39
+ expect(testLogger[s]).toBeCalledTimes(0);
40
+ });
41
+ });
@@ -1,14 +1,14 @@
1
- import type { Logger, Severity } from './types';
2
- import { severities } from './types';
1
+ import type { Logger, Severity } from "./types";
2
+ import { severities } from "./types";
3
3
 
4
- export type ConsoleHandler = Pick<typeof console, 'log' | 'warn' | 'error'>;
4
+ export type ConsoleHandler = Pick<typeof console, "log" | "warn" | "error">;
5
5
 
6
6
  /** A Logger implementation that uses console */
7
7
  export default class ConsoleLogger implements Logger {
8
8
  private severity: Severity;
9
9
  private _console: ConsoleHandler;
10
10
 
11
- constructor(severity: Severity = 'warn', _console: ConsoleHandler = console) {
11
+ constructor(severity: Severity = "warn", _console: ConsoleHandler = console) {
12
12
  this.severity = severity;
13
13
  this._console = _console;
14
14
  }
@@ -41,9 +41,9 @@ export default class ConsoleLogger implements Logger {
41
41
  };
42
42
  }
43
43
 
44
- public readonly trace = this.createHandler('trace');
45
- public readonly debug = this.createHandler('debug');
46
- public readonly info = this.createHandler('info');
47
- public readonly warn = this.createHandler('warn');
48
- public readonly error = this.createHandler('error');
44
+ public readonly trace = this.createHandler("trace");
45
+ public readonly debug = this.createHandler("debug");
46
+ public readonly info = this.createHandler("info");
47
+ public readonly warn = this.createHandler("warn");
48
+ public readonly error = this.createHandler("error");
49
49
  }
@@ -1,5 +1,5 @@
1
- export * from './types';
2
- export { default as ConsoleLogger } from './consoleLogger';
3
- export { default as NoopLogger } from './noopLogger';
4
- export { default as TapableLogger } from './tapableLogger';
5
- export { default as ProxyLogger } from './proxyLogger';
1
+ export * from "./types";
2
+ export { default as ConsoleLogger } from "./consoleLogger";
3
+ export { default as NoopLogger } from "./noopLogger";
4
+ export { default as TapableLogger } from "./tapableLogger";
5
+ export { default as ProxyLogger } from "./proxyLogger";
@@ -1,4 +1,4 @@
1
- import type { Logger } from './types';
1
+ import type { Logger } from "./types";
2
2
 
3
3
  /** An empty function so the logger ignore everything */
4
4
  const noop = () => {};
@@ -1,4 +1,4 @@
1
- import type { Logger, Severity, LoggerProvider } from './types';
1
+ import type { Logger, Severity, LoggerProvider } from "./types";
2
2
 
3
3
  /**
4
4
  * The ProxyLogger allows a user to log to another Logger instance that may not exist yet
@@ -17,9 +17,9 @@ export default class ProxyLogger implements Logger {
17
17
  };
18
18
  }
19
19
 
20
- public readonly trace = this.createHandler('trace');
21
- public readonly debug = this.createHandler('debug');
22
- public readonly info = this.createHandler('info');
23
- public readonly warn = this.createHandler('warn');
24
- public readonly error = this.createHandler('error');
20
+ public readonly trace = this.createHandler("trace");
21
+ public readonly debug = this.createHandler("debug");
22
+ public readonly info = this.createHandler("info");
23
+ public readonly warn = this.createHandler("warn");
24
+ public readonly error = this.createHandler("error");
25
25
  }
@@ -1,5 +1,5 @@
1
- import { SyncHook } from 'tapable-ts';
2
- import type { Logger, Severity } from './types';
1
+ import { SyncHook } from "tapable-ts";
2
+ import type { Logger, Severity } from "./types";
3
3
 
4
4
  /** A logger that has a tapable subscriptions to callbacks */
5
5
  export default class TapableLogger implements Logger {
@@ -30,9 +30,9 @@ export default class TapableLogger implements Logger {
30
30
  this.logHandlers.delete(logHandler);
31
31
  }
32
32
 
33
- public readonly trace = this.createHandler('trace');
34
- public readonly debug = this.createHandler('debug');
35
- public readonly info = this.createHandler('info');
36
- public readonly warn = this.createHandler('warn');
37
- public readonly error = this.createHandler('error');
33
+ public readonly trace = this.createHandler("trace");
34
+ public readonly debug = this.createHandler("debug");
35
+ public readonly info = this.createHandler("info");
36
+ public readonly warn = this.createHandler("warn");
37
+ public readonly error = this.createHandler("error");
38
38
  }
@@ -1,6 +1,6 @@
1
1
  export type LogFn = (...args: Array<any>) => void;
2
2
 
3
- export const severities = ['trace', 'debug', 'info', 'warn', 'error'] as const;
4
- export type Severity = typeof severities[number];
3
+ export const severities = ["trace", "debug", "info", "warn", "error"] as const;
4
+ export type Severity = (typeof severities)[number];
5
5
  export type Logger = Record<Severity, LogFn>;
6
6
  export type LoggerProvider = () => Logger | undefined;