...

View Full Version : JS File Publisher.



Vladdy
11-19-2002, 01:29 AM
ASP script to publish *.js scripts on your server, stripping off all the comments and extra spaces. Depending on your coding habbits the size can be reduced by a factor of two or so. Also you give some extra headache to those stealing your work :) .


<%@ Language =JScript EnableSessionState = False%>
<%
Response.Buffer = true;
Response.Expires = 0;
%>
<!--#include file="FileUpload.asp"-->
<html>
<head>
<title>Publish JavaScript</title>
</head>
<body>
<%
scriptsFolder = 'ClientScripts/';

if(Request.QueryString('Submit')=='True')
{ fileName = fileFields(0,2);
pFN=/.*\\(.*)/;
fileName = fileName.replace(pFN,"$1");
if(fileName.length > 0)
{ code = fileFields(0,1);
%>
<h3>Publishing file: <%Response.Write(fileName);%> </h3>
<p>Orginal Code: (size: <%Response.Write(0.001*code.length);%> KB)</p>
<% pStartComment = /\/\*/;
pEndComment = /\*\//;
pSLComment = /\/\/[^\n]*/g;
pExtraSpace = /\s+/g;
pSpace = /\s?([\{\};\=\(\)\\\/\+\*-])\s?/g;
pieces = code.split(pStartComment);
code = '';
for(i=0; i<pieces.length;i++)
{ code += pieces[i].split(pEndComment)[1];
}
code = code.replace(pSLComment,'');
code = code.replace(pExtraSpace,' ');
code = code.replace(pSpace,'$1');
savePath = Server.MapPath(scriptsFolder + fileName);
var fso = Server.CreateObject("Scripting.FileSystemObject");
var scriptFile = fso.CreateTextFile(savePath, true);
scriptFile.Write(code);
scriptFile.Close();
%>
<p>Published file: (size: <%Response.Write(0.001*code.length);%> KB)</p>
<%
}
else
{
%>
<h3>File not found</h3>
<%
}
}
else
{
%>
<form action="PublishJS.asp?Submit=True" method="post" enctype="multipart/form-data">
<input type="file" name="File" value="" style="width:100%;" />
<input type="submit" name="Submit" value="Submit" />
</form>
<%
}
%>
</body>
</html>



FileUpload.asp is attached with *.txt extension



EZ Archive Ads Plugin for vBulletin Copyright 2006 Computer Help Forum