@mokup/shared 1.0.1 → 1.1.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.
package/dist/chokidar.cjs CHANGED
@@ -1,7 +1,5 @@
1
1
  'use strict';
2
2
 
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
3
  const chokidar = require('chokidar');
6
4
 
7
5
  function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e.default : e; }
@@ -10,14 +8,4 @@ const chokidar__default = /*#__PURE__*/_interopDefaultCompat(chokidar);
10
8
 
11
9
 
12
10
 
13
- exports.default = chokidar__default;
14
- Object.prototype.hasOwnProperty.call(chokidar, '__proto__') &&
15
- !Object.prototype.hasOwnProperty.call(exports, '__proto__') &&
16
- Object.defineProperty(exports, '__proto__', {
17
- enumerable: true,
18
- value: chokidar['__proto__']
19
- });
20
-
21
- Object.keys(chokidar).forEach(function (k) {
22
- if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) exports[k] = chokidar[k];
23
- });
11
+ module.exports = chokidar__default;
package/dist/chokidar.mjs CHANGED
@@ -1,2 +1 @@
1
- export * from 'chokidar';
2
1
  export { default } from 'chokidar';
package/dist/index.d.cts CHANGED
@@ -1,15 +1,97 @@
1
+ /**
2
+ * Directory input for mock scanning.
3
+ *
4
+ * @example
5
+ * import type { DirInput } from '@mokup/shared'
6
+ *
7
+ * const dir: DirInput = ['mock', 'fixtures']
8
+ */
1
9
  type DirInput = string | string[] | ((root: string) => string | string[]) | undefined;
10
+ /**
11
+ * Shared entry options for mokup scanners and plugins.
12
+ *
13
+ * @example
14
+ * import type { MockEntryOptions } from '@mokup/shared'
15
+ *
16
+ * const entry: MockEntryOptions = {
17
+ * dir: 'mock',
18
+ * prefix: '/api',
19
+ * watch: true,
20
+ * }
21
+ */
2
22
  interface MockEntryOptions {
23
+ /**
24
+ * Directory (or directories) to scan for mock routes.
25
+ *
26
+ * @default "mock" (resolved by Vite/webpack plugins)
27
+ */
3
28
  dir?: DirInput;
29
+ /**
30
+ * Request path prefix to mount mock routes under.
31
+ *
32
+ * @default ""
33
+ */
4
34
  prefix?: string;
35
+ /**
36
+ * Include filter for files to scan.
37
+ *
38
+ * @default undefined
39
+ */
5
40
  include?: RegExp | RegExp[];
41
+ /**
42
+ * Exclude filter for files to scan.
43
+ *
44
+ * @default undefined
45
+ */
6
46
  exclude?: RegExp | RegExp[];
47
+ /**
48
+ * Ignore file or folder prefixes when scanning.
49
+ *
50
+ * @default ["."]
51
+ */
7
52
  ignorePrefix?: string | string[];
53
+ /**
54
+ * Enable file watching for live route updates.
55
+ *
56
+ * @default true
57
+ */
8
58
  watch?: boolean;
59
+ /**
60
+ * Enable mokup logging.
61
+ *
62
+ * @default true
63
+ */
9
64
  log?: boolean;
10
65
  }
66
+ /**
67
+ * Playground configuration input.
68
+ *
69
+ * @example
70
+ * import type { PlaygroundOptionsInput } from '@mokup/shared'
71
+ *
72
+ * const playground: PlaygroundOptionsInput = {
73
+ * path: '/__mokup',
74
+ * enabled: true,
75
+ * }
76
+ */
11
77
  type PlaygroundOptionsInput = boolean | {
78
+ /**
79
+ * Base path for the playground UI.
80
+ *
81
+ * @default "/__mokup"
82
+ */
12
83
  path?: string;
84
+ /**
85
+ * Emit playground assets during production builds.
86
+ *
87
+ * @default false
88
+ */
89
+ build?: boolean;
90
+ /**
91
+ * Enable or disable the playground routes.
92
+ *
93
+ * @default true
94
+ */
13
95
  enabled?: boolean;
14
96
  } | undefined;
