# deprecation > Log a deprecation message with stack  ## Usage <table> <tbody valign=top align=left> <tr><th> Browsers </th><td width=100%> Load `deprecation` directly from [cdn.pika.dev](https://cdn.pika.dev) ```html <script type="module"> import { Deprecation } from "https://cdn.pika.dev/deprecation/v2"; </script> ``` </td></tr> <tr><th> Node </th><td> Install with `npm install deprecation` ```js const { Deprecation } = require("deprecation"); // or: import { Deprecation } from "deprecation"; ``` </td></tr> </tbody> </table> ```js function foo() { bar(); } function bar() { baz(); } function baz() { console.warn(new Deprecation("[my-lib] foo() is deprecated, use bar()")); } foo(); // { Deprecation: [my-lib] foo() is deprecated, use bar() // at baz (/path/to/file.js:12:15) // at bar (/path/to/file.js:8:3) // at foo (/path/to/file.js:4:3) ``` To log a deprecation message only once, you can use the [once](https://www.npmjs.com/package/once) module. ```js const Deprecation = require("deprecation"); const once = require("once"); const deprecateFoo = once(console.warn); function foo() { deprecateFoo(new Deprecation("[my-lib] foo() is deprecated, use bar()")); } foo(); foo(); // logs nothing ``` ## License [ISC](LICENSE)