"rlScriptShrink.js" (rlBoot.bootRefugeeLib
does not load this script by default)
Experimental tokenization based script shrinking/expanding.
Limitation: string constants containing a "@:" prefixed by one or
more of the modified base64 symbols may lead to those being recursively replaced when a shrunk
script is being expanded again.
- To Do:
-
- add method to load, shrink and save in one step / loadFromURL(s), loadFromFile(s)
Members
-
(private, static, constant) b
-
modified base64 symbols using chars `# instead of +/ (which are valid js operators) which are used in placeholder/token ids
- Default Value:
- ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789`#
Methods
-
(static) getExpansion(s, p, c) → {string}
-
Replace token identifiers in a source string with token contents.
Parameters:
Name Type Description s
string a string containing prefixed(@id) and/or suffixed(id@:) token identifiers (id is a number encoded in modified base64 symbols)
p
Array.<string> an array containing the token contents for the token identifiers (index is the token id)
c
number set negative to replace prefixed, zero or positive to replace suffixed token identifiers in s with the token contents
Returns:
the modified source string where the token identifiers have been replaced with the token contents
- Type
- string
-
(static) getPreparedData(shrinkData) → {Array.<string>}
-
Get prepared data from the given shrink data.
Parameters:
Name Type Description shrinkData
rlScriptShrink.shrinkData previously generated shrink data
Returns:
an array of strings ready to be passed to
rlScriptShrink.getSelfExpandingScript
- Type
- Array.<string>
-
(static) getSelfExpandingScript(preparedData) → {string}
-
Get a string whose content can be saved to a .js file which expands itself when it is included in a <script> tag.
Parameters:
Name Type Description preparedData
Array.<string> must be the data returned from
rlScriptShrink.getPreparedData
Returns:
- Type
- string
-
(static) getShrinkData(s) → {rlScriptShrink.shrinkData}
-
Get shrink data for the given script content.
Parameters:
Name Type Description s
string a string containing the script content to shrink
Returns:
shrinkData ready to be passed to
rlScriptShrink.getPreparedData
Type Definitions
-
shrinkData
-
(not an actual type, use object literals with these properties)
Properties:
Name Type Description stringTokens
Array.<string> contains all found string tokens from a script
codeTokens
Array.<string> contains all found code tokens from a script which were worth replacing to save on character count
tokenizedInput
string a shrunk version of a script where unnecessary whitespace and all comments haven been stripped and string and code tokens have been replaced with placeholders (the placeholder ids are encoded numbers in modified base64 symbols, the ids refer to indices within the stringTokens and codeTokens arrays)
inputCharCount
number the number of characters in the source script
tokenizedCharCount
number the number of character in the tokenized shrunk version of the script