• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

jaubourg / wires / 3624033844

pending completion
3624033844

push

github

GitHub
build(deps-dev): bump eslint from 8.16.0 to 8.29.0

289 of 306 branches covered (94.44%)

526 of 537 relevant lines covered (97.95%)

1805.28 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

97.67
/lib/generateModule.js
1
"use strict";
2

3
const isIdentifier = require( `./isIdentifier` );
23✔
4
const { resolve } = require( `path` );
23✔
5
const { readFileSync } = require( `fs` );
23✔
6

7
const rJS = /\.js$/;
23✔
8

9
const exportables = new Map();
23✔
10

11
const FROM = ` from ${ JSON.stringify( resolve( __dirname, `exportable/funcs.mjs` ) ) };`;
23✔
12

13
const generateFuncsImport = identifier => `import ${ identifier }${ FROM }`;
24✔
14

15
const generateIdentifiers = ( set, number ) => {
23✔
16
    let candidate = ``;
18✔
17
    const selected = [];
18✔
18
    while ( selected.length < number ) {
18✔
19
        candidate += `$`;
36✔
20
        if ( !set.has( candidate ) ) {
36!
21
            selected.push( candidate );
36✔
22
        }
23
    }
24
    return selected;
18✔
25
};
26

27
module.exports = item => {
23✔
28
    if ( typeof item === `string` ) {
261✔
29
        // eslint-disable-next-line no-param-reassign
30
        item = item.replace( rJS, `.mjs` );
2✔
31
        let source = exportables.get( item );
2✔
32
        if ( source === undefined ) {
2✔
33
            exportables.set( item, ( source = readFileSync( item, `utf8` ) ) );
1✔
34
        }
35
        return source;
2✔
36
    }
37
    let keys = item.getKeys();
259✔
38
    if ( keys && keys.length ) {
259✔
39
        keys = keys.filter( isIdentifier );
21✔
40
        if ( keys.length ) {
21✔
41
            // eslint-disable-next-line no-magic-numbers
42
            const [ funcsIdentifier, objectIdentifier ] = generateIdentifiers( new Set( keys ), 2 );
18✔
43
            return (
18✔
44
                `${
45
                    generateFuncsImport( funcsIdentifier )
46
                }const ${
47
                    objectIdentifier
48
                }=${
49
                    item.getCode( funcsIdentifier )
50
                };export default ${
51
                    objectIdentifier
52
                };export const{${
53
                    keys.join( `,` )
54
                }}=${
55
                    objectIdentifier
56
                };`
57
            );
58
        }
59
    }
60
    return `${ item.isCode() ? generateFuncsImport( `$` ) : `` }export default ${ item.getCode( `$` ) };`;
241✔
61
};
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc