@metamask/snaps-sdk
Version:
A library containing the core functionality for building MetaMask Snaps
1 lines • 1.6 kB
Source Map (JSON)
{"version":3,"file":"uri.mjs","sourceRoot":"","sources":["../../src/internals/uri.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,MAAM,EACN,IAAI,EACJ,MAAM,IAAI,iBAAiB,EAC3B,WAAW,EACZ,8BAA8B;AAG/B,OAAO,EAAE,eAAe,EAAE,qBAAiB;AAW3C,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,OAAwB,EAAE,EAAE,EAAE,CAChD,MAAM,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;IAChC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;QAE3B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;YACjC,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;QACD,OAAO,sBAAsB,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC;IACnD,CAAC;AACH,CAAC,CAAC,CAAC","sourcesContent":["import {\n refine,\n string,\n type,\n assert as assertSuperstruct,\n StructError,\n} from '@metamask/superstruct';\nimport type { Struct } from '@metamask/superstruct';\n\nimport { getErrorMessage } from './errors';\n\nexport type UriOptions<Type extends string> = {\n protocol?: Struct<Type>;\n hash?: Struct<Type>;\n port?: Struct<Type>;\n hostname?: Struct<Type>;\n pathname?: Struct<Type>;\n search?: Struct<Type>;\n};\n\nexport const uri = (opts: UriOptions<any> = {}) =>\n refine(string(), 'uri', (value) => {\n try {\n const url = new URL(value);\n\n const UrlStruct = type(opts);\n assertSuperstruct(url, UrlStruct);\n return true;\n } catch (error) {\n if (error instanceof StructError) {\n return getErrorMessage(error);\n }\n return `Expected URL, got \"${value.toString()}\"`;\n }\n });\n"]}