UNPKG

@storm-stack/core

Version:

A build toolkit and runtime used by Storm Software in TypeScript applications

1 lines 3.05 kB
{"version":3,"sources":["../../src/lib/babel/ast.ts"],"names":["parseAst","code","opts","parse","plugins","sourceType","allowImportExportEverywhere","allowAwaitOutsideFunction","generate","_generate","default","generateFromAst","ast","importAttributesKeyword","sourceMaps","undefined"],"mappings":";;;;;;;;;;AA+BO,SAASA,QAAAA,CACdC,IAAAA,EACAC,IAAAA,GAAsB,EAAC,EAAC;AAExB,EAAA,OAAOC,aAAMF,IAAAA,EAAM;IACjBG,OAAAA,EAAS;AAAC,MAAA;;IACVC,UAAAA,EAAY,QAAA;IACZC,2BAAAA,EAA6B,IAAA;IAC7BC,yBAAAA,EAA2B,IAAA;IAC3B,GAAGL;GACL,CAAA;AACF;AAXgBF,wBAAAA,CAAAA,QAAAA,EAAAA,UAAAA,CAAAA;AAahB,IAAIQ,QAAAA,GAAWC,0BAAAA;AACf,IAAI,aAAaD,QAAAA,EAAU;AACzBA,EAAAA,QAAAA,GAAWA,QAAAA,CAASE,OAAAA;AACtB;AAKO,SAASC,eAAAA,CACdC,KACAV,IAAAA,EAA6B;AAE7B,EAAA,OAAOM,QAAAA,CACLI,KACAV,IAAAA,GACI;IAAEW,uBAAAA,EAAyB,MAAA;IAAQC,UAAAA,EAAY,IAAA;IAAM,GAAGZ;AAAK,GAAA,GAC7Da,MAAAA,CAAAA;AAER;AAVgBJ,wBAAAA,CAAAA,eAAAA,EAAAA,iBAAAA,CAAAA","file":"chunk-QH6JOSVV.cjs","sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Storm Stack\n\n This code was released as part of the Storm Stack project. Storm Stack\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/storm-stack.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/storm-stack\n Documentation: https://docs.stormsoftware.com/projects/storm-stack\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport type { GeneratorOptions, GeneratorResult } from \"@babel/generator\";\nimport _generate from \"@babel/generator\";\nimport type { ParseResult, ParserOptions } from \"@babel/parser\";\nimport { parse } from \"@babel/parser\";\nimport type * as t from \"@babel/types\";\n\n/**\n * Parse the given code into an AST.\n *\n * @param code - The code to parse.\n * @param opts - The options for parsing.\n * @returns The parsed AST.\n */\nexport function parseAst(\n code: string,\n opts: ParserOptions = {}\n): ParseResult<t.File> {\n return parse(code, {\n plugins: [\"typescript\"],\n sourceType: \"module\",\n allowImportExportEverywhere: true,\n allowAwaitOutsideFunction: true,\n ...opts\n });\n}\n\nlet generate = _generate;\nif (\"default\" in generate) {\n generate = generate.default as typeof generate;\n}\n\nexport type GenerateFromAstOptions = GeneratorOptions &\n Required<Pick<GeneratorOptions, \"sourceFileName\" | \"filename\">>;\n\nexport function generateFromAst(\n ast: t.Node,\n opts?: GenerateFromAstOptions\n): GeneratorResult {\n return generate(\n ast,\n opts\n ? { importAttributesKeyword: \"with\", sourceMaps: true, ...opts }\n : undefined\n );\n}\n\nexport type { GeneratorResult } from \"@babel/generator\";\n"]}