@ops-ai/toggly-docusaurus-plugin 0.1.9 → 0.1.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/index.d.ts +19 -1
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +45 -4
- package/dist/client/index.js.map +1 -1
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/package.json +9 -1
package/dist/client/index.d.ts
CHANGED
|
@@ -66,17 +66,35 @@ export interface FeatureProps {
|
|
|
66
66
|
fallback?: ReactNode;
|
|
67
67
|
/** Default value if flag is not found (default: false) */
|
|
68
68
|
defaultValue?: boolean;
|
|
69
|
+
/**
|
|
70
|
+
* HTML element to use as wrapper (default: 'div').
|
|
71
|
+
* The wrapper uses `display: contents` so it doesn't affect layout.
|
|
72
|
+
* Use 'span' for inline content if needed.
|
|
73
|
+
*/
|
|
74
|
+
as?: 'div' | 'span';
|
|
69
75
|
}
|
|
70
76
|
/**
|
|
71
77
|
* Feature - React component for conditional rendering based on feature flags
|
|
72
78
|
*
|
|
79
|
+
* This component wraps children in a `data-feature` element that:
|
|
80
|
+
* 1. During static build: Renders all content (so anchors exist, build passes)
|
|
81
|
+
* 2. At the edge (Cloudflare Worker): HTMLRewriter removes disabled content
|
|
82
|
+
* 3. At runtime: Falls back to client-side evaluation if no edge worker
|
|
83
|
+
*
|
|
84
|
+
* The wrapper uses `display: contents` so it doesn't affect layout.
|
|
85
|
+
* Use the `as` prop to specify 'span' for inline content.
|
|
86
|
+
*
|
|
73
87
|
* @example
|
|
74
88
|
* ```tsx
|
|
89
|
+
* // Block content (default)
|
|
75
90
|
* <Feature flag="beta_advanced_filters">
|
|
76
91
|
* <h2>Advanced Filters (Beta)</h2>
|
|
77
92
|
* <p>This feature is in beta...</p>
|
|
78
93
|
* </Feature>
|
|
94
|
+
*
|
|
95
|
+
* // Inline content
|
|
96
|
+
* <Feature flag="beta" as="span">new beta feature</Feature>
|
|
79
97
|
* ```
|
|
80
98
|
*/
|
|
81
|
-
export declare function Feature({ flag, children, fallback, defaultValue, }: FeatureProps): JSX.Element;
|
|
99
|
+
export declare function Feature({ flag, children, fallback, defaultValue, as: Element, }: FeatureProps): JSX.Element;
|
|
82
100
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAc,EAKZ,SAAS,EACV,MAAM,OAAO,CAAC;AACf,OAAO,EAAsB,KAAK,YAAY,EAAE,KAAK,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAEzF,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,YAAY,CAAC;IACrB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACnE,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB;AAID;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,cAAc,CAAC,EAC7B,MAAM,EAAE,cAAc,EACtB,QAAQ,GACT,EAAE,mBAAmB,GAAG,GAAG,CAAC,OAAO,CAgDnC;AAED;;;;GAIG;AACH,wBAAgB,SAAS,IAAI,kBAAkB,CAM9C;AAED;;;;;;GAMG;AACH,wBAAgB,OAAO,CACrB,OAAO,EAAE,MAAM,EACf,YAAY,CAAC,EAAE,OAAO,GACrB;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAiBxC;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,oCAAoC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,6CAA6C;IAC7C,QAAQ,EAAE,SAAS,CAAC;IACpB,yDAAyD;IACzD,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,0DAA0D;IAC1D,YAAY,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAc,EAKZ,SAAS,EACV,MAAM,OAAO,CAAC;AACf,OAAO,EAAsB,KAAK,YAAY,EAAE,KAAK,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAEzF,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,YAAY,CAAC;IACrB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACnE,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB;AAID;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,cAAc,CAAC,EAC7B,MAAM,EAAE,cAAc,EACtB,QAAQ,GACT,EAAE,mBAAmB,GAAG,GAAG,CAAC,OAAO,CAgDnC;AAED;;;;GAIG;AACH,wBAAgB,SAAS,IAAI,kBAAkB,CAM9C;AAED;;;;;;GAMG;AACH,wBAAgB,OAAO,CACrB,OAAO,EAAE,MAAM,EACf,YAAY,CAAC,EAAE,OAAO,GACrB;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAiBxC;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,oCAAoC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,6CAA6C;IAC7C,QAAQ,EAAE,SAAS,CAAC;IACpB,yDAAyD;IACzD,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,0DAA0D;IAC1D,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;OAIG;IACH,EAAE,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;CACrB;AAOD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,OAAO,CAAC,EACtB,IAAI,EACJ,QAAQ,EACR,QAAe,EACf,YAAoB,EACpB,EAAE,EAAE,OAAe,GACpB,EAAE,YAAY,GAAG,GAAG,CAAC,OAAO,CAyB5B"}
|
package/dist/client/index.js
CHANGED
|
@@ -104,23 +104,64 @@ export function useFlag(flagKey, defaultValue) {
|
|
|
104
104
|
}, [flagKey, flags, isReady, getFlag, defaultValue]);
|
|
105
105
|
return { enabled, isReady };
|
|
106
106
|
}
|
|
107
|
+
/**
|
|
108
|
+
* Check if we're in SSR (static build) mode
|
|
109
|
+
*/
|
|
110
|
+
const isSSR = typeof window === 'undefined';
|
|
107
111
|
/**
|
|
108
112
|
* Feature - React component for conditional rendering based on feature flags
|
|
109
113
|
*
|
|
114
|
+
* This component wraps children in a `data-feature` element that:
|
|
115
|
+
* 1. During static build: Renders all content (so anchors exist, build passes)
|
|
116
|
+
* 2. At the edge (Cloudflare Worker): HTMLRewriter removes disabled content
|
|
117
|
+
* 3. At runtime: Falls back to client-side evaluation if no edge worker
|
|
118
|
+
*
|
|
119
|
+
* The wrapper uses `display: contents` so it doesn't affect layout.
|
|
120
|
+
* Use the `as` prop to specify 'span' for inline content.
|
|
121
|
+
*
|
|
110
122
|
* @example
|
|
111
123
|
* ```tsx
|
|
124
|
+
* // Block content (default)
|
|
112
125
|
* <Feature flag="beta_advanced_filters">
|
|
113
126
|
* <h2>Advanced Filters (Beta)</h2>
|
|
114
127
|
* <p>This feature is in beta...</p>
|
|
115
128
|
* </Feature>
|
|
129
|
+
*
|
|
130
|
+
* // Inline content
|
|
131
|
+
* <Feature flag="beta" as="span">new beta feature</Feature>
|
|
116
132
|
* ```
|
|
117
133
|
*/
|
|
118
|
-
export function Feature({ flag, children, fallback = null, defaultValue = false, }) {
|
|
134
|
+
export function Feature({ flag, children, fallback = null, defaultValue = false, as: Element = 'div', }) {
|
|
135
|
+
// Wrapper style - display: contents makes it invisible to layout
|
|
136
|
+
const wrapperStyle = { display: 'contents' };
|
|
137
|
+
// During SSR, render children with data-feature attribute
|
|
138
|
+
// The Cloudflare Worker will strip disabled features at the edge
|
|
139
|
+
if (isSSR) {
|
|
140
|
+
return (_jsx(Element, { "data-feature": flag, style: wrapperStyle, children: children }));
|
|
141
|
+
}
|
|
142
|
+
// Client-side rendering - use actual flag evaluation
|
|
143
|
+
return (_jsx(FeatureClient, { flag: flag, fallback: fallback, defaultValue: defaultValue, as: Element, children: children }));
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Client-side Feature component that uses hooks
|
|
147
|
+
* Separated to avoid hooks being called during SSR
|
|
148
|
+
*/
|
|
149
|
+
function FeatureClient({ flag, children, fallback = null, defaultValue = false, as: Element = 'div', }) {
|
|
119
150
|
const { enabled, isReady } = useFlag(flag, defaultValue);
|
|
151
|
+
// Wrapper style - display: contents makes it invisible to layout
|
|
152
|
+
const wrapperStyle = { display: 'contents' };
|
|
153
|
+
// Always wrap with data-feature for edge worker compatibility
|
|
154
|
+
// The wrapper is invisible to layout due to display: contents
|
|
155
|
+
// If still loading, show children wrapped (for hydration match with SSR)
|
|
120
156
|
if (!isReady) {
|
|
121
|
-
|
|
122
|
-
|
|
157
|
+
return (_jsx(Element, { "data-feature": flag, style: wrapperStyle, children: children }));
|
|
158
|
+
}
|
|
159
|
+
// When ready, show enabled content or fallback
|
|
160
|
+
// Keep the wrapper for consistency (edge worker will handle removal if disabled)
|
|
161
|
+
if (enabled) {
|
|
162
|
+
return (_jsx(Element, { "data-feature": flag, style: wrapperStyle, children: children }));
|
|
123
163
|
}
|
|
124
|
-
|
|
164
|
+
// Feature is disabled - render fallback (no wrapper needed)
|
|
165
|
+
return _jsx(_Fragment, { children: fallback });
|
|
125
166
|
}
|
|
126
167
|
//# sourceMappingURL=index.js.map
|
package/dist/client/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.tsx"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -24,6 +24,16 @@ export interface TogglyPluginOptions {
|
|
|
24
24
|
connectTimeout?: number;
|
|
25
25
|
/** User identity for targeting (optional) */
|
|
26
26
|
identity?: string;
|
|
27
|
+
/**
|
|
28
|
+
* Render all Feature component children during static build (SSR).
|
|
29
|
+
* When true, feature-gated content renders during build so:
|
|
30
|
+
* - All headings create anchors (fixing broken anchor detection)
|
|
31
|
+
* - All content is indexed by search engines
|
|
32
|
+
* - SEO content is present in static HTML
|
|
33
|
+
* At runtime, actual flag values are still evaluated.
|
|
34
|
+
* (default: true)
|
|
35
|
+
*/
|
|
36
|
+
renderAllDuringBuild?: boolean;
|
|
27
37
|
}
|
|
28
38
|
/**
|
|
29
39
|
* Docusaurus plugin for Toggly feature flag gating
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAA8B,MAAM,mBAAmB,CAAC;AAMzF,MAAM,WAAW,mBAAmB;IAClC,wEAAwE;IACxE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kCAAkC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+EAA+E;IAC/E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yDAAyD;IACzD,YAAY,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IAC1C,mFAAmF;IACnF,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,4CAA4C;IAC5C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,yDAAyD;IACzD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAA8B,MAAM,mBAAmB,CAAC;AAMzF,MAAM,WAAW,mBAAmB;IAClC,wEAAwE;IACxE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kCAAkC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+EAA+E;IAC/E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yDAAyD;IACzD,YAAY,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IAC1C,mFAAmF;IACnF,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,4CAA4C;IAC5C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,yDAAyD;IACzD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;;;OAQG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAmBD;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,YAAY,CAClC,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,mBAAmB,GAC3B,MAAM,CAyKR;AA4FD,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACvE,YAAY,EACV,mBAAmB,EACnB,kBAAkB,EAClB,YAAY,GACb,MAAM,UAAU,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -12,7 +12,8 @@ import webpack from 'webpack';
|
|
|
12
12
|
* Docusaurus plugin for Toggly feature flag gating
|
|
13
13
|
*/
|
|
14
14
|
export default function togglyPlugin(context, options) {
|
|
15
|
-
const { baseURI = 'https://client.toggly.io', appKey, environment = 'Production', flagDefaults = {}, featureFlagsRefreshInterval = 3 * 60 * 1000, isDebug = false, connectTimeout = 5 * 1000, identity,
|
|
15
|
+
const { baseURI = 'https://client.toggly.io', appKey, environment = 'Production', flagDefaults = {}, featureFlagsRefreshInterval = 3 * 60 * 1000, isDebug = false, connectTimeout = 5 * 1000, identity, renderAllDuringBuild = true, // Default to true for better DX
|
|
16
|
+
} = options;
|
|
16
17
|
// Store page feature mapping for postBuild
|
|
17
18
|
let pageFeatureMapping = {};
|
|
18
19
|
return {
|
|
@@ -32,6 +33,7 @@ export default function togglyPlugin(context, options) {
|
|
|
32
33
|
isDebug,
|
|
33
34
|
connectTimeout,
|
|
34
35
|
identity,
|
|
36
|
+
renderAllDuringBuild,
|
|
35
37
|
},
|
|
36
38
|
};
|
|
37
39
|
},
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,OAAO,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ops-ai/toggly-docusaurus-plugin",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.11",
|
|
4
4
|
"description": "Docusaurus plugin and React bindings for Toggly feature flag gating",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/index.js",
|
|
@@ -36,6 +36,14 @@
|
|
|
36
36
|
],
|
|
37
37
|
"author": "Toggly",
|
|
38
38
|
"license": "MIT",
|
|
39
|
+
"repository": {
|
|
40
|
+
"type": "git",
|
|
41
|
+
"url": "https://github.com/ops-ai/Toggly.FeatureManagement"
|
|
42
|
+
},
|
|
43
|
+
"bugs": {
|
|
44
|
+
"url": "https://github.com/ops-ai/Toggly.FeatureManagement/issues"
|
|
45
|
+
},
|
|
46
|
+
"homepage": "https://github.com/ops-ai/Toggly.FeatureManagement#readme",
|
|
39
47
|
"dependencies": {
|
|
40
48
|
"glob": "^10.3.10"
|
|
41
49
|
},
|