mirror of
https://github.com/jquery/jquery.git
synced 2024-11-23 02:54:22 +00:00
2bdecf8b7b
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
32 lines
906 B
JavaScript
32 lines
906 B
JavaScript
"use strict";
|
|
|
|
// Process files for distribution.
|
|
module.exports = async function processForDist( text, filename ) {
|
|
if ( !text ) {
|
|
throw new Error( "text required for processForDist" );
|
|
}
|
|
|
|
if ( !filename ) {
|
|
throw new Error( "filename required for processForDist" );
|
|
}
|
|
|
|
// Ensure files use only \n for line endings, not \r\n
|
|
if ( /\x0d\x0a/.test( text ) ) {
|
|
throw new Error( filename + ": Incorrect line endings (\\r\\n)" );
|
|
}
|
|
|
|
// Ensure only ASCII chars so script tags don't need a charset attribute
|
|
if ( text.length !== Buffer.byteLength( text, "utf8" ) ) {
|
|
let message = filename + ": Non-ASCII characters detected:\n";
|
|
for ( let i = 0; i < text.length; i++ ) {
|
|
const c = text.charCodeAt( i );
|
|
if ( c > 127 ) {
|
|
message += "- position " + i + ": " + c + "\n";
|
|
message += "==> " + text.substring( i - 20, i + 20 );
|
|
break;
|
|
}
|
|
}
|
|
throw new Error( message );
|
|
}
|
|
};
|