All files parse.ts

100% Statements 23/23
100% Branches 7/7
100% Functions 1/1
100% Lines 23/23

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30            1x 4x 4x 4x 4x 1x 1x 1x 1x 1x 1x 1x 1x 1x 4x 4x 4x 4x 4x 4x 4x 4x 4x  
import { styleText } from 'node:util';
import type {
    ModuleLinkPluginOptions,
    ParsedModuleLinkPluginOptions
} from './types';
 
export function parseOptions(
    options: ModuleLinkPluginOptions
): ParsedModuleLinkPluginOptions {
    const exports: ParsedModuleLinkPluginOptions['exports'] = {};
    if (options.exports) {
        for (const [name, item] of Object.entries(options.exports)) {
            exports[name] = {
                name,
                rewrite: !!item.rewrite,
                file: item.file,
                identifier: `${options.name}/${name}`
            };
        }
    }
    return {
        name: options.name,
        ext: options.ext ? `.${options.ext}` : '.mjs',
        exports,
        imports: options.imports ?? {},
        injectChunkName: options.injectChunkName ?? false,
        preEntries: options.preEntries ?? []
    };
}