UNPKG

5.33 kBSource Map (JSON)View Raw
1{"version":3,"file":"transform.js","sourceRoot":"","sources":["../src/transform.ts"],"names":[],"mappings":"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","sourcesContent":["import * as babel from \"@babel/core\";\nimport * as acorn from \"acorn\";\nimport * as kt from \"karma-typescript\";\nimport * as log4js from \"log4js\";\n\nlet log: log4js.Logger;\nlet walk: any;\n\nconst isEs6 = (ast: acorn.Node): boolean => {\n let es6NodeFound = false;\n if ((ast as any).body) {\n const visitNode = (node: any, state: any, c: any) => {\n if (!es6NodeFound) {\n walk.base[node.type](node, state, c);\n switch (node.type) {\n case \"ArrowFunctionExpression\":\n case \"ClassDeclaration\":\n case \"ExportAllDeclaration\":\n case \"ExportDefaultDeclaration\":\n case \"ExportNamedDeclaration\":\n case \"ImportDeclaration\":\n es6NodeFound = true;\n break;\n case \"VariableDeclaration\":\n if (node.kind === \"const\" || node.kind === \"let\") {\n es6NodeFound = true;\n break;\n }\n default:\n }\n }\n };\n walk.recursive(ast, null, {\n Expression: visitNode,\n Statement: visitNode\n });\n }\n return es6NodeFound;\n};\n\nconst configure = (options?: babel.TransformOptions) => {\n\n options = options || {};\n\n if (!options.presets || options.presets.length === 0) {\n options.presets = [[\"@babel/preset-env\"]];\n }\n\n const transform: kt.Transform = (context: kt.TransformContext, callback: kt.TransformCallback) => {\n\n if (!context.js) {\n return callback(undefined, false);\n }\n\n if (isEs6(context.js.ast)) {\n\n options.filename = context.filename;\n log.debug(\"Transforming %s\", options.filename);\n\n try {\n context.source = babel.transform(context.source, options).code;\n context.js.ast = acorn.parse(context.source, { sourceType: \"module\" });\n return callback(undefined, true);\n }\n catch (error) {\n return callback(error, false);\n }\n }\n else {\n return callback(undefined, false);\n }\n };\n\n const initialize: kt.TransformInitialize = (logOptions: kt.TransformInitializeLogOptions) => {\n log4js.configure({\n appenders: logOptions.appenders,\n categories: {\n default: {\n appenders: Object.keys(logOptions.appenders),\n level: logOptions.level\n }\n }\n });\n log = log4js.getLogger(\"es6-transform.karma-typescript\");\n walk = require(\"acorn-walk\");\n };\n\n return Object.assign(transform, { initialize });\n};\n\nexport = configure;\n"]}
\No newline at end of file