diff --git a/packages/utility-belt/index.d.ts b/packages/utility-belt/index.d.ts new file mode 100644 index 0000000..2271bf0 --- /dev/null +++ b/packages/utility-belt/index.d.ts @@ -0,0 +1,7 @@ +export type RequireOnly = Partial & + Required>; +export declare const isError: (error: unknown) => error is Error; +export declare const getErrorMessage: ( + error: unknown, + defaultMessage: string, +) => string; diff --git a/packages/utility-belt/index.js b/packages/utility-belt/index.js new file mode 100644 index 0000000..07f50f6 --- /dev/null +++ b/packages/utility-belt/index.js @@ -0,0 +1,16 @@ +/** + * + * @param {unknown} error The error object to check. + * @returns {error is Error} + */ +export const isError = (error) => error instanceof Error; + +/** + * Get the error message from an error object or return a default message. + * @param {unknown} error The error object to check. + * @param {string} defaultMessage The default message to return if the error is not an instance of Error. + * @returns {string} The error message or the default message. + */ +export const getErrorMessage = (error, defaultMessage) => { + return isError(error) ? error.message : defaultMessage; +}; diff --git a/packages/utility-belt/package.json b/packages/utility-belt/package.json new file mode 100644 index 0000000..fe4971b --- /dev/null +++ b/packages/utility-belt/package.json @@ -0,0 +1,23 @@ +{ + "name": "utility-belt", + "version": "1.0.0", + "description": "Some little utilities", + "main": "index.js", + "type": "module", + "scripts": { + "types": "tsc --emitDeclarationOnly --allowJs --declaration --skipLibCheck index.js" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/stevekinney/testing-javascript.git" + }, + "author": "Steve Kinney ", + "license": "MIT", + "bugs": { + "url": "https://github.com/stevekinney/testing-javascript/issues" + }, + "homepage": "https://github.com/stevekinney/testing-javascript#readme", + "devDependencies": { + "typescript": "^5.6.2" + } +} diff --git a/types.d.ts b/types.d.ts index 11f02fe..eae476b 100644 --- a/types.d.ts +++ b/types.d.ts @@ -1 +1,11 @@ /// + +declare module '*.html' { + const value: string; + export default value; +} + +declare module '*.html?raw' { + const value: string; + export default value; +}