jqllib
TypeScript/Javascript functions to help write Mixpanel JQL queries, optionally in a typesafe way.
Types
JQL<T>
is a typesafe string containing a JQL query expected to return data of type T from Mixpanel. "Typesafe string" means that for noncompatible types X, Y, a JQL<X>
can't be assigned to a JQL<Y>
.
To carry the invisible type parameter, it inherits from String
. So if you want a primitive string
, cast as string
. However, it will behave like any normal string when, say, concatenating.
MPEvent
and MPPerson
are interfaces modeling Mixpanel Event and Person objects, and GroupedEvents<E>
is a Mixpanel distinctId
and list of events of type E
(genericized in case you want to be returning slimmed-down event objects).
Usage
// Query for all the Account Created events in a week (inclusive) in July. // Posting to Mixpanel API returns:// [{name: 'Account Created', distinct_id: 1234, properties: {...}, ...}] jqllib .fetchgroupedByUserQuery .then // Posting to Mixpanel API returns:// User 9101 clicked Buttons A/B 3 times// User 9505 clicked Buttons A/B 5 times// ... // Posting to Mixpanel API returns:// [{distinctId: '1', time: 1478883954772, properties: {'$first_name': 'Jose', ...}},// {distinctId: '9fc1e', time: 1478893934721, properties: {...}}]
Running
This just gives you strings. To run them, post them to Mixpanel's API as per their docs, or use the (Node-only, currently) jqllib-fetch
package.