15
97
 
package/dist/index.d.mts CHANGED
@@ -1,15 +1,97 @@
1
+ /**
2
+ * Directory input for mock scanning.
3
+ *
4
+ * @example
5
+ * import type { DirInput } from '@mokup/shared'
6
+ *
7
+ * const dir: DirInput = ['mock', 'fixtures']
8
+ */
1
9
  type DirInput = string | string[] | ((root: string) => string | string[]) | undefined;
10
+ /**
11
+ * Shared entry options for mokup scanners and plugins.
12
+ *
13
+ * @example
14
+ * import type { MockEntryOptions } from '@mokup/shared'
15
+ *
16
+ * const entry: MockEntryOptions = {
17
+ * dir: 'mock',
18
+ * prefix: '/api',
19
+ * watch: true,
20
+ * }
21
+ */
2
22
  interface MockEntryOptions {
23
+ /**
24
+ * Directory (or directories) to scan for mock routes.
25
+ *
26
+ * @default "mock" (resolved by Vite/webpack plugins)
27
+ */
3
28
  dir?: DirInput;
29
+ /**
30
+ * Request path prefix to mount mock routes under.
31
+ *
32
+ * @default ""
33
+ */
4
34
  prefix?: string;
35
+ /**
36
+ * Include filter for files to scan.
37
+ *
38
+ * @default undefined
39
+ */
5
40
  include?: RegExp | RegExp[];
41
+ /**
42
+ * Exclude filter for files to scan.
43
+ *
44
+ * @default undefined
45
+ */
6
46
  exclude?: RegExp | RegExp[];
47
+ /**
48
+ * Ignore file or folder prefixes when scanning.
49
+ *
50
+ * @default ["."]
51
+ */
7
52
  ignorePrefix?: string | string[];
53
+ /**
54
+ * Enable file watching for live route updates.
55
+ *
56
+ * @default true
57
+ */
8
58
  watch?: boolean;
59
+ /**
60
+ * Enable mokup logging.
61
+ *
62
+ * @default true
63
+ */
9
64
  log?: boolean;
10
65
  }
66
+ /**
67
+ * Playground configuration input.
68
+ *
69
+ * @example
70
+ * import type { PlaygroundOptionsInput } from '@mokup/shared'
71
+ *
72
+ * const playground: PlaygroundOptionsInput = {
73
+ * path: '/__mokup',
74
+ * enabled: true,
75
+ * }
76
+ */
11
77
  type PlaygroundOptionsInput = boolean | {
78
+ /**
79
+ * Base path for the playground UI.
80
+ *
81
+ * @default "/__mokup"
82
+ */
12
83
  path?: string;
84
+ /**
85
+ * Emit playground assets during production builds.
86
+ *
87
+ * @default false
88
+ */
89
+ build?: boolean;
90
+ /**
91
+ * Enable or disable the playground routes.
92
+ *
93
+ * @default true
94
+ */
13
95
  enabled?: boolean;
14
96
  } | undefined;
15
97
 
package/dist/index.d.ts CHANGED
@@ -1,15 +1,97 @@
1
+ /**
2
+ * Directory input for mock scanning.
3
+ *
4
+ * @example
5
+ * import type { DirInput } from '@mokup/shared'
6
+ *
7
+ * const dir: DirInput = ['mock', 'fixtures']
8
+ */
1
9
  type DirInput = string | string[] | ((root: string) => string | string[]) | undefined;
