{"version":3,"file":"index.umd.production.min.cjs","sources":["../src/index.ts"],"sourcesContent":["import { IPackageJson } from '@ts-type/package-dts/package-json';\nimport { sortObjectKeys } from 'sort-object-keys2';\nimport isPlainObject from 'is-plain-obj';\nimport {\n\tIPackageExportsEntryObject, IPackageExportsValue,\n} from '@ts-type/package-dts/lib/package-json/exports';\n\nexport function isPackageJsonExportsEntryObject<T extends IPackageExportsValue, O extends IPackageExportsEntryObject = IPackageExportsEntryObject>(exports: T): exports is Extract<T, O>\n{\n\treturn isPlainObject(exports)\n}\n\nexport interface IOptions\n{\n\trootOrder?: readonly string[];\n\tentryOrder?: readonly string[];\n}\n\nexport function _handleOptions(options?: IOptions)\n{\n\tconst rootOrder = [\n\t\t'types',\n\t\t'require',\n\t\t'import',\n\t\t'node',\n\t\t'node-addons',\n\t];\n\n\tconst entryOrder = [\n\t\t...rootOrder,\n\t\t'default',\n\t\t'.',\n\t\t'./',\n\t\t'./package.json',\n\t];\n\n\tif (options)\n\t{\n\t\tif (options.rootOrder?.length)\n\t\t{\n\t\t\trootOrder.splice(0, 0, ...options.rootOrder);\n\t\t}\n\t\tif (options.entryOrder?.length)\n\t\t{\n\t\t\tentryOrder.splice(0, 0, ...options.entryOrder);\n\t\t}\n\t}\n\n\treturn {\n\t\trootOrder,\n\t\tentryOrder,\n\t}\n}\n\nexport function sortPackageJsonExports(exports: IPackageJson[\"exports\"], options?: IOptions)\n{\n\tif (isPackageJsonExportsEntryObject(exports))\n\t{\n\t\tconst { rootOrder, entryOrder } = _handleOptions(options);\n\n\t\tsortObjectKeys(exports, {\n\t\t\tkeys: rootOrder,\n\t\t\tuseSource: true,\n\t\t});\n\n\t\tObject.keys(exports)\n\t\t\t.forEach(key =>\n\t\t\t{\n\t\t\t\tconst value = exports[key];\n\n\t\t\t\tif (isPackageJsonExportsEntryObject(value))\n\t\t\t\t{\n\t\t\t\t\texports[key] = sortObjectKeys(value, {\n\t\t\t\t\t\tkeys: entryOrder,\n\t\t\t\t\t\tuseSource: true,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t})\n\t}\n\n\treturn exports\n}\n\nexport default sortPackageJsonExports\n"],"names":["_handleOptions","options","rootOrder","entryOrder","_options$rootOrder","length","splice","_options$entryOrder","sortPackageJsonExports","exports","keys","useSource"],"mappings":";;;;;;AAEA;EAKA,SAAAA,eAAAC;UAcSC,6DAiBPC,IAAA,KAECD,cAED,KAEC;;iCAMSA,mBAAA,MAAAE,OAAAC,UACVH,EAAAI,OAAAL,GAAAA,MAAAA,EAAAC;cAGFK,IAAAN,EAAAE,oBAAgB,MAAAI,KAAhBA,EAAgBF,UAEfF,EAAAG,OAAAL,GAAAA,MAAAA,EAAAE;;;MAYGA;;;EAME,SAAAK,uBAAAC,GAAAR;;MAGH,OAAAC,WAAAA,GAAEC,YAAAA,KAAAH,eAAAC;uBACHQ,GAAA;QAEDC,MAAAR;QACAS,YAAA;;;;;;;;;;;;;;;"}