Big update!Introducing GitHub Bot Commands. Learn more
BlogLoveLog in
Book a demo


Package Overview
File Explorer

Advanced tools


`jest-docblock` is a package that can extract and parse a specially-formatted comment called a "docblock" at the top of a file.


Version published
Weekly downloads
decreased by-19.84%

Weekly downloads





  • [expect] [BREAKING] Differentiate between MatcherContext MatcherUtils and MatcherState types (#13141)
  • [jest-circus] Add support for test.failing.each (#13142)
  • [jest-config] [BREAKING] Make snapshotFormat default to escapeString: false and printBasicPrototype: false (#13036)
  • [jest-config] [BREAKING] Remove undocumented collectCoverageOnlyFrom option (#13156)
  • [jest-environment-jsdom] [BREAKING] Upgrade to [email protected] (#13037, #13058)
  • [@jest/globals] Add jest.Mocked, jest.MockedClass, jest.MockedFunction and jest.MockedObject utility types (#12727)
  • [jest-mock] [BREAKING] Refactor Mocked* utility types. MaybeMockedDeep and MaybeMocked became Mocked and MockedShallow respectively; only deep mocked variants of MockedClass, MockedFunction and MockedObject are exported (#13123, #13124)
  • [jest-mock] [BREAKING] Change the default jest.mocked helper’s behavior to deep mocked (#13125)
  • [jest-snapshot] [BREAKING] Let babel find config when updating inline snapshots (#13150)
  • [@jest/test-result, @jest/types] [BREAKING] Replace Bytes and Milliseconds types with number (#13155)
  • [jest-worker] Adds workerIdleMemoryLimit option which is used as a check for worker memory leaks >= Node 16.11.0 and recycles child workers as required (#13056, #13105, #13106, #13107)
  • [pretty-format] [BREAKING] Remove ConvertAnsi plugin in favour of jest-serializer-ansi-escapes (#13040)
  • [pretty-format] Allow to opt out from sorting object keys with compareKeys: null (#12443)


  • [jest-config] Fix testing multiple projects with TypeScript config files (#13099)
  • [@jest/expect-utils] Fix deep equality of ImmutableJS Record (#13055)
  • [jest-haste-map] Increase the maximum possible file size that jest-haste-map can handle (#13094)
  • [jest-runtime] Properly support CJS re-exports from dual packages (#13170)
  • [jest-snapshot] Make prettierPath optional in SnapshotState (#13149)
  • [jest-snapshot] Fix parsing error from inline snapshot files with JSX (#12760)
  • [jest-worker] When a process runs out of memory worker exits correctly and doesn't spin indefinitely (#13054)

Chore & Maintenance

  • [*] [BREAKING] Drop support for Node v12 and v17 (#13033)
  • [docs] Fix webpack name (#13049)
  • [docs] Explicit how to set n for --bail (#13128)
  • [docs] Update Enzyme URL (#13166)
  • [jest-leak-detector] Remove support for weak-napi (#13035)
  • [jest-snapshot] [BREAKING] Require rootDir as argument to SnapshotState (#13150)




jest-docblock is a package that can extract and parse a specially-formatted comment called a "docblock" at the top of a file.

A docblock looks like this:

/** * Stuff goes here! */

Docblocks can contain pragmas, which are words prefixed by @:

/** * Pragma incoming! * * @flow */

Pragmas can also take arguments:

/** * Check this out: * * @myPragma it is so cool */

jest-docblock can:

  • extract the docblock from some code as a string
  • parse a docblock string's pragmas into an object
  • print an object and some comments back to a string


# with yarn $ yarn add jest-docblock # with npm $ npm install jest-docblock


const code = ` /** * Everything is awesome! * * @everything is:awesome * @flow */ export const everything = Object.create(null); export default function isAwesome(something) { return something === everything; } `; const { extract, strip, parse, parseWithComments, print, } = require('jest-docblock'); const docblock = extract(code); console.log(docblock); // "/**\n * Everything is awesome!\n * \n * @everything is:awesome\n * @flow\n */" const stripped = strip(code); console.log(stripped); // "export const everything = Object.create(null);\n export default function isAwesome(something) {\n return something === everything;\n }" const pragmas = parse(docblock); console.log(pragmas); // { everything: "is:awesome", flow: "" } const parsed = parseWithComments(docblock); console.log(parsed); // { comments: "Everything is awesome!", pragmas: { everything: "is:awesome", flow: "" } } console.log(print({pragmas, comments: 'hi!'})); // /**\n * hi!\n *\n * @everything is:awesome\n * @flow\n */;

API Documentation

extract(contents: string): string

Extracts a docblock from some file contents. Returns the docblock contained in contents. If contents did not contain a docblock, it will return the empty string ("").

strip(contents: string): string

Strips the top docblock from a file and return the result. If a file does not have a docblock at the top, then return the file unchanged.

parse(docblock: string): {[key: string]: string | string[] }

Parses the pragmas in a docblock string into an object whose keys are the pragma tags and whose values are the arguments to those pragmas.

parseWithComments(docblock: string): { comments: string, pragmas: {[key: string]: string | string[]} }

Similar to parse except this method also returns the comments from the docblock. Useful when used with print().

print({ comments?: string, pragmas?: {[key: string]: string | string[]} }): string

Prints an object of key-value pairs back into a docblock. If comments are provided, they will be positioned on the top of the docblock.


What is jest-docblock?

`jest-docblock` is a package that can extract and parse a specially-formatted comment called a "docblock" at the top of a file.

Is jest-docblock popular?

The npm package jest-docblock receives a total of 11,341,884 weekly downloads. As such, jest-docblock popularity was classified as popular.

Is jest-docblock well maintained?

We found that jest-docblock demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago.It has 6 open source maintainers collaborating on the project.

Last updated on 25 Aug 2022


Subscribe to our newsletter

Get open source security insights delivered straight into your inbox. Be the first to learn about new features and product updates.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc