UNPKG

@shockpkg/core

Version:
1 lines 2.81 kB
{"version":3,"sources":["package.ts"],"names":["Package","Object","constructor","info","parent","name","file","size","sha256","source","packages","_createPackages","infos","map","_createPackage","Constructor"],"mappings":"AAEA;;;;;;AAMA,OAAO,MAAMA,OAAN,SAAsBC,MAAtB,CAA6B;AACnC;;;;AAKA;;;;AAKA;;;;AAKA;;;;AAKA;;;;AAKA;;;;AAKA;;;AAKAC,EAAAA,WAAW,CAACC,IAAD,EAA6BC,MAAsB,GAAG,IAAtD,EAA4D;AACtE;AADsE,SAhCvDC,IAgCuD;AAAA,SA3BvDC,IA2BuD;AAAA,SAtBvDC,IAsBuD;AAAA,SAjBvDC,MAiBuD;AAAA,SAZvDC,MAYuD;AAAA,SAPvDC,QAOuD;AAAA,SAFvDN,MAEuD;AAGtE,SAAKC,IAAL,GAAYF,IAAI,CAACE,IAAjB;AACA,SAAKC,IAAL,GAAYH,IAAI,CAACG,IAAjB;AACA,SAAKC,IAAL,GAAYJ,IAAI,CAACI,IAAjB;AACA,SAAKC,MAAL,GAAcL,IAAI,CAACK,MAAnB;AACA,SAAKC,MAAL,GAAcN,IAAI,CAACM,MAAnB;AACA,SAAKL,MAAL,GAAcA,MAAd;AACA,SAAKM,QAAL,GAAgB,KAAKC,eAAL,CAAqBR,IAAI,CAACO,QAA1B,CAAhB;AACA;AAED;;;;;;;;AAMUC,EAAAA,eAAV,CAA0BC,KAA6B,GAAG,EAA1D,EAA8D;AAC7D,WAAOA,KAAK,CAACC,GAAN,CAAUV,IAAI,IAAI,KAAKW,cAAL,CAAoBX,IAApB,CAAlB,CAAP;AACA;AAED;;;;;;;;AAMUW,EAAAA,cAAV,CAAyBX,IAAzB,EAAqD;AACpD,UAAMY,WAAW,GAAG,KAAKb,WAAzB;AACA,WAAO,IAAIa,WAAJ,CAAgBZ,IAAhB,EAAsB,IAAtB,CAAP;AACA;;AAnEkC","sourcesContent":["import {IPackagesListPackage} from './types';\n\n/**\n * Package constructor.\n *\n * @param info Package info.\n * @param parent Package parent.\n */\nexport class Package extends Object {\n\t/**\n\t * Package name.\n\t */\n\tpublic readonly name: string;\n\n\t/**\n\t * File name.\n\t */\n\tpublic readonly file: string;\n\n\t/**\n\t * File size.\n\t */\n\tpublic readonly size: number;\n\n\t/**\n\t * SHA256 hash of file.\n\t */\n\tpublic readonly sha256: string;\n\n\t/**\n\t * Source path, URL for root, file path for child packages.\n\t */\n\tpublic readonly source: string;\n\n\t/**\n\t * Child packages.\n\t */\n\tpublic readonly packages: Package[];\n\n\t/**\n\t * The parent package this package is found in.\n\t */\n\tpublic readonly parent: Package | null;\n\n\tconstructor(info: IPackagesListPackage, parent: Package | null = null) {\n\t\tsuper();\n\n\t\tthis.name = info.name;\n\t\tthis.file = info.file;\n\t\tthis.size = info.size;\n\t\tthis.sha256 = info.sha256;\n\t\tthis.source = info.source;\n\t\tthis.parent = parent;\n\t\tthis.packages = this._createPackages(info.packages);\n\t}\n\n\t/**\n\t * Create child packages list.\n\t *\n\t * @param infos Package infos.\n\t * @returns Package instance.\n\t */\n\tprotected _createPackages(infos: IPackagesListPackage[] = []) {\n\t\treturn infos.map(info => this._createPackage(info));\n\t}\n\n\t/**\n\t * Create a child package.\n\t *\n\t * @param info Package info.\n\t * @returns Package instance.\n\t */\n\tprotected _createPackage(info: IPackagesListPackage) {\n\t\tconst Constructor = this.constructor as typeof Package;\n\t\treturn new Constructor(info, this);\n\t}\n}\n"],"file":"package.mjs","sourceRoot":"../src"}