@haxall/haxall
    Preparing search index...

    Class FilePack

    FilePack is an in-memory cache of multiple text files to service static resources via HTTP. It takes one or more text files and creates one compound file. The result is stored in RAM using GZIP compression. Or you can use the pack utility method to store the result to your own files/buffers.

    The onGet method is used to service GET requests for the bundle. The Content-Type header is set based on file extension of files bundled. It also implictly supports ETag/Last-Modified for 304 optimization.

    The core factory is the makeFiles constructor. A suite of utility methods is provided for standard bundling of Fantom JavaScrit and CSS files.

    Hierarchy (View Summary)

    Implements

    Index

    Constructors

    Properties

    type$: Type

    Methods

    • Return a negative integer, zero, or a positive integer if this object is less than, equal to, or greater than the specified object:

      this < that   =>  <0
      this == that => 0
      this > that => >0

      This method may also be accessed via the < <= <=> >= and > shortcut operators. If not overridden the default implementation compares the toStr representations. Also see docLang.

      Examples:

      3.compare(8)  =>  -1
      8.compare(3) => 1
      8.compare(8) => 0
      3 <=> 8 => -1 // shortcut for 3.compare(8)

      Parameters

      Returns number

    • Compare this object to the specified for equality. This method may be accessed via the == and != shortcut operators. If not overridden the default implementation compares for reference equality using the === operator. If this method is overridden, then hash() must also be overridden such that any two objects which return true for equals() must return the same value for hash(). This method must accept null and return false.

      Parameters

      Returns boolean

    • Return a unique hashcode for this object. If a class overrides hash() then it must ensure if equals() returns true for any two objects then they have same hash code.

      Returns number

    • Return if this Obj is immutable and safe to share between threads:

      • an instance of a const class
      • the result of toImmutable on List, Map, or Buf
      • a Func object may or may not be immutable - see sys::Func.
      • other instances are assumed mutable and return false

      Returns boolean

    • Convenience method to respond to a DELETE request. Default implementation returns a 501 Not implemented error.

      Returns void

    • Service an HTTP GET request for this bundle file

      Returns void

    • Convenience method to respond to a HEAD request. Default implementation returns a 501 Not implemented error.

      Returns void

    • Convenience method to respond to a OPTIONS request. Default implementation returns a 501 Not implemented error.

      Returns void

    • Convenience method to respond to a POST request. Default implementation returns a 501 Not implemented error.

      Returns void

    • Convenience method to respond to a PUT request. Default implementation returns a 501 Not implemented error.

      Returns void

    • Service a web request. The default implementation routes to onGet, onPost, etc based on the request's method.

      Returns void

    • Convenience method to respond to a TRACE request. Default implementation returns a 501 Not implemented error.

      Returns void

    • The WebReq instance for this current web request. Raise an exception if the current actor thread is not serving a web request.

      Returns WebReq

    • The WebRes instance for this current web request. Raise an exception if the current actor thread is not serving a web request.

      Returns WebRes

    • Get an immutable representation of this instance or throw NotImmutableErr if this object cannot be represented as an immutable:

      • if type is const, return this
      • if already an immutable List, Map, Buf, or Func return this
      • if a List, then attempt to perform a deep clone by calling toImmutable on all items
      • if a Map, then attempt to perform a deep clone by calling toImmutable on all values (keys are already immutable)
      • some Funcs can be made immutable - see sys::Func
      • if a Buf create immutable copy, see sys::Buf
      • any other object throws NotImmutableErr

      Returns Readonly<this>

    • Return a string representation of this object.

      Returns string

    • Trap a dynamic call for handling. Dynamic calls are invoked with the -> shortcut operator:

      a->x        a.trap("x", null)
      a->x() a.trap("x", null)
      a->x = b a.trap("x", [b])
      a->x(b) a.trap("x", [b])
      a->x(b, c) a.trap("x", [b, c])

      The default implementation provided by Obj attempts to use reflection. If name maps to a method, it is invoked with the specified arguments. If name maps to a field and args.size is zero, get the field. If name maps to a field and args.size is one, set the field and return args[0]. Otherwise throw UnknownSlotErr.

      Parameters

      Returns JsObj

    • Get the Type instance which represents this object's class. Also seeType.of or Pod.of.

      Returns Type

    • This method called whenever an it-block is applied to an object. The default implementation calls the function with this, and then returns this.

      Parameters

      • f: (arg0: this) => void

      Returns this

    • Write x.toStr to standard output followed by newline. If x is null then print "null". If no argument is provided then print an empty line.

      Parameters

      Returns void

    • Construct a bundle for the given list of text files

      Parameters

      Returns FilePack

    • Pack multiple text files together and write to the given output stream. A trailing newline is automatically added if the file is missing one. Empty files are skipped. The stream is not closed. Return the given out stream.

      Parameters

      Returns OutStream

    • Compile the indexed props database into a JavaScript file "index-props.js"

      Parameters

      Returns File

    • Compile the locale props into a JavaScript file "{locale}.js"

      Parameters

      Returns File

    • Compile the mime type database into a Javascript file "mime.js"

      Returns File

    • Map a set of pods to "/res/css/{name}.css" CSS files. Ignore pods that are missing a CSS file. This method does not flatten/order the pods.

      Parameters

      Returns List<File>

    • Get the standard pod JavaScript file or null if no JS code. The standard location used by the Fantom JS compiler is "/{pod-name}.js"

      Parameters

      Returns File

    • Map a set of pods to "/{name}.js" JavaScript files. Ignore pods that are missing a JavaScript file. This method does not flatten/order the pods.

      Parameters

      Returns List<File>

    • Compile a list of pod JavaScript files into a single unified source map file. The list of files passed to this method should match exactly the list of files used to create the corresponding JavaScript FilePack. If the file is the standard pod JS file, then we will include an offset version of "{pod}.js.map" generated by the JavaScript compiler. Otherwise if the file is another JavaScript file (such as units.js) then we just add the appropiate offset.

      The sourceRoot option may be passed in to replace "/dev/{podName}" as the root URI used to fetch source files from the server.

      Parameters

      Returns File

    • Compile the timezone database into a JavaScript file "tz.js"

      Returns File

    • Compile the unit database into a JavaScript file "unit.js"

      Returns File