jquery/test/node_smoke_tests/module/lib/jquery-module-specifier.js
Timmy Willison 2bdecf8b7b
Build: migrate most grunt tasks off of grunt
Updated tasks include:

- lint
- npmcopy
- build, minify, and process for distribution.
- new custom build command using yargs
- compare size of minified/gzip built files
- pretest scripts, including qunit-fixture, babel transpilation, and npmcopy
- node smoke tests
- promises aplus tests
- new watch task using `rollup.watch` directly

Also:

- upgraded husky and added the new lint command
- updated lint config to use new "flat" config format. See https://eslint.org/docs/latest/use/configure/configuration-files-new
- Temporarily disabled one lint rule until flat config is supported by eslint-plugin-import. See https://github.com/import-js/eslint-plugin-import/issues/2556
- committed package-lock.json
- updated all test scripts to use the new build
- added an express test server that uses middleware-mockserver (this can be used to run tests without karma)
- build-all-variants is now build:all

Close gh-5318
2023-09-18 12:39:00 -04:00

27 lines
961 B
JavaScript

import path from "node:path";
import { fileURLToPath } from "node:url";
const dirname = path.dirname( fileURLToPath( import.meta.url ) );
const ROOT_DIR = path.resolve( dirname, "..", "..", "..", ".." );
// import does not work with Windows-style paths
function ensureUnixPath( path ) {
return path.replace( /^[a-z]:/i, "" ).replace( /\\+/g, "/" );
}
// If `jQueryModuleSpecifier` is a real relative path, make it absolute
// to make sure it resolves to the same file inside utils from
// a subdirectory. Otherwise, leave it as-is as we may be testing `exports`
// so we need input as-is.
export const getJQueryModuleSpecifier = () => {
const jQueryModuleInputSpecifier = process.argv[ 2 ];
if ( !jQueryModuleInputSpecifier ) {
throw new Error( "jQuery module specifier not passed" );
}
return jQueryModuleInputSpecifier.startsWith( "." ) ?
ensureUnixPath( path.resolve( ROOT_DIR, jQueryModuleInputSpecifier ) ) :
jQueryModuleInputSpecifier;
};