purgetss 6.2.18 → 6.2.19
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.
- package/index.js +33 -31
- package/lib/templates/purgetss.config.js +1 -0
- package/package.json +1 -1
- package/properties-only.json +0 -1
- package/types.json +0 -1
package/index.js
CHANGED
|
@@ -100,7 +100,8 @@ const srcMaterialSymbolsTSSFile = path.resolve(__dirname, './dist/materialsymbol
|
|
|
100
100
|
const srcConfigFile = path.resolve(__dirname, './lib/templates/purgetss.config.js');
|
|
101
101
|
|
|
102
102
|
const configFile = (fs.existsSync(projectsConfigJS)) ? require(projectsConfigJS) : require(srcConfigFile);
|
|
103
|
-
configFile.purge = configFile.purge ?? { mode: 'all' };
|
|
103
|
+
configFile.purge = configFile.purge ?? { mode: 'all', method: 'sync' };
|
|
104
|
+
configFile.purge.method = configFile.purge.method ?? 'sync';
|
|
104
105
|
configFile.theme.extend = configFile.theme.extend ?? {};
|
|
105
106
|
|
|
106
107
|
const configOptions = (configFile.purge && configFile.purge.options) ? configFile.purge.options : {};
|
|
@@ -111,13 +112,23 @@ if (configOptions) {
|
|
|
111
112
|
configOptions.plugins = configOptions.plugins ?? [];
|
|
112
113
|
}
|
|
113
114
|
|
|
115
|
+
let methodCommand
|
|
116
|
+
let oppositeCommand
|
|
117
|
+
if (configFile.purge.method === 'sync') {
|
|
118
|
+
oppositeCommand = "require('child_process').exec('purgetss"
|
|
119
|
+
methodCommand = "\trequire('child_process').execSync('purgetss', logger.warn('::PurgeTSS:: Auto-Purging ' + event.dir.project));"
|
|
120
|
+
} else {
|
|
121
|
+
oppositeCommand = "require('child_process').execSync('purgetss"
|
|
122
|
+
methodCommand = "\trequire('child_process').exec('purgetss', logger.warn('::PurgeTSS:: Auto-Purging ' + event.dir.project));"
|
|
123
|
+
}
|
|
114
124
|
const srcJMKFile = path.resolve(__dirname, './lib/templates/alloy.jmk');
|
|
115
125
|
|
|
116
126
|
//! Interfase
|
|
117
127
|
//! Command: purgetss
|
|
118
128
|
function purgeClasses(options) {
|
|
119
129
|
purgingDebug = options.debug;
|
|
120
|
-
|
|
130
|
+
let recentlyCreated = makeSureFileExists(projectsAppTSS)
|
|
131
|
+
if (alloyProject() && Date.now() > (fs.statSync(projectsAppTSS).mtimeMs + 2000) || recentlyCreated) {
|
|
121
132
|
start();
|
|
122
133
|
|
|
123
134
|
init(options);
|
|
@@ -149,6 +160,8 @@ function purgeClasses(options) {
|
|
|
149
160
|
logger.file('app.tss');
|
|
150
161
|
|
|
151
162
|
finish();
|
|
163
|
+
} else {
|
|
164
|
+
logger.warn('Purged less than 2 seconds ago!');
|
|
152
165
|
}
|
|
153
166
|
}
|
|
154
167
|
module.exports.purgeClasses = purgeClasses;
|
|
@@ -174,7 +187,7 @@ function init(options) {
|
|
|
174
187
|
if (fs.existsSync(projectsAlloyJMKFile)) {
|
|
175
188
|
if (!fs.readFileSync(projectsAlloyJMKFile, 'utf8').includes('::PurgeTSS::')) {
|
|
176
189
|
addHook();
|
|
177
|
-
} else if (fs.readFileSync(projectsAlloyJMKFile, 'utf8').includes(
|
|
190
|
+
} else if (fs.readFileSync(projectsAlloyJMKFile, 'utf8').includes(oppositeCommand)) {
|
|
178
191
|
deleteHook();
|
|
179
192
|
addHook();
|
|
180
193
|
}
|
|
@@ -214,7 +227,7 @@ function watchMode(options) {
|
|
|
214
227
|
deleteHook();
|
|
215
228
|
} else if (!fs.readFileSync(projectsAlloyJMKFile, 'utf8').includes('::PurgeTSS::')) {
|
|
216
229
|
addHook();
|
|
217
|
-
} else if (fs.readFileSync(projectsAlloyJMKFile, 'utf8').includes(
|
|
230
|
+
} else if (fs.readFileSync(projectsAlloyJMKFile, 'utf8').includes(`//${methodCommand}`)) {
|
|
218
231
|
enableHook();
|
|
219
232
|
} else {
|
|
220
233
|
logger.warn(chalk.yellow('Auto-Purging hook already present!'));
|
|
@@ -222,8 +235,6 @@ function watchMode(options) {
|
|
|
222
235
|
} else if (!options.off) {
|
|
223
236
|
createJMKFile();
|
|
224
237
|
}
|
|
225
|
-
} else {
|
|
226
|
-
logger.warn(chalk.yellow('You can’t autorun purgetss !'));
|
|
227
238
|
}
|
|
228
239
|
}
|
|
229
240
|
module.exports.watchMode = watchMode;
|
|
@@ -1070,7 +1081,7 @@ function addHook() {
|
|
|
1070
1081
|
|
|
1071
1082
|
originalJMKFile.split(/\r?\n/).forEach((line) => {
|
|
1072
1083
|
if (line.includes('pre:compile')) {
|
|
1073
|
-
line += `\n
|
|
1084
|
+
line += `\n${methodCommand}`;
|
|
1074
1085
|
}
|
|
1075
1086
|
updatedJMKFile.push(line);
|
|
1076
1087
|
});
|
|
@@ -1083,7 +1094,7 @@ function addHook() {
|
|
|
1083
1094
|
|
|
1084
1095
|
alloyJMKTemplate.split(/\r?\n/).forEach((line) => {
|
|
1085
1096
|
if (line.includes('pre:compile')) {
|
|
1086
|
-
line += `\n
|
|
1097
|
+
line += `\n${methodCommand}`;
|
|
1087
1098
|
}
|
|
1088
1099
|
updatedJMKFile.push(line);
|
|
1089
1100
|
});
|
|
@@ -1155,6 +1166,13 @@ function initIfNotConfig() {
|
|
|
1155
1166
|
}
|
|
1156
1167
|
}
|
|
1157
1168
|
|
|
1169
|
+
function makeSureFileExists(file) {
|
|
1170
|
+
if (!fs.existsSync(file)) {
|
|
1171
|
+
fs.writeFileSync(file, '')
|
|
1172
|
+
return true
|
|
1173
|
+
}
|
|
1174
|
+
}
|
|
1175
|
+
|
|
1158
1176
|
function makeSureFolderExists(folder) {
|
|
1159
1177
|
if (!fs.existsSync(folder)) {
|
|
1160
1178
|
fs.mkdirSync(folder);
|
|
@@ -1188,18 +1206,13 @@ function getViewPaths() {
|
|
|
1188
1206
|
}
|
|
1189
1207
|
|
|
1190
1208
|
function getClassesOnlyFromXMLFiles() {
|
|
1191
|
-
let viewPaths = getViewPaths();
|
|
1192
|
-
|
|
1193
1209
|
let allClasses = [];
|
|
1194
|
-
|
|
1195
|
-
|
|
1196
|
-
});
|
|
1210
|
+
let viewPaths = getViewPaths();
|
|
1211
|
+
_.each(viewPaths, viewPath => allClasses.push(extractClassesOnly(fs.readFileSync(viewPath, 'utf8'), viewPath)));
|
|
1197
1212
|
|
|
1198
1213
|
let uniqueClasses = [];
|
|
1199
1214
|
_.each(_.uniq(_.flattenDeep(allClasses)).sort(), uniqueClass => {
|
|
1200
|
-
if (filterCharacters(uniqueClass))
|
|
1201
|
-
uniqueClasses.push(uniqueClass);
|
|
1202
|
-
}
|
|
1215
|
+
if (filterCharacters(uniqueClass)) uniqueClasses.push(uniqueClass);
|
|
1203
1216
|
});
|
|
1204
1217
|
|
|
1205
1218
|
return uniqueClasses.sort();
|
|
@@ -1208,29 +1221,18 @@ function getClassesOnlyFromXMLFiles() {
|
|
|
1208
1221
|
function getUniqueClasses() {
|
|
1209
1222
|
localStart();
|
|
1210
1223
|
|
|
1211
|
-
let viewPaths = getViewPaths();
|
|
1212
|
-
|
|
1213
1224
|
let allClasses = [];
|
|
1225
|
+
let viewPaths = getViewPaths();
|
|
1214
1226
|
_.each(viewPaths, viewPath => {
|
|
1215
1227
|
let file = fs.readFileSync(viewPath, 'utf8');
|
|
1216
|
-
if (file)
|
|
1217
|
-
allClasses.push((configFile.purge.mode === 'all') ? file.match(/[^<>"'`\s]*[^<>"'`\s:]/g) : extractClasses(file, viewPath));
|
|
1218
|
-
}
|
|
1228
|
+
if (file) allClasses.push((configFile.purge.mode === 'all') ? file.match(/[^<>"'`\s]*[^<>"'`\s:]/g) : extractClasses(file, viewPath));
|
|
1219
1229
|
});
|
|
1220
1230
|
|
|
1221
|
-
if (configOptions.safelist)
|
|
1222
|
-
_.each(configOptions.safelist, safe => {
|
|
1223
|
-
allClasses.push(safe);
|
|
1224
|
-
})
|
|
1225
|
-
}
|
|
1231
|
+
if (configOptions.safelist) _.each(configOptions.safelist, safe => allClasses.push(safe))
|
|
1226
1232
|
|
|
1227
1233
|
let uniqueClasses = [];
|
|
1228
|
-
|
|
1229
|
-
// Clean even more unnecessary names
|
|
1230
1234
|
_.each(_.uniq(_.flattenDeep(allClasses)).sort(), uniqueClass => {
|
|
1231
|
-
if (filterCharacters(uniqueClass))
|
|
1232
|
-
uniqueClasses.push(uniqueClass);
|
|
1233
|
-
}
|
|
1235
|
+
if (filterCharacters(uniqueClass)) uniqueClasses.push(uniqueClass)
|
|
1234
1236
|
});
|
|
1235
1237
|
|
|
1236
1238
|
localFinish('Get Unique Classes');
|
package/package.json
CHANGED