UNPKG

@tpluscode/rdfine

Version:
22 lines (21 loc) 682 B
function setNamespace(clazz, ns) { clazz.__ns = ns; } const legacyNamespace = (ns, clazz) => { setNamespace(clazz, ns); return clazz; }; const standardNamespace = (ns, descriptor) => { const { kind, elements } = descriptor; return { kind, elements, // This callback is called once the class is otherwise fully defined finisher(clazz) { setNamespace(clazz, ns); }, }; }; export const namespace = (stringOrNamespace) => (classOrDescriptor) => (typeof classOrDescriptor === 'function') ? legacyNamespace(stringOrNamespace, classOrDescriptor) : standardNamespace(stringOrNamespace, classOrDescriptor);