HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/SBogers10/shop.komma.nl/node_modules/vue-codemod/dist/src/run-transformation.js
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const jscodeshift_1 = __importDefault(require("jscodeshift"));
// @ts-ignore
const getParser_1 = __importDefault(require("jscodeshift/src/getParser"));
const compiler_sfc_1 = require("@vue/compiler-sfc");
const stringify_sfc_descriptor_1 = __importDefault(require("./stringify-sfc-descriptor"));
const debug_1 = __importDefault(require("debug"));
const VueTransformation_1 = __importDefault(require("./VueTransformation"));
const debug = debug_1.default('vue-codemod');
function runTransformation(fileInfo, transformationModule, params = {}) {
    let transformation;
    // @ts-ignore
    if (typeof transformationModule.default !== 'undefined') {
        // @ts-ignore
        transformation = transformationModule.default;
    }
    else {
        transformation = transformationModule;
    }
    if (transformation instanceof VueTransformation_1.default) {
        debug('TODO: Running VueTransformation');
        return;
    }
    debug('Running jscodeshift transform');
    const { path, source } = fileInfo;
    const extension = (/\.([^.]*)$/.exec(path) || [])[0];
    let lang = extension.slice(1);
    let descriptor;
    if (extension === '.vue') {
        descriptor = compiler_sfc_1.parse(source, { filename: path }).descriptor;
        // skip .vue files without script block
        if (!descriptor.script) {
            return source;
        }
        lang = descriptor.script.lang || 'js';
        fileInfo.source = descriptor.script.content;
    }
    let parser = getParser_1.default();
    let parserOption = transformationModule.parser;
    // force inject `parser` option for .tsx? files, unless the module specifies a custom implementation
    if (typeof parserOption !== 'object') {
        if (lang.startsWith('ts')) {
            parserOption = lang;
        }
    }
    if (parserOption) {
        parser =
            typeof parserOption === 'string' ? getParser_1.default(parserOption) : parserOption;
    }
    const j = jscodeshift_1.default.withParser(parser);
    const api = {
        j,
        jscodeshift: j,
        stats: () => { },
        report: () => { },
    };
    const out = transformation(fileInfo, api, params);
    if (!out) {
        return source; // skipped
    }
    // need to reconstruct the .vue file from descriptor blocks
    if (extension === '.vue') {
        if (out === descriptor.script.content) {
            return source; // skipped, don't bother re-stringifying
        }
        descriptor.script.content = out;
        return stringify_sfc_descriptor_1.default(descriptor);
    }
    return out;
}
exports.default = runTransformation;