UNPKG

openapi-metadata

Version:

Auto-Generate OpenAPI specifications from Typescript decorators

1 lines 2.35 kB
{"version":3,"file":"factory.mjs","sources":["../../src/metadata/factory.ts"],"sourcesContent":["import deepmerge from \"deepmerge\";\n\nexport function createMetadataStorage<T extends Object>(key: Symbol | string, defaultMetadata?: T) {\n function defineMetadata(object: Object, metadata: T, propertyKey?: string | symbol) {\n if (propertyKey) {\n Reflect.defineMetadata(key, metadata, object, propertyKey);\n } else {\n Reflect.defineMetadata(key, metadata, object);\n }\n }\n\n function getMetadata(object: Object, propertyKey?: string | symbol, withParent = false): T {\n if (propertyKey) {\n let metadata = Reflect.getMetadata(key, object, propertyKey) ?? defaultMetadata;\n\n if (withParent) {\n metadata = deepmerge(getMetadata(object.constructor), metadata);\n }\n\n return metadata;\n } else {\n return Reflect.getMetadata(key, object) ?? defaultMetadata;\n }\n }\n\n function mergeMetadata(object: Object, metadata: T, propertyKey?: string | symbol): T {\n const existing = getMetadata(object, propertyKey);\n const merged = deepmerge(existing, metadata) as T;\n defineMetadata(object, merged, propertyKey);\n return merged;\n }\n\n return {\n defineMetadata,\n getMetadata,\n mergeMetadata,\n };\n}\n"],"names":[],"mappings":";;AAEO,SAAS,qBAAA,CAAwC,KAAsB,eAAA,EAAqB;AACjG,EAAA,SAAS,cAAA,CAAe,MAAA,EAAgB,QAAA,EAAa,WAAA,EAA+B;AAClF,IAAA,IAAI,WAAA,EAAa;AACf,MAAA,OAAA,CAAQ,cAAA,CAAe,GAAA,EAAK,QAAA,EAAU,MAAA,EAAQ,WAAW,CAAA;AAAA,IAC3D,CAAA,MAAO;AACL,MAAA,OAAA,CAAQ,cAAA,CAAe,GAAA,EAAK,QAAA,EAAU,MAAM,CAAA;AAAA,IAC9C;AAAA,EACF;AAEA,EAAA,SAAS,WAAA,CAAY,MAAA,EAAgB,WAAA,EAA+B,UAAA,GAAa,KAAA,EAAU;AACzF,IAAA,IAAI,WAAA,EAAa;AACf,MAAA,IAAI,WAAW,OAAA,CAAQ,WAAA,CAAY,GAAA,EAAK,MAAA,EAAQ,WAAW,CAAA,IAAK,eAAA;AAEhE,MAAA,IAAI,UAAA,EAAY;AACd,QAAA,QAAA,GAAW,SAAA,CAAU,WAAA,CAAY,MAAA,CAAO,WAAW,GAAG,QAAQ,CAAA;AAAA,MAChE;AAEA,MAAA,OAAO,QAAA;AAAA,IACT,CAAA,MAAO;AACL,MAAA,OAAO,OAAA,CAAQ,WAAA,CAAY,GAAA,EAAK,MAAM,CAAA,IAAK,eAAA;AAAA,IAC7C;AAAA,EACF;AAEA,EAAA,SAAS,aAAA,CAAc,MAAA,EAAgB,QAAA,EAAa,WAAA,EAAkC;AACpF,IAAA,MAAM,QAAA,GAAW,WAAA,CAAY,MAAA,EAAQ,WAAW,CAAA;AAChD,IAAA,MAAM,MAAA,GAAS,SAAA,CAAU,QAAA,EAAU,QAAQ,CAAA;AAC3C,IAAA,cAAA,CAAe,MAAA,EAAQ,QAAQ,WAAW,CAAA;AAC1C,IAAA,OAAO,MAAA;AAAA,EACT;AAEA,EAAA,OAAO;AAAA,IACL,cAAA;AAAA,IACA,WAAA;AAAA,IACA;AAAA,GACF;AACF;;;;"}