@ganuz/define-metadata
TypeScript icon, indicating that this package has built-in type declarations

0.1.1 • Public • Published

@ganuz/define-metadata

Source Code Version MIT License Bundle Size TypeScript

Define Metadata is package from Ganuz library

Install

$ yarn add @ganuz/define-metadata

Or

$ npm install --save @ganuz/define-metadata

Use

Module

import {
  default as defineMetadata
} from '@ganuz/define-metadata';

Browser

<script src="https://unpkg.com/@ganuz/define-metadata/bundle.umd.min.js"></script>
let {
  defineMetadata
} = G;

Examples

 defineMetadata('key', 'value', null, 'prop'); // throw TypeError
 defineMetadata('foo', 'bar', {}); // => void
 defineMetadata('key', 'value', class {}, 'prop'); // => void
 class A{}
 class B extends A{}

 defineMetadata('color', 'red', B);
 defineMetadata(Number, 45, A);
 getMetadata('color', A); // => undefined
 getMetadata('color', B); // => 'red'
 getMetadata(Number, A); // => 45
 getMetadata(Number, B); // => 45

 defineMetadata('color', 'green', A);
 defineMetadata(Number, 0x69, B);
 getMetadata('color', A); // => 'green'
 getMetadata('color', B); // => 'red'
 getMetadata(Number, A); // => 45
 getMetadata(Number, B); // => 105

Note: It is based on es6 WeakMap and Map no need for polyfill (built-in library support).

License

Copyright © Yisrael Eliev, Licensed under the MIT license.

Package Sidebar

Install

npm i @ganuz/define-metadata

Weekly Downloads

3

Version

0.1.1

License

MIT

Unpacked Size

129 kB

Total Files

15

Last publish

Collaborators

  • yisraelx