11import { FlagName , FlagValue } from "./types" ;
22
33export const prefix = "flag__" ;
4- export const getKey = ( name : FlagName ) => prefix + name ;
4+
5+ type FlagNameOrString = FlagName | ( string & { } ) ;
6+
7+ export const getKey = ( name : FlagNameOrString ) => prefix + name ;
58
69const listFlagLocalStorage = ( ) => {
710 return Object . keys ( localStorage )
@@ -14,7 +17,7 @@ const listFlagLocalStorage = () => {
1417 *
1518 * @param {String } flag
1619 */
17- const getItem = ( flag : FlagName ) => {
20+ const getItem = ( flag : FlagNameOrString ) => {
1821 const val = localStorage . getItem ( getKey ( flag ) ) ;
1922 const parsed = val ? JSON . parse ( val ) : val ;
2023 return parsed ;
@@ -26,7 +29,7 @@ const getItem = (flag: FlagName) => {
2629 * @param {String } flag
2730 * @param {String } value
2831 */
29- const setItem = ( flag : FlagName , value : FlagValue ) => {
32+ const setItem = ( flag : FlagNameOrString , value : FlagValue ) => {
3033 const str = JSON . stringify ( value ) ;
3134 return localStorage . setItem ( getKey ( flag ) , str ) ;
3235} ;
@@ -36,7 +39,7 @@ const setItem = (flag: FlagName, value: FlagValue) => {
3639 *
3740 * @param {String } flag
3841 */
39- const removeItem = ( flag : FlagName ) => {
42+ const removeItem = ( flag : FlagNameOrString ) => {
4043 return localStorage . removeItem ( getKey ( flag ) ) ;
4144} ;
4245
0 commit comments