{
  "version": 3,
  "sources": ["../../src/internal/gitignore.ts"],
  "sourceRoot": "file://",
  "sourcesContent": ["/**\n * @file Internal - gitignore\n * @module mkbuild/internal/gitignore\n */\n\nimport * as mlly from '@flex-development/mlly'\nimport * as pathe from '@flex-development/pathe'\nimport { cast, isEmptyString, trim } from '@flex-development/tutils'\n\n/**\n * Returns a set of ignore patterns found in a `.gitignore` file.\n *\n * @internal\n * @async\n *\n * @param {string} absWorkingDir - Absolute path to current working directory\n * @return {Promise<Set<string>>} Ignore patterns set\n */\nconst gitignore = async (absWorkingDir: string): Promise<Set<string>> => {\n  /**\n   * Ignore patterns found in `.gitignore` file.\n   *\n   * @const {Set<string>} ignore\n   */\n  const ignore: Set<string> = new Set<string>()\n\n  // try adding ignore patterns from .gitignore\n  try {\n    /**\n     * Absolute path to `.gitignore` file.\n     *\n     * @const {string} path\n     */\n    const path: string = pathe.resolve(absWorkingDir, '.gitignore')\n\n    /**\n     * `.gitignore` file content.\n     *\n     * @const {string} gitignore\n     */\n    const content: string = cast(await mlly.getSource(path))\n\n    // add ignore patterns from .gitignore\n    for (const line of content.split(/\\r?\\n/)) {\n      if (isEmptyString(trim(line))) continue\n      if (line.startsWith('#') || line.startsWith('!')) continue\n      ignore.add(trim(line))\n    }\n  } catch {\n    // do nothing if .gitignore file was not found\n  }\n\n  return ignore\n}\n\nexport default gitignore\n"],
  "mappings": ";;AAKA,YAAY,UAAU;AACtB,YAAY,WAAW;AACvB,SAAS,MAAM,eAAe,YAAY;AAW1C,MAAM,YAAY,8BAAO,kBAAgD;AAMvE,QAAM,SAAsB,oBAAI,IAAY;AAG5C,MAAI;AAMF,UAAM,OAAe,MAAM,QAAQ,eAAe,YAAY,GAOxD,UAAkB,KAAK,MAAM,KAAK,UAAU,IAAI,CAAC;AAGvD,eAAW,QAAQ,QAAQ,MAAM,OAAO;AACtC,MAAI,cAAc,KAAK,IAAI,CAAC,KACxB,KAAK,WAAW,GAAG,KAAK,KAAK,WAAW,GAAG,KAC/C,OAAO,IAAI,KAAK,IAAI,CAAC;AAAA,EAEzB,QAAQ;AAAA,EAER;AAEA,SAAO;AACT,GAnCkB;AAqClB,IAAO,oBAAQ;",
  "names": []
}
