js-minifier-css 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/README.md +1 -0
  2. package/miniCss.js +69 -0
  3. package/package.json +23 -0
package/README.md ADDED
@@ -0,0 +1 @@
1
+ README.md
package/miniCss.js ADDED
@@ -0,0 +1,69 @@
1
+ /*!
2
+ * https://www.codeconvert.ai/python-to-javascript-converter?id=3918c7b4-c665-4873-8f22-8895bb7487e5
3
+ */
4
+ const fs = require('fs');
5
+ const path = require('path');
6
+
7
+ function minificar_css(input_css, remove_comments = true) {
8
+ if (remove_comments) {
9
+ input_css = input_css.replace(/\/\*.*?\*\//gs, '');
10
+ }
11
+
12
+ let css_one_line_per_rule = input_css.replace(/\s*{\s*/g, '{');
13
+ css_one_line_per_rule = css_one_line_per_rule.replace(/\s*}\s*/g, '}\n');
14
+ css_one_line_per_rule = css_one_line_per_rule.replace(/\s*;\s*/g, ';');
15
+ css_one_line_per_rule = css_one_line_per_rule.replace(/\s+/g, ' ');
16
+
17
+ css_one_line_per_rule = css_one_line_per_rule.replace(/}/g, '}\n').trim();
18
+ return css_one_line_per_rule;
19
+ }
20
+
21
+ function minify_css_file(input_file, output_file, remove_comments = true) {
22
+ const css_content = fs.readFileSync(input_file, { encoding: 'utf-8' });
23
+ const minified_css = minificar_css(css_content, remove_comments);
24
+ fs.writeFileSync(output_file, minified_css, { encoding: 'utf-8' });
25
+ }
26
+
27
+ function minify_css_directory(input_directory, remove_comments = true) {
28
+ function walkDir(dir) {
29
+ const files = fs.readdirSync(dir, { withFileTypes: true });
30
+ for (const file of files) {
31
+ const fullPath = path.join(dir, file.name);
32
+ if (file.isDirectory()) {
33
+ walkDir(fullPath);
34
+ } else if (file.isFile() && file.name.endsWith('.css')) {
35
+ const output_file = path.join(dir, file.name.replace('.css', '.min.css'));
36
+ minify_css_file(fullPath, output_file, remove_comments);
37
+ console.log(`Minificación completada para: ${fullPath}.\nArchivo guardado como: ${output_file}`);
38
+ }
39
+ }
40
+ }
41
+ walkDir(input_directory);
42
+ }
43
+
44
+ if (require.main === module) {
45
+ // Configuración
46
+ // True para procesar un directorio
47
+ const modo_directorio = true;
48
+ const remove_comments = false;
49
+
50
+ if (modo_directorio) {
51
+ const input_directory = './platform/themes/ninico/public/css';
52
+ if (fs.existsSync(input_directory)) {
53
+ minify_css_directory(input_directory, remove_comments);
54
+ } else {
55
+ console.log(`El directorio ${input_directory} no existe.`);
56
+ }
57
+ } else {
58
+ // archivo de entrada
59
+ const input_file = '';
60
+ // archivo de salida
61
+ const output_file = '';
62
+ if (fs.existsSync(input_file)) {
63
+ minify_css_file(input_file, output_file, remove_comments);
64
+ console.log(`Minificación completada. Archivo guardado como: ${output_file}`);
65
+ } else {
66
+ console.log(`El archivo ${input_file} no existe.`);
67
+ }
68
+ }
69
+ }
package/package.json ADDED
@@ -0,0 +1,23 @@
1
+ {
2
+ "name": "js-minifier-css",
3
+ "version": "1.0.0",
4
+ "description": "Minificador para archivos css en modo directorio o archivos individual",
5
+ "license": "MIT",
6
+ "main": "miniCss.js",
7
+ "files": [
8
+ "README.md",
9
+ "miniCss.js"
10
+ ],
11
+ "author": {
12
+ "name": "suh4tdev",
13
+ "email": "",
14
+ "url": "https://github.com/suh4tdev"
15
+ },
16
+ "keywords": [
17
+ "minifier",
18
+ "css"
19
+ ],
20
+ "devDependencies": {
21
+ "fs": "^0.0.1-security"
22
+ }
23
+ }