{
  "version": 3,
  "sources": ["../../../src/plugins/pkgtype/plugin.ts"],
  "sourceRoot": "file://",
  "sourcesContent": ["/**\n * @file Plugins - pkgtype\n * @module mkbuild/plugins/pkgtype/plugin\n */\n\nimport type { PackageJson } from '@flex-development/pkg-types'\nimport togglePkgType from '@flex-development/toggle-pkg-type'\nimport type { BuildOptions, Plugin, PluginBuild } from 'esbuild'\n\n/**\n * Returns a plugin to toggle the [`type`][1] field in the given `pkg`.\n *\n * [1]: https://nodejs.org/api/packages.html#type\n *\n * @see https://github.com/evanw/esbuild/issues/2026\n * @see https://github.com/flex-development/toggle-pkg-type\n *\n * @param {PackageJson} pkg - `package.json` object\n * @return {Plugin} Package [`type`][1] toggle plugin\n */\nconst plugin = (pkg: PackageJson): Plugin => {\n  /**\n   * Toggles the [`type`][1] field in a `package.json` object.\n   *\n   * [1]: https://esbuild.github.io/plugins\n   * [2]: https://esbuild.github.io/api/#build-api\n   *\n   * @param {PluginBuild} build - [esbuild plugin api][1]\n   * @param {BuildOptions} build.initialOptions - [esbuild build api][2] options\n   * @param {PluginBuild['onEnd']} build.onEnd - Build end callback\n   * @param {PluginBuild['onStart']} build.onStart - Build start callback\n   * @return {void} Nothing when complete\n   */\n  const setup = ({ initialOptions, onEnd, onStart }: PluginBuild): void => {\n    const { absWorkingDir = process.cwd(), format } = initialOptions\n\n    // enable type field toggling\n    if (pkg.type === 'module' && format === 'cjs') {\n      onStart(() => togglePkgType(null, absWorkingDir))\n      onEnd(() => togglePkgType(null, absWorkingDir))\n    }\n\n    return void 0\n  }\n\n  return { name: 'pkgtype', setup }\n}\n\nexport default plugin\n"],
  "mappings": ";;AAMA,OAAO,mBAAmB;AAc1B,MAAM,SAAS,wBAAC,SAyBP,EAAE,MAAM,WAAW,OAZZ,wBAAC,EAAE,gBAAgB,OAAO,QAAQ,MAAyB;AACvE,QAAM,EAAE,gBAAgB,QAAQ,IAAI,GAAG,OAAO,IAAI;AAGlD,EAAI,IAAI,SAAS,YAAY,WAAW,UACtC,QAAQ,MAAM,cAAc,MAAM,aAAa,CAAC,GAChD,MAAM,MAAM,cAAc,MAAM,aAAa,CAAC;AAIlD,GAVc,SAYkB,IAzBnB;AA4Bf,IAAO,iBAAQ;",
  "names": []
}
