Giter Club home page Giter Club logo

Comments (2)

jamestalton avatar jamestalton commented on July 30, 2024

On further investigation... it seems that this is thrown when anything other than a string is passed to process.emitWarning
process.emitWarning(new Error('test'))

This might be a JEST thing...

from process-warning.

jamestalton avatar jamestalton commented on July 30, 2024

https://github.com/nodejs/node-auto-test/blob/b067260648eb34c5553856729db47482cc7b412d/lib/internal/process/warning.js

if (typeof warning === 'string') {
    warning = createWarningObject(warning, type, code, ctor, detail);
  } else if (!(warning instanceof Error)) {
    throw new ERR_INVALID_ARG_TYPE('warning', ['Error', 'string'], warning);
  }
  if (warning.name === 'DeprecationWarning') {
    if (process.noDeprecation)
      return;
    if (process.throwDeprecation) {
      // Delay throwing the error to guarantee that all former warnings were
      // properly logged.
      return process.nextTick(() => {
        throw warning;
      });
    }
  }

Apparently if the warning name in nodejs is 'DeprecationWarning' it handles differently.
Since many of the fastify warnings are deprecations, they should be updated to that style?
that way they can be ignored with process.noDeprecation or turned into thrown errors using process.throwDeprecation.

This works in my environment:

function emitWarning (code) {
  if (codes[code] === undefined) throw new Error(`The code '${code}' does not exist`)
  if (emittedWarnings.has(code) === true) return
  emittedWarnings.set(code, true)
  const error = new codes[code]()
  process.emitWarning(error.message, "DeprecationWarning", error.code)
}

(node:9771) [FSTDEP003] DeprecationWarning: You are using the legacy Content Type Parser function signature. Use the one suggested in the documentation instead.

from process-warning.

Related Issues (6)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.