cljs/api

goog namespaces

shaunlebron opened this issue · 5 comments

Perhaps we can create a dedicated docs area for commonly used goog namespaces. Preliminary plan is to simply allow manual cljsdoc files for goog things:

  • cljsdoc/<ns>/<symbol>.cljsdoc files for goog symbols
  • cljsdoc/<ns>.cljsdoc for goog namespace

We can use this Closure API data ripped from the official docs to get a simple index used for name validation and type info.


Related discussion:

I'll skip history tracking or parsing of course.
screen shot 2015-09-23 at 12 03 19 pm
screen shot 2015-09-23 at 12 03 29 pm
screen shot 2015-09-23 at 12 03 49 pm

added goog.js to repo

Google Closure Library is like the large standard library of clojurescript, like that of Python, Ruby, etc.

  • peter shuck's talk

Pasted this into the readme, generated from googs.clj

:i  :ns               :overview
0   goog.array        Utilities for manipulating arrays.
1   goog.asserts      Utilities to check the preconditions, postconditions and invariants runtime.
2   goog.color        Utilities related to color and color conversion.
3   goog.crypt        Namespace with crypto related helper functions.
4   goog.cssom        CSS Object Model helper functions.
5   goog.date         Functions and objects for date representation and manipulation.
6   goog.db           Wrappers for the HTML5 IndexedDB.
7   goog.debug        Logging and debugging utilities.
8   goog.dispose      The dispose method is used to clean up references and resources.
9   goog.dom          Utilities for manipulating the browser's Document Object Model Inspiration taken *heavily* from mochikit (http://mochikit.com/).
10  goog.events       An event manager for both native browser event targets and custom JavaScript event targets (`goog.events.Listenable`).
11  goog.format       Provides utility functions for formatting strings, numbers etc.
12  goog.fs           Wrappers for the HTML5 File API.
13  goog.functions    Utilities for creating functions.
14  goog.fx           Legacy stub for the goog.fx namespace.
15  goog.graphics     Graphics utility functions and factory methods.
16  goog.iter         Python style iteration utilities.
17  goog.json         JSON utility functions.
18  goog.locale       Functions for dealing with Date formatting & Parsing, County and language name, TimeZone list.
19  goog.log          Basic strippable logging definitions.
20  goog.math         Additional mathematical functions.
21  goog.memoize      Tool for caching the result of expensive deterministic functions.
22  goog.messaging    Functions for manipulating message channels.
23  goog.object       Utilities for manipulating objects/maps/hashes.
24  goog.positioning  Common positioning code.
25  goog.proto        Protocol buffer serializer.
26  goog.reflect      Useful compiler idioms.
27  goog.singleton    Provides an implementation for getInstance() methods.
28  goog.soy          Provides utility methods to render soy template.
29  goog.string       Utilities for string manipulation.
30  goog.structs      Generics method for collection-like classes and objects.
31  goog.style        Utilities for element styles.
32  goog.testing      Enable mocking of functions not attached to objects whether they be global / top-level or anonymous methods / closures.
33  goog.tweak        Provides facilities for creating and querying tweaks.
34  goog.url          Class for parsing strings into URLs using browser native resolution.
35  goog.vec          Supplies global data types and constants for the vector math library.
36  goog.webgl        Constants used by the WebGL rendering, including all of the constants used from the WebGL context.
37  goog.window       Utilities for window manipulation.

some highlight features I noticed:

  • goog.array - for shuffle, binary insert
  • goog.color - color conversion
  • goog.crypt - for md5, sha
  • goog.cssom - for modifying stylesheets
  • goog.date - for defining date intervals
  • goog.format - email parsing, html/json pretty printer
  • goog.string - title/camel case
  • goog.math.interpolators - has monotonic cubic splines to prevent dipping past control points

I also forgot about the Closure Cheatsheet, and noticed it has been down since 2018. archived here

Cheatsheet’s markdown files are here though: https://github.com/kuzmisin/closurecheatsheet