{"version":3,"file":"ast.cjs","sources":["../../src/ast.ts"],"sourcesContent":["import { parse } from '@babel/parser'\nimport _generate from '@babel/generator'\nimport type { GeneratorOptions, GeneratorResult } from '@babel/generator'\nimport type { ParseResult, ParserOptions } from '@babel/parser'\nimport type * as _babel_types from '@babel/types'\n\nexport type ParseAstOptions = ParserOptions & {\n  code: string\n}\n\nexport function parseAst({\n  code,\n  ...opts\n}: ParseAstOptions): ParseResult<_babel_types.File> {\n  return parse(code, {\n    plugins: ['jsx', 'typescript', 'explicitResourceManagement'],\n    sourceType: 'module',\n    ...opts,\n  })\n}\n\nlet generate = _generate\n\nif ('default' in generate) {\n  generate = generate.default as typeof generate\n}\ntype GenerateFromAstOptions = GeneratorOptions &\n  Required<Pick<GeneratorOptions, 'sourceFileName' | 'filename'>>\nexport function generateFromAst(\n  ast: _babel_types.Node,\n  opts?: GenerateFromAstOptions,\n): GeneratorResult {\n  return generate(\n    ast,\n    opts\n      ? { importAttributesKeyword: 'with', sourceMaps: true, ...opts }\n      : undefined,\n  )\n}\nexport type { GeneratorResult } from '@babel/generator'\n"],"names":["parse"],"mappings":";;;;AAUO,SAAS,SAAS;AAAA,EACvB;AAAA,EACA,GAAG;AACL,GAAoD;AAClD,SAAOA,OAAAA,MAAM,MAAM;AAAA,IACjB,SAAS,CAAC,OAAO,cAAc,4BAA4B;AAAA,IAC3D,YAAY;AAAA,IACZ,GAAG;AAAA,EAAA,CACJ;AACH;AAEA,IAAI,WAAW;AAEf,IAAI,aAAa,UAAU;AACzB,aAAW,SAAS;AACtB;AAGgB,SAAA,gBACd,KACA,MACiB;AACV,SAAA;AAAA,IACL;AAAA,IACA,OACI,EAAE,yBAAyB,QAAQ,YAAY,MAAM,GAAG,SACxD;AAAA,EACN;AACF;;;"}