{
  "version": 3,
  "sources": ["../../../../src/packages/hooks.read-package-hook/createOptionalDependenciesRemover.ts"],
  "sourcesContent": ["import type {\n  BaseManifest,\n  PackageManifest,\n  ReadPackageHook,\n} from '../types/index.ts';\nimport { createMatcher } from '../matcher/index.ts';\n\nexport function createOptionalDependenciesRemover(\n  toBeRemoved: string[]\n): ReadPackageHook {\n  if (!toBeRemoved.length) {\n    return <Manifest extends BaseManifest>(manifest: Manifest): Manifest => {\n      return manifest;\n    };\n  }\n\n  const shouldBeRemoved = createMatcher(toBeRemoved);\n\n  return (manifest: PackageManifest): PackageManifest => {\n    return removeOptionalDependencies(manifest, shouldBeRemoved);\n  };\n}\n\nfunction removeOptionalDependencies<Manifest extends BaseManifest>(\n  manifest: Manifest,\n  shouldBeRemoved: (input: string) => boolean\n): Manifest {\n  for (const optionalDependency in manifest.optionalDependencies) {\n    if (shouldBeRemoved(optionalDependency)) {\n      delete manifest.optionalDependencies[optionalDependency];\n\n      delete manifest.dependencies?.[optionalDependency];\n    }\n  }\n\n  return manifest;\n}\n"],
  "mappings": "AAKA,SAAS,qBAAqB;AAEvB,SAAS,kCACd,aACiB;AACjB,MAAI,CAAC,YAAY,QAAQ;AACvB,WAAO,CAAgC,aAAiC;AACtE,aAAO;AAAA,IACT;AAAA,EACF;AAEA,QAAM,kBAAkB,cAAc,WAAW;AAEjD,SAAO,CAAC,aAA+C;AACrD,WAAO,2BAA2B,UAAU,eAAe;AAAA,EAC7D;AACF;AAEA,SAAS,2BACP,UACA,iBACU;AACV,aAAW,sBAAsB,SAAS,sBAAsB;AAC9D,QAAI,gBAAgB,kBAAkB,GAAG;AACvC,aAAO,SAAS,qBAAqB,kBAAkB;AAEvD,aAAO,SAAS,eAAe,kBAAkB;AAAA,IACnD;AAAA,EACF;AAEA,SAAO;AACT;",
  "names": []
}
