@contentgrid/uri-template
Version:
RFC6570 URI template parser and expander
1 lines • 2.13 kB
Source Map (JSON)
{"version":3,"file":"index.mjs","sources":["../src/index.ts"],"sourcesContent":["import { default as createUriTemplate, URITemplate } from \"uri-templates\"\n\ntype TemplateValues = Record<string, string|Record<string, string>>;\n\nexport default class UriTemplate {\n readonly #parsed: URITemplate;\n constructor(public readonly template: string) {\n this.#parsed = createUriTemplate(template);\n }\n\n public expand(values: TemplateValues | readonly string[]): string {\n if(Array.isArray(values)) {\n let i = 0;\n return this.#parsed.fill((_varName) => {\n return values[i++];\n });\n } else {\n return this.#parsed.fill(values as TemplateValues);\n }\n }\n\n public get variables(): readonly string[] {\n return this.#parsed.varNames;\n }\n\n public match(uri: string): TemplateValues | null {\n return this.#parsed.fromUri(uri) ?? null;\n }\n}\n"],"names":["UriTemplate","constructor","template","_UriTemplate_parsed","set","__classPrivateFieldSet","createUriTemplate","expand","values","Array","isArray","i","__classPrivateFieldGet","fill","_varName","variables","varNames","match","uri","_a","fromUri"],"mappings":";;;;AAIA,MAAqBA,WAAW,CAAA;EAE5BC,WAAAA,CAA4BC,QAAgB,EAAA;IAAhB,IAAQ,CAAAA,QAAA,GAARA,QAAQ;AAD3BC,IAAAA,mBAAqB,CAAAC,GAAA,CAAA,IAAA,EAAA,MAAA,CAAA;IAE1BC,sBAAA,CAAA,IAAI,EAAWF,mBAAA,EAAAG,iBAAiB,CAACJ,QAAQ,CAAC,MAAA;AAC9C;EAEOK,MAAMA,CAACC,MAA0C,EAAA;AACpD,IAAA,IAAGC,KAAK,CAACC,OAAO,CAACF,MAAM,CAAC,EAAE;MACtB,IAAIG,CAAC,GAAG,CAAC;AACT,MAAA,OAAOC,sBAAA,CAAA,IAAI,EAAQT,mBAAA,EAAA,GAAA,CAAA,CAACU,IAAI,CAAEC,QAAQ,IAAI;AAClC,QAAA,OAAON,MAAM,CAACG,CAAC,EAAE,CAAC;AACtB,OAAC,CAAC;AACN,KAAC,MAAM;AACH,MAAA,OAAOC,sBAAA,CAAA,IAAI,EAAQT,mBAAA,EAAA,GAAA,CAAA,CAACU,IAAI,CAACL,MAAwB,CAAC;AACtD;AACJ;EAEA,IAAWO,SAASA,GAAA;IAChB,OAAOH,sBAAA,CAAA,IAAI,EAAQT,mBAAA,EAAA,GAAA,CAAA,CAACa,QAAQ;AAChC;EAEOC,KAAKA,CAACC,GAAW,EAAA;;IACpB,OAAO,CAAAC,EAAA,GAAAP,sBAAA,CAAA,IAAI,EAAQT,mBAAA,EAAA,GAAA,CAAA,CAACiB,OAAO,CAACF,GAAG,CAAC,MAAI,IAAA,IAAAC,EAAA,KAAA,MAAA,GAAAA,EAAA,GAAA,IAAI;AAC5C;AACH;;;;;"}