示例#1
0
function resolveBuiltin(target) {
    var resolved = lassoResolveFrom(__dirname, target);
    if (!resolved) {
        throw new Error('Missing builtin: ' + target);
    }
    return resolved.path;
}
示例#2
0
        transform: function (code, context) {
            var file = context.dependency.file;

            if (!file || file.includes('node_modules/') || file.includes('test/') || file.includes('coverage/') || file.includes('benchmark/')) return code;

            var unwrappedCode;

            if (context.dependency.type === 'commonjs-def') {
                unwrappedCode = code.replace(/^\$\_mod[^\n]+?\{ /, '').replace(/\n\}\);$/, '');
            }

            var actualFile = resolve(__dirname, file).path;
            var instrumentedCode = instrumenter.instrumentSync(unwrappedCode || code, actualFile);

            return unwrappedCode ? code.replace(unwrappedCode, instrumentedCode) : instrumentedCode;
        }
示例#3
0
文件: index.js 项目: lasso-js/lasso
async function defaultUrlResolver (url, lassoContext) {
    if (url.indexOf('//') !== -1) {
        return url;
    }

    var queryStart = url.indexOf('?');
    var query;
    var target = url;

    if (queryStart !== -1) {
        query = url.substring(queryStart + 1);
        target = url.substring(0, queryStart);
    }

    if (target.charAt(0) === '/' && target.charAt(1) !== '/') {
        target = nodePath.join(lassoContext.getProjectRoot(), target);
    } else if (target.startsWith(REQUIRE_PREFIX)) {
        target = target.substring(REQUIRE_PREFIX.length).trim();

        var from;
        if (lassoContext.dependency) {
            from = lassoContext.dependency.getDir(lassoContext);
        } else {
            from = lassoContext.getProjectRoot();
        }

        var resolved = lassoResolveFrom(from, target);

        if (resolved) {
            target = resolved.path;
        } else {
            var err = new Error('Module not found: ' + target + ' (from: ' + from + ')');
            err.target = target;
            err.from = from;
            err.code = 'MODULE_NOT_FOUND';
            throw err;
        }
    }

    if (query) {
        // Add back the query string
        target += '?' + query;
    }

    return target;
}