@milkdown/exception
Advanced tools
+3
-1
@@ -17,4 +17,6 @@ export declare enum ErrorCode { | ||
| ctxNotBind = "ctxNotBind", | ||
| missingYjsDoc = "missingYjsDoc" | ||
| missingYjsDoc = "missingYjsDoc", | ||
| aiProviderError = "aiProviderError", | ||
| aiBuildContextError = "aiBuildContextError" | ||
| } | ||
| //# sourceMappingURL=code.d.ts.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"code.d.ts","sourceRoot":"","sources":["../src/code.ts"],"names":[],"mappings":"AAAA,oBAAY,SAAS;IACnB,YAAY,iBAAiB;IAC7B,eAAe,oBAAoB;IACnC,aAAa,kBAAkB;IAC/B,iBAAiB,sBAAsB;IACvC,sBAAsB,2BAA2B;IACjD,aAAa,kBAAkB;IAC/B,gBAAgB,qBAAqB;IACrC,oBAAoB,yBAAyB;IAC7C,qBAAqB,0BAA0B;IAC/C,kBAAkB,uBAAuB;IACzC,2BAA2B,gCAAgC;IAC3D,kBAAkB,uBAAuB;IACzC,mBAAmB,wBAAwB;IAC3C,mBAAmB,wBAAwB;IAG3C,UAAU,eAAe;IACzB,aAAa,kBAAkB;CAChC"} | ||
| {"version":3,"file":"code.d.ts","sourceRoot":"","sources":["../src/code.ts"],"names":[],"mappings":"AAAA,oBAAY,SAAS;IACnB,YAAY,iBAAiB;IAC7B,eAAe,oBAAoB;IACnC,aAAa,kBAAkB;IAC/B,iBAAiB,sBAAsB;IACvC,sBAAsB,2BAA2B;IACjD,aAAa,kBAAkB;IAC/B,gBAAgB,qBAAqB;IACrC,oBAAoB,yBAAyB;IAC7C,qBAAqB,0BAA0B;IAC/C,kBAAkB,uBAAuB;IACzC,2BAA2B,gCAAgC;IAC3D,kBAAkB,uBAAuB;IACzC,mBAAmB,wBAAwB;IAC3C,mBAAmB,wBAAwB;IAG3C,UAAU,eAAe;IACzB,aAAa,kBAAkB;IAG/B,eAAe,oBAAoB;IACnC,mBAAmB,wBAAwB;CAC5C"} |
+5
-2
| import type { ErrorCode } from './code'; | ||
| export declare class MilkdownError extends Error { | ||
| code: string; | ||
| constructor(code: ErrorCode, message: string); | ||
| readonly code: ErrorCode; | ||
| cause?: unknown; | ||
| constructor(code: ErrorCode, message: string, options?: { | ||
| cause?: unknown; | ||
| }); | ||
| } | ||
| //# sourceMappingURL=error.d.ts.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAEvC,qBAAa,aAAc,SAAQ,KAAK;IAC/B,IAAI,EAAE,MAAM,CAAA;gBACP,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM;CAK7C"} | ||
| {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAEvC,qBAAa,aAAc,SAAQ,KAAK;IACtC,SAAgB,IAAI,EAAE,SAAS,CAAA;IACf,KAAK,CAAC,EAAE,OAAO,CAAA;gBACnB,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE;CAQ5E"} |
+4
-0
| import { MilkdownError } from './error'; | ||
| export { ErrorCode } from './code'; | ||
| export { MilkdownError } from './error'; | ||
| export declare function docTypeError(type: unknown): MilkdownError; | ||
@@ -18,2 +20,4 @@ export declare function contextNotFound(name: string): MilkdownError; | ||
| export declare function missingYjsDoc(): MilkdownError; | ||
| export declare function aiProviderError(cause: unknown): MilkdownError; | ||
| export declare function aiBuildContextError(cause: unknown): MilkdownError; | ||
| //# sourceMappingURL=index.d.ts.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAOvC,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,iBAKzC;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,iBAK3C;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,iBAKzC;AAED,wBAAgB,iBAAiB,kBAKhC;AAED,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,OAAO,EACf,OAAO,CAAC,EAAE,OAAO,EAAE,iBAqEpB;AAED,wBAAgB,aAAa,kBAK5B;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,OAAO,iBAK7C;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,OAAO,iBAKjD;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,iBAKxE;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,OAAO,iBAK/C;AAED,wBAAgB,2BAA2B,kBAK1C;AAED,wBAAgB,kBAAkB,kBAKjC;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,iBAK/C;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,iBAK/C;AAED,wBAAgB,UAAU,kBAKzB;AAED,wBAAgB,aAAa,kBAK5B"} | ||
| {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAEvC,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAOvC,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,iBAKzC;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,iBAK3C;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,iBAKzC;AAED,wBAAgB,iBAAiB,kBAKhC;AAED,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,OAAO,EACf,OAAO,CAAC,EAAE,OAAO,EAAE,iBAqEpB;AAED,wBAAgB,aAAa,kBAK5B;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,OAAO,iBAK7C;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,OAAO,iBAKjD;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,iBAKxE;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,OAAO,iBAK/C;AAED,wBAAgB,2BAA2B,kBAK1C;AAED,wBAAgB,kBAAkB,kBAKjC;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,iBAK/C;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,iBAK/C;AAED,wBAAgB,UAAU,kBAKzB;AAED,wBAAgB,aAAa,kBAK5B;AAUD,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,iBAO7C;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,iBAOjD"} |
+21
-3
@@ -19,2 +19,4 @@ //#region src/code.ts | ||
| ErrorCode["missingYjsDoc"] = "missingYjsDoc"; | ||
| ErrorCode["aiProviderError"] = "aiProviderError"; | ||
| ErrorCode["aiBuildContextError"] = "aiBuildContextError"; | ||
| return ErrorCode; | ||
@@ -25,6 +27,7 @@ }({}); | ||
| var MilkdownError = class extends Error { | ||
| constructor(code, message) { | ||
| super(message); | ||
| constructor(code, message, options) { | ||
| super(message, options); | ||
| this.name = "MilkdownError"; | ||
| this.code = code; | ||
| if (options?.cause !== void 0) this.cause = options.cause; | ||
| } | ||
@@ -113,5 +116,20 @@ }; | ||
| } | ||
| function safeStringify(value) { | ||
| try { | ||
| return stringify(value); | ||
| } catch { | ||
| return "[Unserializable]"; | ||
| } | ||
| } | ||
| function aiProviderError(cause) { | ||
| const message = cause instanceof Error ? cause.message : safeStringify(cause); | ||
| return new MilkdownError(ErrorCode.aiProviderError, `AI provider error: ${message}`, { cause }); | ||
| } | ||
| function aiBuildContextError(cause) { | ||
| const message = cause instanceof Error ? cause.message : safeStringify(cause); | ||
| return new MilkdownError(ErrorCode.aiBuildContextError, `AI buildContext failed: ${message}`, { cause }); | ||
| } | ||
| //#endregion | ||
| export { callCommandBeforeEditorView, contextNotFound, createNodeInParserFail, ctxCallOutOfScope, ctxNotBind, docTypeError, expectDomTypeError, getAtomFromSchemaFail, missingMarkInSchema, missingNodeInSchema, missingRootElement, missingYjsDoc, parserMatchError, serializerMatchError, stackOverFlow, timerNotFound }; | ||
| export { ErrorCode, MilkdownError, aiBuildContextError, aiProviderError, callCommandBeforeEditorView, contextNotFound, createNodeInParserFail, ctxCallOutOfScope, ctxNotBind, docTypeError, expectDomTypeError, getAtomFromSchemaFail, missingMarkInSchema, missingNodeInSchema, missingRootElement, missingYjsDoc, parserMatchError, serializerMatchError, stackOverFlow, timerNotFound }; | ||
| //# sourceMappingURL=index.js.map |
+1
-1
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.js","names":[],"sources":["../src/code.ts","../src/error.ts","../src/index.ts"],"sourcesContent":["export enum ErrorCode {\n docTypeError = 'docTypeError',\n contextNotFound = 'contextNotFound',\n timerNotFound = 'timerNotFound',\n ctxCallOutOfScope = 'ctxCallOutOfScope',\n createNodeInParserFail = 'createNodeInParserFail',\n stackOverFlow = 'stackOverFlow',\n parserMatchError = 'parserMatchError',\n serializerMatchError = 'serializerMatchError',\n getAtomFromSchemaFail = 'getAtomFromSchemaFail',\n expectDomTypeError = 'expectDomTypeError',\n callCommandBeforeEditorView = 'callCommandBeforeEditorView',\n missingRootElement = 'missingRootElement',\n missingNodeInSchema = 'missingNodeInSchema',\n missingMarkInSchema = 'missingMarkInSchema',\n\n // collab plugin\n ctxNotBind = 'ctxNotBind',\n missingYjsDoc = 'missingYjsDoc',\n}\n","import type { ErrorCode } from './code'\n\nexport class MilkdownError extends Error {\n public code: string\n constructor(code: ErrorCode, message: string) {\n super(message)\n this.name = 'MilkdownError'\n this.code = code\n }\n}\n","import { ErrorCode } from './code'\nimport { MilkdownError } from './error'\n\nconst functionReplacer = (_: string, value: unknown) =>\n typeof value === 'function' ? '[Function]' : value\n\nconst stringify = (x: unknown): string => JSON.stringify(x, functionReplacer)\n\nexport function docTypeError(type: unknown) {\n return new MilkdownError(\n ErrorCode.docTypeError,\n `Doc type error, unsupported type: ${stringify(type)}`\n )\n}\n\nexport function contextNotFound(name: string) {\n return new MilkdownError(\n ErrorCode.contextNotFound,\n `Context \"${name}\" not found, do you forget to inject it?`\n )\n}\n\nexport function timerNotFound(name: string) {\n return new MilkdownError(\n ErrorCode.timerNotFound,\n `Timer \"${name}\" not found, do you forget to record it?`\n )\n}\n\nexport function ctxCallOutOfScope() {\n return new MilkdownError(\n ErrorCode.ctxCallOutOfScope,\n 'Should not call a context out of the plugin.'\n )\n}\n\nexport function createNodeInParserFail(\n nodeType: object,\n attrs?: unknown,\n content?: unknown[]\n) {\n const nodeTypeName = 'name' in nodeType ? nodeType.name : nodeType\n const heading = `Cannot create node for ${nodeTypeName}`\n const serialize = (x: unknown): string => {\n if (x == null) return 'null'\n\n if (Array.isArray(x)) {\n return `[${x.map(serialize).join(', ')}]`\n }\n\n if (typeof x === 'object') {\n if ('toJSON' in x && typeof (x as any).toJSON === 'function') {\n return JSON.stringify((x as any).toJSON())\n }\n\n if ('spec' in x) {\n return JSON.stringify((x as any).spec)\n }\n\n return JSON.stringify(x)\n }\n\n if (\n typeof x === 'string' ||\n typeof x === 'number' ||\n typeof x === 'boolean'\n ) {\n return JSON.stringify(x)\n }\n\n if (typeof x === 'function') {\n return `[Function: ${(x as Function).name || 'anonymous'}]`\n }\n\n try {\n return String(x)\n } catch {\n return '[Unserializable]'\n }\n }\n\n const headingMessage = ['[Description]', heading] as const\n const attrsMessage = ['[Attributes]', attrs] as const\n const contentMessage = [\n '[Content]',\n (content ?? []).map((node) => {\n if (!node) return 'null'\n\n if (typeof node === 'object' && 'type' in node) {\n return `${node}`\n }\n\n return serialize(node)\n }),\n ] as const\n\n const messages = [headingMessage, attrsMessage, contentMessage].reduce(\n (acc, [title, value]) => {\n const message = `${title}: ${serialize(value)}.`\n return acc.concat(message)\n },\n [] as string[]\n )\n\n return new MilkdownError(\n ErrorCode.createNodeInParserFail,\n messages.join('\\n')\n )\n}\n\nexport function stackOverFlow() {\n return new MilkdownError(\n ErrorCode.stackOverFlow,\n 'Stack over flow, cannot pop on an empty stack.'\n )\n}\n\nexport function parserMatchError(node: unknown) {\n return new MilkdownError(\n ErrorCode.parserMatchError,\n `Cannot match target parser for node: ${stringify(node)}.`\n )\n}\n\nexport function serializerMatchError(node: unknown) {\n return new MilkdownError(\n ErrorCode.serializerMatchError,\n `Cannot match target serializer for node: ${stringify(node)}.`\n )\n}\n\nexport function getAtomFromSchemaFail(type: 'mark' | 'node', name: string) {\n return new MilkdownError(\n ErrorCode.getAtomFromSchemaFail,\n `Cannot get ${type}: ${name} from schema.`\n )\n}\n\nexport function expectDomTypeError(node: unknown) {\n return new MilkdownError(\n ErrorCode.expectDomTypeError,\n `Expect to be a dom, but get: ${stringify(node)}.`\n )\n}\n\nexport function callCommandBeforeEditorView() {\n return new MilkdownError(\n ErrorCode.callCommandBeforeEditorView,\n \"You're trying to call a command before editor view initialized, make sure to get commandManager from ctx after editor view has been initialized\"\n )\n}\n\nexport function missingRootElement() {\n return new MilkdownError(\n ErrorCode.missingRootElement,\n 'Missing root element, milkdown cannot find root element of the editor.'\n )\n}\n\nexport function missingNodeInSchema(name: string) {\n return new MilkdownError(\n ErrorCode.missingNodeInSchema,\n `Missing node in schema, milkdown cannot find \"${name}\" in schema.`\n )\n}\n\nexport function missingMarkInSchema(name: string) {\n return new MilkdownError(\n ErrorCode.missingMarkInSchema,\n `Missing mark in schema, milkdown cannot find \"${name}\" in schema.`\n )\n}\n\nexport function ctxNotBind() {\n return new MilkdownError(\n ErrorCode.ctxNotBind,\n 'Context not bind, please make sure the plugin has been initialized.'\n )\n}\n\nexport function missingYjsDoc() {\n return new MilkdownError(\n ErrorCode.missingYjsDoc,\n 'Missing yjs doc, please make sure you have bind one.'\n )\n}\n"],"mappings":"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"} | ||
| {"version":3,"file":"index.js","names":[],"sources":["../src/code.ts","../src/error.ts","../src/index.ts"],"sourcesContent":["export enum ErrorCode {\n docTypeError = 'docTypeError',\n contextNotFound = 'contextNotFound',\n timerNotFound = 'timerNotFound',\n ctxCallOutOfScope = 'ctxCallOutOfScope',\n createNodeInParserFail = 'createNodeInParserFail',\n stackOverFlow = 'stackOverFlow',\n parserMatchError = 'parserMatchError',\n serializerMatchError = 'serializerMatchError',\n getAtomFromSchemaFail = 'getAtomFromSchemaFail',\n expectDomTypeError = 'expectDomTypeError',\n callCommandBeforeEditorView = 'callCommandBeforeEditorView',\n missingRootElement = 'missingRootElement',\n missingNodeInSchema = 'missingNodeInSchema',\n missingMarkInSchema = 'missingMarkInSchema',\n\n // collab plugin\n ctxNotBind = 'ctxNotBind',\n missingYjsDoc = 'missingYjsDoc',\n\n // AI plugin\n aiProviderError = 'aiProviderError',\n aiBuildContextError = 'aiBuildContextError',\n}\n","import type { ErrorCode } from './code'\n\nexport class MilkdownError extends Error {\n public readonly code: ErrorCode\n public override cause?: unknown\n constructor(code: ErrorCode, message: string, options?: { cause?: unknown }) {\n super(message, options)\n this.name = 'MilkdownError'\n this.code = code\n if (options?.cause !== undefined) {\n this.cause = options.cause\n }\n }\n}\n","import { ErrorCode } from './code'\nimport { MilkdownError } from './error'\n\nexport { ErrorCode } from './code'\nexport { MilkdownError } from './error'\n\nconst functionReplacer = (_: string, value: unknown) =>\n typeof value === 'function' ? '[Function]' : value\n\nconst stringify = (x: unknown): string => JSON.stringify(x, functionReplacer)\n\nexport function docTypeError(type: unknown) {\n return new MilkdownError(\n ErrorCode.docTypeError,\n `Doc type error, unsupported type: ${stringify(type)}`\n )\n}\n\nexport function contextNotFound(name: string) {\n return new MilkdownError(\n ErrorCode.contextNotFound,\n `Context \"${name}\" not found, do you forget to inject it?`\n )\n}\n\nexport function timerNotFound(name: string) {\n return new MilkdownError(\n ErrorCode.timerNotFound,\n `Timer \"${name}\" not found, do you forget to record it?`\n )\n}\n\nexport function ctxCallOutOfScope() {\n return new MilkdownError(\n ErrorCode.ctxCallOutOfScope,\n 'Should not call a context out of the plugin.'\n )\n}\n\nexport function createNodeInParserFail(\n nodeType: object,\n attrs?: unknown,\n content?: unknown[]\n) {\n const nodeTypeName = 'name' in nodeType ? nodeType.name : nodeType\n const heading = `Cannot create node for ${nodeTypeName}`\n const serialize = (x: unknown): string => {\n if (x == null) return 'null'\n\n if (Array.isArray(x)) {\n return `[${x.map(serialize).join(', ')}]`\n }\n\n if (typeof x === 'object') {\n if ('toJSON' in x && typeof (x as any).toJSON === 'function') {\n return JSON.stringify((x as any).toJSON())\n }\n\n if ('spec' in x) {\n return JSON.stringify((x as any).spec)\n }\n\n return JSON.stringify(x)\n }\n\n if (\n typeof x === 'string' ||\n typeof x === 'number' ||\n typeof x === 'boolean'\n ) {\n return JSON.stringify(x)\n }\n\n if (typeof x === 'function') {\n return `[Function: ${(x as Function).name || 'anonymous'}]`\n }\n\n try {\n return String(x)\n } catch {\n return '[Unserializable]'\n }\n }\n\n const headingMessage = ['[Description]', heading] as const\n const attrsMessage = ['[Attributes]', attrs] as const\n const contentMessage = [\n '[Content]',\n (content ?? []).map((node) => {\n if (!node) return 'null'\n\n if (typeof node === 'object' && 'type' in node) {\n return `${node}`\n }\n\n return serialize(node)\n }),\n ] as const\n\n const messages = [headingMessage, attrsMessage, contentMessage].reduce(\n (acc, [title, value]) => {\n const message = `${title}: ${serialize(value)}.`\n return acc.concat(message)\n },\n [] as string[]\n )\n\n return new MilkdownError(\n ErrorCode.createNodeInParserFail,\n messages.join('\\n')\n )\n}\n\nexport function stackOverFlow() {\n return new MilkdownError(\n ErrorCode.stackOverFlow,\n 'Stack over flow, cannot pop on an empty stack.'\n )\n}\n\nexport function parserMatchError(node: unknown) {\n return new MilkdownError(\n ErrorCode.parserMatchError,\n `Cannot match target parser for node: ${stringify(node)}.`\n )\n}\n\nexport function serializerMatchError(node: unknown) {\n return new MilkdownError(\n ErrorCode.serializerMatchError,\n `Cannot match target serializer for node: ${stringify(node)}.`\n )\n}\n\nexport function getAtomFromSchemaFail(type: 'mark' | 'node', name: string) {\n return new MilkdownError(\n ErrorCode.getAtomFromSchemaFail,\n `Cannot get ${type}: ${name} from schema.`\n )\n}\n\nexport function expectDomTypeError(node: unknown) {\n return new MilkdownError(\n ErrorCode.expectDomTypeError,\n `Expect to be a dom, but get: ${stringify(node)}.`\n )\n}\n\nexport function callCommandBeforeEditorView() {\n return new MilkdownError(\n ErrorCode.callCommandBeforeEditorView,\n \"You're trying to call a command before editor view initialized, make sure to get commandManager from ctx after editor view has been initialized\"\n )\n}\n\nexport function missingRootElement() {\n return new MilkdownError(\n ErrorCode.missingRootElement,\n 'Missing root element, milkdown cannot find root element of the editor.'\n )\n}\n\nexport function missingNodeInSchema(name: string) {\n return new MilkdownError(\n ErrorCode.missingNodeInSchema,\n `Missing node in schema, milkdown cannot find \"${name}\" in schema.`\n )\n}\n\nexport function missingMarkInSchema(name: string) {\n return new MilkdownError(\n ErrorCode.missingMarkInSchema,\n `Missing mark in schema, milkdown cannot find \"${name}\" in schema.`\n )\n}\n\nexport function ctxNotBind() {\n return new MilkdownError(\n ErrorCode.ctxNotBind,\n 'Context not bind, please make sure the plugin has been initialized.'\n )\n}\n\nexport function missingYjsDoc() {\n return new MilkdownError(\n ErrorCode.missingYjsDoc,\n 'Missing yjs doc, please make sure you have bind one.'\n )\n}\n\nfunction safeStringify(value: unknown): string {\n try {\n return stringify(value)\n } catch {\n return '[Unserializable]'\n }\n}\n\nexport function aiProviderError(cause: unknown) {\n const message = cause instanceof Error ? cause.message : safeStringify(cause)\n return new MilkdownError(\n ErrorCode.aiProviderError,\n `AI provider error: ${message}`,\n { cause }\n )\n}\n\nexport function aiBuildContextError(cause: unknown) {\n const message = cause instanceof Error ? cause.message : safeStringify(cause)\n return new MilkdownError(\n ErrorCode.aiBuildContextError,\n `AI buildContext failed: ${message}`,\n { cause }\n )\n}\n"],"mappings":"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"} |
+1
-1
| { | ||
| "name": "@milkdown/exception", | ||
| "version": "7.20.0", | ||
| "version": "7.21.0", | ||
| "license": "MIT", | ||
@@ -5,0 +5,0 @@ "repository": { |
+4
-0
@@ -20,2 +20,6 @@ export enum ErrorCode { | ||
| missingYjsDoc = 'missingYjsDoc', | ||
| // AI plugin | ||
| aiProviderError = 'aiProviderError', | ||
| aiBuildContextError = 'aiBuildContextError', | ||
| } |
+7
-3
| import type { ErrorCode } from './code' | ||
| export class MilkdownError extends Error { | ||
| public code: string | ||
| constructor(code: ErrorCode, message: string) { | ||
| super(message) | ||
| public readonly code: ErrorCode | ||
| public override cause?: unknown | ||
| constructor(code: ErrorCode, message: string, options?: { cause?: unknown }) { | ||
| super(message, options) | ||
| this.name = 'MilkdownError' | ||
| this.code = code | ||
| if (options?.cause !== undefined) { | ||
| this.cause = options.cause | ||
| } | ||
| } | ||
| } |
+29
-0
| import { ErrorCode } from './code' | ||
| import { MilkdownError } from './error' | ||
| export { ErrorCode } from './code' | ||
| export { MilkdownError } from './error' | ||
| const functionReplacer = (_: string, value: unknown) => | ||
@@ -187,1 +190,27 @@ typeof value === 'function' ? '[Function]' : value | ||
| } | ||
| function safeStringify(value: unknown): string { | ||
| try { | ||
| return stringify(value) | ||
| } catch { | ||
| return '[Unserializable]' | ||
| } | ||
| } | ||
| export function aiProviderError(cause: unknown) { | ||
| const message = cause instanceof Error ? cause.message : safeStringify(cause) | ||
| return new MilkdownError( | ||
| ErrorCode.aiProviderError, | ||
| `AI provider error: ${message}`, | ||
| { cause } | ||
| ) | ||
| } | ||
| export function aiBuildContextError(cause: unknown) { | ||
| const message = cause instanceof Error ? cause.message : safeStringify(cause) | ||
| return new MilkdownError( | ||
| ErrorCode.aiBuildContextError, | ||
| `AI buildContext failed: ${message}`, | ||
| { cause } | ||
| ) | ||
| } |
Sorry, the diff of this file is not supported yet
42818
10.2%396
17.51%