10
+ /**
11
+ * Shared entry options for mokup scanners and plugins.
12
+ *
13
+ * @example
14
+ * import type { MockEntryOptions } from '@mokup/shared'
15
+ *
16
+ * const entry: MockEntryOptions = {
17
+ * dir: 'mock',
18
+ * prefix: '/api',
19
+ * watch: true,
20
+ * }
21
+ */
2
22
  interface MockEntryOptions {
23
+ /**
24
+ * Directory (or directories) to scan for mock routes.
25
+ *
26
+ * @default "mock" (resolved by Vite/webpack plugins)
27
+ */
3
28
  dir?: DirInput;
29
+ /**
30
+ * Request path prefix to mount mock routes under.
31
+ *
32
+ * @default ""
33
+ */
4
34
  prefix?: string;
35
+ /**
36
+ * Include filter for files to scan.
37
+ *
38
+ * @default undefined
39
+ */
5
40
  include?: RegExp | RegExp[];
41
+ /**
42
+ * Exclude filter for files to scan.
43
+ *
44
+ * @default undefined
45
+ */
6
46
  exclude?: RegExp | RegExp[];
47
+ /**
48
+ * Ignore file or folder prefixes when scanning.
49
+ *
50
+ * @default ["."]
51
+ */
7
52
  ignorePrefix?: string | string[];
53
+ /**
54
+ * Enable file watching for live route updates.
55
+ *
56
+ * @default true
57
+ */
8
58
  watch?: boolean;
59
+ /**
60
+ * Enable mokup logging.
61
+ *
62
+ * @default true
63
+ */
9
64
  log?: boolean;
10
65
  }
66
+ /**
67
+ * Playground configuration input.
68
+ *
69
+ * @example
70
+ * import type { PlaygroundOptionsInput } from '@mokup/shared'
71
+ *
72
+ * const playground: PlaygroundOptionsInput = {
73
+ * path: '/__mokup',
74
+ * enabled: true,
75
+ * }
76
+ */
11
77
  type PlaygroundOptionsInput = boolean | {
78
+ /**
79
+ * Base path for the playground UI.
80
+ *
81
+ * @default "/__mokup"
82
+ */
12
83
  path?: string;
84
+ /**
85
+ * Emit playground assets during production builds.
86
+ *
87
+ * @default false
88
+ */
89
+ build?: boolean;
90
+ /**
91
+ * Enable or disable the playground routes.
92
+ *
93
+ * @default true
94
+ */
13
95
  enabled?: boolean;
14
96
  } | undefined;
15
97
 
