{
  "version": 3,
  "sources": ["../../src/builder/vite.builder.mts"],
  "sourcesContent": ["/*\n * Copyright (c) 2022 Kiyozz.\n *\n * All rights reserved.\n */\n\nimport path from 'node:path'\nimport type { build, createServer, InlineConfig } from 'vite'\n\nimport { BaseBuilder } from './base.builder.mjs'\nimport type { Item } from '../config/config.mjs'\nimport { Logger, unsupportedType } from '../console.mjs'\n\nconst _logger = new Logger('Builder/Vite')\n\ntype Builder = typeof build\ntype ServerFactory = typeof createServer\n\nexport class ViteBuilder extends BaseBuilder<InlineConfig> {\n  readonly hasInitialBuild = false\n\n  private readonly _inlineConfig: InlineConfig\n  private readonly _viteBuild: Builder\n  private readonly _viteCreateServer: ServerFactory\n\n  static async create(config: Item<InlineConfig>): Promise<ViteBuilder> {\n    try {\n      const { build: vBuild, createServer: vCreateServer } = await import(\n        'vite'\n      )\n\n      return new this(config, { build: vBuild, createServer: vCreateServer })\n    } catch (err) {\n      if (err instanceof Error && err.message.includes('MODULE_NOT_FOUND')) {\n        _logger.end(\n          \"It looks like you're trying to use vite but it's not installed, try running `npm i -D vite`\",\n        )\n      }\n\n      _logger.end('ViteBuilder encountered an unexpected error', err)\n      process.exit(1)\n    }\n  }\n\n  constructor(\n    protected readonly _config: Item<InlineConfig>,\n    {\n      build: vBuild,\n      createServer: vCreateServer,\n    }: { build: Builder; createServer: ServerFactory },\n  ) {\n    super(_config)\n\n    if (!_config.fileConfig) {\n      _logger.end('No file config')\n      process.exit(0)\n    }\n\n    this._viteBuild = vBuild\n    this._viteCreateServer = vCreateServer\n    this._inlineConfig = {\n      configFile: path.resolve(process.cwd(), _config.fileConfig.path),\n      root: path.resolve(process.cwd(), path.dirname(_config.fileConfig.src)),\n      base: '',\n      build: {\n        outDir: path.resolve(process.cwd(), _config.fileConfig?.output.dir),\n      },\n    }\n  }\n\n  async build(): Promise<void> {\n    if (!this._config.fileConfig) {\n      _logger.end('No file config')\n      return\n    }\n\n    if (this._config.isMain) {\n      _logger.debug('Vite cannot be used in the main process')\n      unsupportedType(this._config.fileConfig.type, 'main')\n    }\n\n    _logger.log('Building', this.env.toLowerCase())\n\n    await this._viteBuild(this._inlineConfig)\n\n    _logger.log(this.env, 'built')\n  }\n\n  async dev(): Promise<void> {\n    if (!this._config.fileConfig) {\n      _logger.end('No file config')\n      return\n    }\n\n    if (this._config.isMain) {\n      _logger.debug('Vite cannot be used in the main process')\n      unsupportedType(this._config.fileConfig.type, 'main')\n    }\n\n    if (this._config.isRenderer) {\n      _logger.log('Start vite dev server')\n\n      const server = await this._viteCreateServer(this._inlineConfig)\n\n      await server.listen()\n\n      process.on('exit', async () => {\n        await server.close()\n      })\n    }\n  }\n}\n"],
  "mappings": "AAMA,OAAO,UAAU;AAGjB,SAAS,mBAAmB;AAE5B,SAAS,QAAQ,uBAAuB;AAExC,MAAM,UAAU,IAAI,OAAO,cAAc;AAKlC,MAAM,oBAAoB,YAA0B;AAAA,EA0BzD,YACqB,SACnB;AAAA,IACE,OAAO;AAAA,IACP,cAAc;AAAA,EAChB,GACA;AACA,UAAM,OAAO;AANM;AAQnB,QAAI,CAAC,QAAQ,YAAY;AACvB,cAAQ,IAAI,gBAAgB;AAC5B,cAAQ,KAAK,CAAC;AAAA,IAChB;AAEA,SAAK,aAAa;AAClB,SAAK,oBAAoB;AACzB,SAAK,gBAAgB;AAAA,MACnB,YAAY,KAAK,QAAQ,QAAQ,IAAI,GAAG,QAAQ,WAAW,IAAI;AAAA,MAC/D,MAAM,KAAK,QAAQ,QAAQ,IAAI,GAAG,KAAK,QAAQ,QAAQ,WAAW,GAAG,CAAC;AAAA,MACtE,MAAM;AAAA,MACN,OAAO;AAAA,QACL,QAAQ,KAAK,QAAQ,QAAQ,IAAI,GAAG,QAAQ,YAAY,OAAO,GAAG;AAAA,MACpE;AAAA,IACF;AAAA,EACF;AAAA,EAjDS,kBAAkB;AAAA,EAEV;AAAA,EACA;AAAA,EACA;AAAA,EAEjB,aAAa,OAAO,QAAkD;AACpE,QAAI;AACF,YAAM,EAAE,OAAO,QAAQ,cAAc,cAAc,IAAI,MAAM,OAC3D,MACF;AAEA,aAAO,IAAI,KAAK,QAAQ,EAAE,OAAO,QAAQ,cAAc,cAAc,CAAC;AAAA,IACxE,SAAS,KAAP;AACA,UAAI,eAAe,SAAS,IAAI,QAAQ,SAAS,kBAAkB,GAAG;AACpE,gBAAQ;AAAA,UACN;AAAA,QACF;AAAA,MACF;AAEA,cAAQ,IAAI,+CAA+C,GAAG;AAC9D,cAAQ,KAAK,CAAC;AAAA,IAChB;AAAA,EACF;AAAA,EA4BA,MAAM,QAAuB;AAC3B,QAAI,CAAC,KAAK,QAAQ,YAAY;AAC5B,cAAQ,IAAI,gBAAgB;AAC5B;AAAA,IACF;AAEA,QAAI,KAAK,QAAQ,QAAQ;AACvB,cAAQ,MAAM,yCAAyC;AACvD,sBAAgB,KAAK,QAAQ,WAAW,MAAM,MAAM;AAAA,IACtD;AAEA,YAAQ,IAAI,YAAY,KAAK,IAAI,YAAY,CAAC;AAE9C,UAAM,KAAK,WAAW,KAAK,aAAa;AAExC,YAAQ,IAAI,KAAK,KAAK,OAAO;AAAA,EAC/B;AAAA,EAEA,MAAM,MAAqB;AACzB,QAAI,CAAC,KAAK,QAAQ,YAAY;AAC5B,cAAQ,IAAI,gBAAgB;AAC5B;AAAA,IACF;AAEA,QAAI,KAAK,QAAQ,QAAQ;AACvB,cAAQ,MAAM,yCAAyC;AACvD,sBAAgB,KAAK,QAAQ,WAAW,MAAM,MAAM;AAAA,IACtD;AAEA,QAAI,KAAK,QAAQ,YAAY;AAC3B,cAAQ,IAAI,uBAAuB;AAEnC,YAAM,SAAS,MAAM,KAAK,kBAAkB,KAAK,aAAa;AAE9D,YAAM,OAAO,OAAO;AAEpB,cAAQ,GAAG,QAAQ,YAAY;AAC7B,cAAM,OAAO,MAAM;AAAA,MACrB,CAAC;AAAA,IACH;AAAA,EACF;AACF;",
  "names": []
}
