no-buffer-constructor.js 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. /**
  2. * @fileoverview disallow use of the Buffer() constructor
  3. * @author Teddy Katz
  4. */
  5. "use strict";
  6. //------------------------------------------------------------------------------
  7. // Rule Definition
  8. //------------------------------------------------------------------------------
  9. module.exports = {
  10. meta: {
  11. docs: {
  12. description: "disallow use of the `Buffer()` constructor",
  13. category: "Node.js and CommonJS",
  14. recommended: false,
  15. url: "https://eslint.org/docs/rules/no-buffer-constructor"
  16. },
  17. schema: [],
  18. messages: {
  19. deprecated: "{{expr}} is deprecated. Use Buffer.from(), Buffer.alloc(), or Buffer.allocUnsafe() instead."
  20. }
  21. },
  22. create(context) {
  23. //----------------------------------------------------------------------
  24. // Public
  25. //----------------------------------------------------------------------
  26. return {
  27. "CallExpression[callee.name='Buffer'], NewExpression[callee.name='Buffer']"(node) {
  28. context.report({
  29. node,
  30. messageId: "deprecated",
  31. data: { expr: node.type === "CallExpression" ? "Buffer()" : "new Buffer()" }
  32. });
  33. }
  34. };
  35. }
  36. };