{"version":3,"file":"index.cjs.development.cjs","sources":["../src/index.ts"],"sourcesContent":["/**\n * Created by user on 2020/6/9.\n */\n\nimport { naturalCompare } from '@bluelovers/string-natural-compare';\nimport { ITree } from '@lazy-glob/util/lib/types';\nimport { ISortEntriesSort, ISortEntriesSortRow } from '@lazy-glob/util/lib/types/entries';\nimport { SymGlobTree } from '@lazy-glob/util';\n\ntype IEntry<T extends Record<any, any>, K extends keyof T> = [K, T[K]]\ntype IEntries<T extends ITree = ITree> = IEntry<T, keyof T>[];\n\nexport type IEntriesInput = IEntries | ISortEntriesSort;\n\nexport function entries_sort(entries: IEntriesInput,\n\tfn: (a: string, b: string, cache: any) => number = naturalCompare,\n\tcache: any = {},\n): ISortEntriesSort\n{\n\tentries = (entries as ISortEntriesSort).reduce(function (a: ISortEntriesSort, b: ISortEntriesSortRow)\n\t{\n\t\tconst v = b[1];\n\n\t\tif (v === null || typeof v === 'string')\n\t\t{\n\t\t\ta.push(b);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tconst d = Object.entries(v);\n\t\t\ta.push([b[0], entries_sort(d, fn), (v as any)[SymGlobTree]]);\n\t\t}\n\n\t\treturn a;\n\t}, [] as ISortEntriesSort);\n\n\t(entries as ISortEntriesSort).sort(function (a, b)\n\t{\n\t\tconst r = fn(a[0], b[0], cache);\n\t\treturn r;\n\t});\n\n\treturn entries;\n}\n\nexport function entries_reduce(entries: IEntriesInput)\n{\n\treturn (entries as ISortEntriesSort)\n\t\t.reduce(function (a, [k, v, bool]: ISortEntriesSortRow)\n\t\t{\n\t\t\tif (v === null || typeof v === 'string')\n\t\t\t{\n\t\t\t\ta[k] = v as string;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\ta[k] = entries_reduce(v);\n\t\t\t}\n\n\t\t\tif (bool)\n\t\t\t{\n\t\t\t\t// @ts-ignore\n\t\t\t\ta[k][SymGlobTree] = bool;\n\t\t\t}\n\n\t\t\treturn a;\n\t\t}, {} as ITree)\n\t\t;\n}\n\nexport function sort(a: ITree, fn: (a: string, b: string, cache: any) => number = naturalCompare)\n{\n\tconst r = Object.entries(a);\n\n\tconst a1 = entries_sort(r, fn);\n\tconst a2 = entries_reduce(a1);\n\n\treturn a2\n}\n\nexport default sort\n"],"names":["entries","reduce","a","b","push","d","Object","v","entries_sort","fn","SymGlobTree","cache","entries_reduce","k"],"mappings":";;;;;;;;AAcMA,EAAAA,OAAA,GAAAA,OAAA,CAAAC,MAAA,CAAAC,UAAAA,CAAA,EAAAC,CAAA,EAAA;;;MAOJD,CAAA,CAAAE,IAAA,CAAAD,CAAA,CAAA,CAAA;KAeiC,MAAA;AAOlC,MAAA,MAAAE,CAAA,GAAAC,MAAA,CAAAN,OAAA,CAAAO,CAAA,CAAA,CAAA;AAIAL,MAAAA,CAAA,CAAAE,IAAoC,CAAA,CAAAD,CAAA,CAAA,CAAA,CAAA,EAAAK,YAAA,CAAAH,CAAA,EAAAI,EAAA,CAAAF,EAAAA,CAAA,CAAAG,gBAAA,CAAA,CAAA,CAAA,CAAA;;;;;cAY9BD,EAAA,CAAAP,CAAA,KAAAC,CACH,CAAA,CAAAQ,CAAAA,EAAAA,KAAA,CAAA,CAAA;;;SAKDX,OAAA,CAAA;;AAKH,SAAgGY,cAAAA,CAAAZ,OAAA,EAAA;gBAIvF,CACRC,MAAA,CAAM;IAEN,IAAAM,CAAA,oBAAAA,CAAA,KAAA,QAAA,EAAA;MAGDL,CAAA,CAAAW,CAAA,CAAA;KA5CE,MAAA;;;;;;;;;;;;;;;;;;;;;;"}