@@ -0,0 +1,55 @@
1
+ 'use strict';
2
+
3
+ const browser = require('consola/browser');
4
+
5
+ const silentLogger = {
6
+ info: () => {
7
+ },
8
+ warn: () => {
9
+ },
10
+ error: () => {
11
+ },
12
+ log: () => {
13
+ }
14
+ };
15
+ function createLogger(options = true) {
16
+ const resolvedOptions = typeof options === "boolean" ? { enabled: options } : options;
17
+ const enabled = resolvedOptions?.enabled ?? true;
18
+ if (!enabled) {
19
+ return silentLogger;
20
+ }
21
+ const tag = resolvedOptions?.tag ?? "mokup";
22
+ const logger = browser.consola.withTag(tag);
23
+ return {
24
+ info: (...args) => {
25
+ if (args.length === 0) {
26
+ return;
27
+ }
28
+ const [first, ...rest] = args;
29
+ logger.info(first, ...rest);
30
+ },
31
+ warn: (...args) => {
32
+ if (args.length === 0) {
33
+ return;
34
+ }
35
+ const [first, ...rest] = args;
36
+ logger.warn(first, ...rest);
37
+ },
38
+ error: (...args) => {
39
+ if (args.length === 0) {
40
+ return;
41
+ }
42
+ const [first, ...rest] = args;
43
+ logger.error(first, ...rest);
44
+ },
45
+ log: (...args) => {
46
+ if (args.length === 0) {
47
+ return;
48
+ }
49
+ const [first, ...rest] = args;
50
+ logger.log(first, ...rest);
51
+ }
52
+ };
53
+ }
54
+
55
+ exports.createLogger = createLogger;
@@ -0,0 +1,21 @@
1
+ import { L as LoggerOptions, a as Logger } from './shared/shared.DazgCdsk.cjs';
2
+
3
+ /**
4
+ * Create a tagged logger backed by consola for the browser.
5
+ *
6
+ * @param options - Logger configuration or a boolean toggle.
7
+ * @returns A logger implementation that respects the enabled flag.
8
+ *
9
+ * @default
10
+ * @default
11
+ * @default
12
+ *
13
+ * @example
14
+ * import { createLogger } from '@mokup/shared/logger.browser'
15
+ *
16
+ * const logger = createLogger({ tag: 'mokup' })
17
+ * logger.info('ready')
18
+ */
19
+ declare function createLogger(options?: LoggerOptions | boolean): Logger;
20
+
21
+ export { Logger, LoggerOptions, createLogger };
@@ -0,0 +1,21 @@
1
+ import { L as LoggerOptions, a as Logger } from './shared/shared.DazgCdsk.mjs';
2
+
3
+ /**
4
+ * Create a tagged logger backed by consola for the browser.
5
+ *
6
+ * @param options - Logger configuration or a boolean toggle.
7
+ * @returns A logger implementation that respects the enabled flag.
8
+ *
9
+ * @default
10
+ * @default
11
+ * @default
12
+ *
13
+ * @example
14
+ * import { createLogger } from '@mokup/shared/logger.browser'
15
+ *
16
+ * const logger = createLogger({ tag: 'mokup' })
17
+ * logger.info('ready')
18
+ */
19
+ declare function createLogger(options?: LoggerOptions | boolean): Logger;
20
+
21
+ export { Logger, LoggerOptions, createLogger };
@@ -0,0 +1,21 @@
1
+ import { L as LoggerOptions, a as Logger } from './shared/shared.DazgCdsk.js';
2
+
3
+ /**
4
+ * Create a tagged logger backed by consola for the browser.
5
+ *
6
+ * @param options - Logger configuration or a boolean toggle.
7
+ * @returns A logger implementation that respects the enabled flag.
8
+ *
9
+ * @default
10
+ * @default
11
+ * @default
12
+ *
13
+ * @example
14
+ * import { createLogger } from '@mokup/shared/logger.browser'
15
+ *
16
+ * const logger = createLogger({ tag: 'mokup' })
17
+ * logger.info('ready')
18
+ */
19
+ declare function createLogger(options?: LoggerOptions | boolean): Logger;
20
+
21
+ export { Logger, LoggerOptions, createLogger };
@@ -0,0 +1,53 @@
1
+ import { consola } from 'consola/browser';
2
+
3
+ const silentLogger = {
4
+ info: () => {
5
+ },
6
+ warn: () => {
7
+ },
8
+ error: () => {
9
+ },
10
+ log: () => {
11
+ }
12
+ };
13
+ function createLogger(options = true) {
14
+ const resolvedOptions = typeof options === "boolean" ? { enabled: options } : options;
15
+ const enabled = resolvedOptions?.enabled ?? true;
16
+ if (!enabled) {
17
+ return silentLogger;
18
+ }
19
+ const tag = resolvedOptions?.tag ?? "mokup";
20
+ const logger = consola.withTag(tag);
21
+ return {
22
+ info: (...args) => {
23
+ if (args.length === 0) {
24
+ return;
25
+ }
26
+ const [first, ...rest] = args;
27
+ logger.info(first, ...rest);
28
+ },
29
+ warn: (...args) => {
30
+ if (args.length === 0) {
31
+ return;
32
+ }
33
+ const [first, ...rest] = args;
34
+ logger.warn(first, ...rest);
35
+ },
36
+ error: (...args) => {
37
+ if (args.length === 0) {
38
+ return;
39
+ }
40
+ const [first, ...rest] = args;
41
+ logger.error(first, ...rest);
42
+ },
43
+ log: (...args) => {
44
+ if (args.length === 0) {
45
+ return;
46
+ }
47
+ const [first, ...rest] = args;
48
+ logger.log(first, ...rest);
49
+ }
50
+ };
51
+ }
52
+
53
+ export { createLogger };
@@ -0,0 +1,55 @@
1
+ 'use strict';
2
+
3
+ const consola = require('consola');
4
+
5
+ const silentLogger = {
6
+ info: () => {
7
+ },
8
+ warn: () => {
9
+ },
10
+ error: () => {
11
+ },
12
+ log: () => {
13
+ }
14
+ };
15
+ function createLogger(options = true) {
16
+ const resolvedOptions = typeof options === "boolean" ? { enabled: options } : options;
17
+ const enabled = resolvedOptions?.enabled ?? true;
18
+ if (!enabled) {
19
+ return silentLogger;
20
+ }
21
+ const tag = resolvedOptions?.tag ?? "mokup";
22
+ const logger = consola.consola.withTag(tag);
23
+ return {
24
+ info: (...args) => {
25
+ if (args.length === 0) {
26
+ return;
27
+ }
28
+ const [first, ...rest] = args;
29
+ logger.info(first, ...rest);
30
+ },
31
+ warn: (...args) => {
32
+ if (args.length === 0) {
33
+ return;
34
+ }
35
+ const [first, ...rest] = args;
36
+ logger.warn(first, ...rest);
37
+ },
38
+ error: (...args) => {
39
+ if (args.length === 0) {
40
+ return;
41
+ }
42
+ const [first, ...rest] = args;
43
+ logger.error(first, ...rest);
44
+ },
45
+ log: (...args) => {
46
+ if (args.length === 0) {
47
+ return;
48
+ }
49
+ const [first, ...rest] = args;
50
+ logger.log(first, ...rest);
51
+ }
52
+ };
53
+ }
54
+
55
+ exports.createLogger = createLogger;
@@ -0,0 +1,21 @@
1
+ import { L as LoggerOptions, a as Logger } from './shared/shared.DazgCdsk.cjs';
2
+
3
+ /**
4
+ * Create a tagged logger backed by consola (Node.js).
5
+ *
6
+ * @param options - Logger configuration or a boolean toggle.
7
+ * @returns A logger implementation that respects the enabled flag.
8
+ *
9
+ * @default
10
+ * @default
11
+ * @default
12
+ *
13
+ * @example
14
+ * import { createLogger } from '@mokup/shared/logger'
15
+ *
16
+ * const logger = createLogger({ tag: 'mokup' })
17
+ * logger.info('ready')
18
+ */
19
+ declare function createLogger(options?: LoggerOptions | boolean): Logger;
20
+
21
+ export { Logger, LoggerOptions, createLogger };
@@ -0,0 +1,21 @@
1
+ import { L as LoggerOptions, a as Logger } from './shared/shared.DazgCdsk.mjs';
2
+
3
+ /**
4
+ * Create a tagged logger backed by consola (Node.js).
5
+ *
6
+ * @param options - Logger configuration or a boolean toggle.
7
+ * @returns A logger implementation that respects the enabled flag.
8
+ *
9
+ * @default
10
+ * @default
11
+ * @default
12
+ *
13
+ * @example
14
+ * import { createLogger } from '@mokup/shared/logger'
15
+ *
16
+ * const logger = createLogger({ tag: 'mokup' })
17
+ * logger.info('ready')
18
+ */
19
+ declare function createLogger(options?: LoggerOptions | boolean): Logger;
20
+
21
+ export { Logger, LoggerOptions, createLogger };
@@ -0,0 +1,21 @@
1
+ import { L as LoggerOptions, a as Logger } from './shared/shared.DazgCdsk.js';
2
+
3
+ /**
4
+ * Create a tagged logger backed by consola (Node.js).
5
+ *
6
+ * @param options - Logger configuration or a boolean toggle.
7
+ * @returns A logger implementation that respects the enabled flag.
8
+ *
9
+ * @default
10
+ * @default
11
+ * @default
12
+ *
13
+ * @example
14
+ * import { createLogger } from '@mokup/shared/logger'
15
+ *
16
+ * const logger = createLogger({ tag: 'mokup' })
17
+ * logger.info('ready')
18
+ */
19
+ declare function createLogger(options?: LoggerOptions | boolean): Logger;
20
+
21
+ export { Logger, LoggerOptions, createLogger };
@@ -0,0 +1,53 @@
1
+ import { consola } from 'consola';
2
+
3
+ const silentLogger = {
4
+ info: () => {
5
+ },
6
+ warn: () => {
7
+ },
8
+ error: () => {
9
+ },
10
+ log: () => {
11
+ }
12
+ };
13
+ function createLogger(options = true) {
14
+ const resolvedOptions = typeof options === "boolean" ? { enabled: options } : options;
15
+ const enabled = resolvedOptions?.enabled ?? true;
16
+ if (!enabled) {
17
+ return silentLogger;
18
+ }
19
+ const tag = resolvedOptions?.tag ?? "mokup";
20
+ const logger = consola.withTag(tag);
21
+ return {
22
+ info: (...args) => {
23
+ if (args.length === 0) {
24
+ return;
25
+ }
26
+ const [first, ...rest] = args;
27
+ logger.info(first, ...rest);
28
+ },
29
+ warn: (...args) => {
30
+ if (args.length === 0) {
31
+ return;
32
+ }
33
+ const [first, ...rest] = args;
34
+ logger.warn(first, ...rest);
35
+ },
36
+ error: (...args) => {
37
+ if (args.length === 0) {
38
+ return;
39
+ }
40
+ const [first, ...rest] = args;
41
+ logger.error(first, ...rest);
42
+ },
43
+ log: (...args) => {
44
+ if (args.length === 0) {
45
+ return;
46
+ }
47
+ const [first, ...rest] = args;
48
+ logger.log(first, ...rest);
49
+ }
50
+ };
51
+ }
52
+
53
+ export { createLogger };
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Minimal logger contract used by mokup packages.
3
+ *
4
+ * @example
5
+ * import type { Logger } from '@mokup/shared/logger'
6
+ *
7
+ * const logger: Logger = {
8
+ * info: console.log,
9
+ * warn: console.warn,
10
+ * error: console.error,
11
+ * }
12
+ */
13
+ interface Logger {
14
+ /** Log an informational message. */
15
+ info: (...args: unknown[]) => void;
16
+ /** Log a warning message. */
17
+ warn: (...args: unknown[]) => void;
18
+ /** Log an error message. */
19
+ error: (...args: unknown[]) => void;
20
+ /** Log a generic message (optional). */
21
+ log?: (...args: unknown[]) => void;
22
+ }
23
+ /**
24
+ * Options for creating a tagged logger.
25
+ *
26
+ * @example
27
+ * import type { LoggerOptions } from '@mokup/shared/logger'
28
+ *
29
+ * const options: LoggerOptions = {
30
+ * enabled: true,
31
+ * tag: 'mokup',
32
+ * }
33
+ */
34
+ interface LoggerOptions {
35
+ /**
36
+ * Enable or disable logging.
37
+ *
38
+ * @default true
39
+ */
40
+ enabled?: boolean;
41
+ /**
42
+ * Tag prefix attached to each log line.
43
+ *
44
+ * @default "mokup"
45
+ */
46
+ tag?: string;
47
+ }
48
+
49
+ export type { LoggerOptions as L, Logger as a };
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Minimal logger contract used by mokup packages.
3
+ *
4
+ * @example
5
+ * import type { Logger } from '@mokup/shared/logger'
6
+ *
7
+ * const logger: Logger = {
8
+ * info: console.log,
9
+ * warn: console.warn,
10
+ * error: console.error,
11
+ * }
12
+ */
13
+ interface Logger {
14
+ /** Log an informational message. */
15
+ info: (...args: unknown[]) => void;
16
+ /** Log a warning message. */
17
+ warn: (...args: unknown[]) => void;
18
+ /** Log an error message. */
19
+ error: (...args: unknown[]) => void;
20
+ /** Log a generic message (optional). */
21
+ log?: (...args: unknown[]) => void;
22
+ }
23
+ /**
24
+ * Options for creating a tagged logger.
25
+ *
26
+ * @example
27
+ * import type { LoggerOptions } from '@mokup/shared/logger'
28
+ *
29
+ * const options: LoggerOptions = {
30
+ * enabled: true,
31
+ * tag: 'mokup',
32
+ * }
33
+ */
34
+ interface LoggerOptions {
35
+ /**
36
+ * Enable or disable logging.
37
+ *
38
+ * @default true
39
+ */
40
+ enabled?: boolean;
41
+ /**
42
+ * Tag prefix attached to each log line.
43
+ *
44
+ * @default "mokup"
45
+ */
46
+ tag?: string;
47
+ }
48
+
49
+ export type { LoggerOptions as L, Logger as a };
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Minimal logger contract used by mokup packages.
3
+ *
4
+ * @example
5
+ * import type { Logger } from '@mokup/shared/logger'
6
+ *
7
+ * const logger: Logger = {
8
+ * info: console.log,
9
+ * warn: console.warn,
10
+ * error: console.error,
11
+ * }
12
+ */
13
+ interface Logger {
14
+ /** Log an informational message. */
15
+ info: (...args: unknown[]) => void;
16
+ /** Log a warning message. */
17
+ warn: (...args: unknown[]) => void;
18
+ /** Log an error message. */
19
+ error: (...args: unknown[]) => void;
20
+ /** Log a generic message (optional). */
21
+ log?: (...args: unknown[]) => void;
22
+ }
23
+ /**
24
+ * Options for creating a tagged logger.
25
+ *
26
+ * @example
27
+ * import type { LoggerOptions } from '@mokup/shared/logger'
28
+ *
29
+ * const options: LoggerOptions = {
30
+ * enabled: true,
31
+ * tag: 'mokup',
32
+ * }
33
+ */
34
+ interface LoggerOptions {
35
+ /**
36
+ * Enable or disable logging.
37
+ *
38
+ * @default true
39
+ */
40
+ enabled?: boolean;
41
+ /**
42
+ * Tag prefix attached to each log line.
43
+ *
44
+ * @default "mokup"
45
+ */
46
+ tag?: string;
47
+ }
48
+
49
+ export type { LoggerOptions as L, Logger as a };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@mokup/shared",
3
3
  "type": "module",
4
- "version": "1.0.1",
4
+ "version": "1.1.0",
5
5
  "description": "Shared dependency exports for mokup.",
6
6
  "license": "MIT",
7
7
  "homepage": "https://mokup.icebreaker.top",
@@ -31,6 +31,13 @@
31
31
  "import": "./dist/hono.mjs",
32
32
  "require": "./dist/hono.cjs"
33
33
  },
34
+ "./logger": {
35
+ "types": "./dist/logger.d.ts",
36
+ "browser": "./dist/logger.browser.mjs",
37
+ "worker": "./dist/logger.browser.mjs",
38
+ "import": "./dist/logger.mjs",
39
+ "require": "./dist/logger.cjs"
40
+ },
34
41
  "./pathe": {
35
42
  "types": "./dist/pathe.d.ts",
36
43
  "import": "./dist/pathe.mjs",
@@ -53,6 +60,7 @@
53
60
  ],
54
61
  "dependencies": {
55
62
  "chokidar": "^5.0.0",
63
+ "consola": "^3.4.2",
56
64
  "esbuild": "^0.27.2",
57
65
  "hono": "^4.11.5",
58
66
  "jsonc-parser": "^3.3.1",