Skip to content

Commit

Permalink
split types out (#30)
Browse files Browse the repository at this point in the history
  • Loading branch information
tsotimus authored Feb 2, 2024
1 parent fe218cd commit c3d6bc1
Show file tree
Hide file tree
Showing 16 changed files with 51 additions and 26 deletions.
6 changes: 3 additions & 3 deletions apps/example-react/src/App.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,13 @@ import {
useVitePostHog,
useFeatureFlagEnabled,
} from "vite-plugin-posthog/react";
import { useConsent } from "react-posthog-consent/vite";
// import { useConsent } from "react-posthog-consent/vite";

function App() {
const [count, setCount] = useState(0);
const posthog = useVitePostHog();
const showWelcomeMessage = useFeatureFlagEnabled("welcome-msg");
const { reset } = useConsent();
// const { reset } = useConsent();

const handleClick = () => {
posthog?.capture("count incremented");
Expand Down Expand Up @@ -40,7 +40,7 @@ function App() {
<p className="read-the-docs">
Click on the Vite and React logos to learn more
</p>
<button onClick={reset}>Custom Reset</button>
<button onClick={() => console.log("reset")}>Custom Reset</button>
<button onClick={() => posthog?.reset()}>Reset</button>
</>
);
Expand Down
4 changes: 2 additions & 2 deletions apps/example-react/vite.config.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { defineConfig, loadEnv } from "vite";
import react from "@vitejs/plugin-react";
import { VitePostHog } from "vite-plugin-posthog";
import { vitePostHog } from "vite-plugin-posthog";

// https://vitejs.dev/config/
export default ({ mode }) => {
Expand All @@ -11,7 +11,7 @@ export default ({ mode }) => {
return defineConfig({
plugins: [
react(),
VitePostHog({
vitePostHog({
apiKey: process.env.VITE_POSTHOG_KEY,
hostUrl: "https://eu.posthog.com",
isDevModeOn: true,
Expand Down
24 changes: 24 additions & 0 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions packages/vite-plugin-posthog/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@
"scripts": {
"build": "rollup -c"
},
"types": "dist/core/types.d.ts",
"typings": "dist/core/types.d.ts",
"types": "dist/core/index.d.ts",
"typings": "dist/core/index.d.ts",
"exports": {
".": {
"import": "./dist/core/index.js"
Expand Down
4 changes: 2 additions & 2 deletions packages/vite-plugin-posthog/rollup.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ const config = defineConfig([
plugins: [
typescript({
outDir: "dist/core",
include: ["src/core/**/*", "src/types.ts"],
include: ["src/core/**/*"],
}),
nodeResolve(),
],
Expand All @@ -27,7 +27,7 @@ const config = defineConfig([
plugins: [
typescript({
outDir: "dist/react",
include: ["src/react/**/*", "src/types.ts"],
include: ["src/react/**/*"],
}),
nodeResolve(),
],
Expand Down
2 changes: 1 addition & 1 deletion packages/vite-plugin-posthog/src/core/construct.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { PostHogInitConfig } from "../types";
import { PostHogInitConfig } from "./types";

const BASE_SCRIPT = `!function(t,e){var o,n,p,r;e.__SV||(window.posthog=e,e._i=[],e.init=function(i,s,a){function g(t,e){var o=e.split(".");2==o.length&&(t=t[o[0]],e=o[1]),t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}}(p=t.createElement("script")).type="text/javascript",p.async=!0,p.src=s.api_host+"/static/array.js",(r=t.getElementsByTagName("script")[0]).parentNode.insertBefore(p,r);var u=e;for(void 0!==a?u=e[a]=[]:a="posthog",u.people=u.people||[],u.toString=function(t){var e="posthog";return"posthog"!==a&&(e+="."+a),t||(e+=" (stub)"),e},u.people.toString=function(){return u.toString(1)+".people (stub)"},o="capture identify alias people.set people.set_once set_config register register_once unregister opt_out_capturing has_opted_out_capturing opt_in_capturing reset isFeatureEnabled onFeatureFlags getFeatureFlag getFeatureFlagPayload reloadFeatureFlags group updateEarlyAccessFeatureEnrollment getEarlyAccessFeatures getActiveMatchingSurveys getSurveys onSessionId".split(" "),n=0;n<o.length;n++)g(u,o[n]);e._i.push([i,s,a])},e.__SV=1)}(document,window.posthog||[]);`;

Expand Down
5 changes: 2 additions & 3 deletions packages/vite-plugin-posthog/src/core/index.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
import { HtmlTagDescriptor, Plugin } from "vite";
import { constructScript } from "./construct";
import { VitePostHogOptions, PostHogInitConfig } from "../types";

export { VitePostHogOptions, PostHog } from "../types";
import { VitePostHogOptions, PostHogInitConfig } from "./types";
export { VitePostHogOptions } from "./types";

/**
* Vite plugin for Posthog, add this into your vite.config.ts
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import posthogJs, { PostHogConfig, Survey, JsonType } from "posthog-js";
import { PostHogConfig } from "posthog-js";

type PostHogConfigOptions = Omit<PostHogConfig, "api_host">;
export type PostHogInitConfig = Partial<PostHogConfigOptions> & {
Expand All @@ -13,9 +13,3 @@ export type VitePostHogOptions = {
isDevModeOn?: boolean;
config?: VitePostHogOptionsConfig;
};

export type PostHog = typeof posthogJs;
export { Survey, JsonType };
export type EventMetaData = {
[x: string]: any;
};
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import React, { PropsWithChildren, useEffect } from "react";
import { useVitePostHog } from "../hooks/useVitePostHog";
import { EventMetaData } from "../../types";
import { EventMetaData } from "../types";

interface PageTrackProps {
uniquePageTitle: string;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import React, {
ReactNode,
HTMLProps,
} from "react";
import { PostHog } from "../../types";
import { PostHog } from "../types";

export type PostHogFeatureProps = HTMLProps<HTMLDivElement> & {
flag: string;
Expand Down
2 changes: 1 addition & 1 deletion packages/vite-plugin-posthog/src/react/global.d.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { PostHog } from "../types";
import { PostHog } from "./types";

declare global {
interface Window {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { useEffect, useState } from "react";
import { useVitePostHog } from "./useVitePostHog";
import { JsonType } from "../../types";
import { JsonType } from "../types";

/**
* A hook that returns the payload of a feature flag.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { useEffect, useMemo, useState } from "react";
import { useVitePostHog } from "./useVitePostHog";
import { EventMetaData, Survey } from "../../types";
import { EventMetaData, Survey } from "../types";

type SurveyState = {
currentSurvey: Survey | null;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { useMemo } from "react";
import { PostHog } from "../../types";
import { PostHog } from "../types";

export const useVitePostHog = (): PostHog | null => {
return useMemo(() => {
Expand Down
1 change: 1 addition & 0 deletions packages/vite-plugin-posthog/src/react/index.ts
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
export * from "./hooks";
export * from "./components";
export * from "./types";
7 changes: 7 additions & 0 deletions packages/vite-plugin-posthog/src/react/types.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import posthogJs, { Survey, JsonType } from "posthog-js";

export type PostHog = typeof posthogJs;
export { Survey, JsonType };
export type EventMetaData = {
[x: string]: any;
};

0 comments on commit c3d6bc1

Please sign in to comment.