qs#parse TypeScript Examples
The following examples show how to use
qs#parse.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: DarkModeQueryParamReader.tsx From cuiswap with GNU General Public License v3.0 | 6 votes |
export default function DarkModeQueryParamReader({ location: { search } }: RouteComponentProps) {
const dispatch = useDispatch<AppDispatch>()
useEffect(() => {
if (!search) return
if (search.length < 2) return
const parsed = parse(search, {
parseArrays: false,
ignoreQueryPrefix: true
})
const theme = parsed.theme
if (typeof theme !== 'string') return
if (theme.toLowerCase() === 'light') {
dispatch(updateUserDarkMode({ userDarkMode: false }))
} else if (theme.toLowerCase() === 'dark') {
dispatch(updateUserDarkMode({ userDarkMode: true }))
}
}, [dispatch, search])
return null
}
Example #2
Source File: useParsedQueryString.ts From interface-v2 with GNU General Public License v3.0 | 6 votes |
export default function useParsedQueryString(): ParsedQs {
const { search } = useLocation();
return useMemo(
() =>
search && search.length > 1
? parse(search, { parseArrays: false, ignoreQueryPrefix: true })
: {},
[search],
);
}
Example #3
Source File: TwitterAccountQueryParamReader.tsx From sybil-interface with GNU General Public License v3.0 | 6 votes |
/**
* Used for redirects from Twitter oauth server.
* If twitter handle passed as query param, set in global state.
* @param param0 twitter handle
*/
export default function TwitterAccountQueryParamReader({ location: { search } }: RouteComponentProps): null {
const [, setTwitterAccount] = useTwitterAccount()
useEffect(() => {
if (!search) return
if (search.length < 2) return
const parsed = parse(search, {
parseArrays: false,
ignoreQueryPrefix: true,
})
const username = parsed.username
if (typeof username !== 'string') return
setTwitterAccount(username)
}, [search, setTwitterAccount])
return null
}
Example #4
Source File: DarkModeQueryParamReader.tsx From sybil-interface with GNU General Public License v3.0 | 6 votes |
export default function DarkModeQueryParamReader({ location: { search } }: RouteComponentProps): null {
const dispatch = useDispatch<AppDispatch>()
useEffect(() => {
if (!search) return
if (search.length < 2) return
const parsed = parse(search, {
parseArrays: false,
ignoreQueryPrefix: true,
})
const theme = parsed.theme
if (typeof theme !== 'string') return
if (theme.toLowerCase() === 'light') {
dispatch(updateUserDarkMode({ userDarkMode: false }))
} else if (theme.toLowerCase() === 'dark') {
dispatch(updateUserDarkMode({ userDarkMode: true }))
}
}, [dispatch, search])
return null
}
Example #5
Source File: DarkModeQueryParamReader.tsx From cheeseswap-interface with GNU General Public License v3.0 | 6 votes |
export default function DarkModeQueryParamReader({ location: { search } }: RouteComponentProps): null {
const dispatch = useDispatch<AppDispatch>()
useEffect(() => {
if (!search) return
if (search.length < 2) return
const parsed = parse(search, {
parseArrays: false,
ignoreQueryPrefix: true
})
const theme = parsed.theme
if (typeof theme !== 'string') return
if (theme.toLowerCase() === 'dark') {
dispatch(updateUserDarkMode({ userDarkMode: true }))
} else if (theme.toLowerCase() === 'light') {
dispatch(updateUserDarkMode({ userDarkMode: false }))
}
}, [dispatch, search])
return null
}
Example #6
Source File: DarkModeQueryParamReader.tsx From dyp with Do What The F*ck You Want To Public License | 6 votes |
export default function DarkModeQueryParamReader({ location: { search } }: RouteComponentProps): null {
const dispatch = useDispatch<AppDispatch>()
useEffect(() => {
if (!search) return
if (search.length < 2) return
const parsed = parse(search, {
parseArrays: false,
ignoreQueryPrefix: true
})
const theme = parsed.theme
if (typeof theme !== 'string') return
if (theme.toLowerCase() === 'light') {
dispatch(updateUserDarkMode({ userDarkMode: false }))
} else if (theme.toLowerCase() === 'dark') {
dispatch(updateUserDarkMode({ userDarkMode: true }))
}
}, [dispatch, search])
return null
}
Example #7
Source File: useParsedQueryString.ts From cuiswap with GNU General Public License v3.0 | 5 votes |
export default function useParsedQueryString(): ParsedQs {
const { search } = useLocation()
return useMemo(
() => (search && search.length > 1 ? parse(search, { parseArrays: false, ignoreQueryPrefix: true }) : {}),
[search]
)
}
Example #8
Source File: config.ts From fivem-mysql with GNU General Public License v3.0 | 5 votes |
function getConnectionFromString(rawConnectionString: string): ConnectionOptions {
let connection = {} as ConnectionOptions;
if (/(?:database|initial\scatalog)=(?:(.*?);|(.*))/gi.test(rawConnectionString)) {
const conf = parse(rawConnectionString, {delimiter: /[;]/ });
const host = conf.host || conf.server || conf.data || conf.source || conf.addr || conf.address || null;
const user = conf.user || conf.userid || conf.username || conf.uid || null;
const password = conf.password || conf.pwd || conf.pass || null;
const port = typeof conf.port == 'string' ? parseInt(conf.port) : typeof conf.port == 'number' ? conf.port : null;
const database = conf.database || null;
connection = {
host: typeof host == 'string' ? host : null,
user: typeof user == 'string' ? user : null,
password: typeof password == 'string' ? password : null,
port: typeof port == 'number' && (port > 0 && port < 65535) ? port : null,
database: typeof database == 'string' ? database : null
}
} else {
const connectionString = ConnectionString(rawConnectionString);
connection = {
host: typeof connectionString.host == 'string' ? connectionString.host : null,
user: typeof connectionString.user == 'string' ? connectionString.user : null,
password: typeof connectionString.password == 'string' ? connectionString.password : null,
port: typeof connectionString.port == 'number' && (connectionString.port > 0 && connectionString.port < 65535) ? connectionString.port : null,
database: typeof connectionString.database == 'string' ? connectionString.database : null
}
}
connection.typeCast = true;
connection.charset = 'UTF8_GENERAL_CI'
connection.supportBigNumbers = true;
connection.stringifyObjects = false;
connection.insecureAuth = true;
connection.dateStrings = true;
connection.trace = true;
connection.multipleStatements = true;
connection.queryFormat = (q, v) => {
let sql = q.replace(/[@]/g, ':')
.replace(/`'/g, '`')
.replace(/'`/g, '`')
.replace(/`"/g, '`')
.replace(/"`/g, '`')
.replace(/``/g, '`');
sql = format(sql, v, false, 'local');
sql = fixString(sql);
sql = sql.replace(/[@]/g, ':')
.replace(/`'/g, '`')
.replace(/'`/g, '`')
.replace(/`"/g, '`')
.replace(/"`/g, '`')
.replace(/``/g, '`');
return sql;
}
connection.connectionLimit = 999;
connection.queueLimit = 999;
connection.decimalNumbers = true;
return connection;
}
Example #9
Source File: useParsedQueryString.ts From glide-frontend with GNU General Public License v3.0 | 5 votes |
export default function useParsedQueryString(): ParsedQs {
const { search } = useLocation()
return useMemo(
() => (search && search.length > 1 ? parse(search, { parseArrays: false, ignoreQueryPrefix: true }) : {}),
[search],
)
}
Example #10
Source File: Request.ts From ZenTS with MIT License | 5 votes |
constructor(public nodeReq: IncomingMessage, parsedBody: ParsedBody, params: IncomingParams) {
this.header = new RequestHeader(nodeReq)
this.query = parse(parseurl(nodeReq).query as string, config.web?.querystring)
this.body = parsedBody ? parsedBody.fields : {}
this.pathname = parseurl(this.nodeReq).pathname
this._params = params
}
Example #11
Source File: hooks.test.ts From cuiswap with GNU General Public License v3.0 | 4 votes |
describe('hooks', () => {
describe('#queryParametersToSwapState', () => {
test('ETH to DAI', () => {
expect(
queryParametersToSwapState(
parse(
'?inputCurrency=ETH&outputCurrency=0x6b175474e89094c44da98b954eedeac495271d0f&exactAmount=20.5&exactField=outPUT',
{ parseArrays: false, ignoreQueryPrefix: true }
)
)
).toEqual({
[Field.OUTPUT]: { currencyId: '0x6B175474E89094C44Da98b954EedeAC495271d0F' },
[Field.INPUT]: { currencyId: 'ETH' },
typedValue: '20.5',
independentField: Field.OUTPUT,
recipient: null
})
})
test('does not duplicate eth for invalid output token', () => {
expect(
queryParametersToSwapState(parse('?outputCurrency=invalid', { parseArrays: false, ignoreQueryPrefix: true }))
).toEqual({
[Field.INPUT]: { currencyId: '' },
[Field.OUTPUT]: { currencyId: 'ETH' },
typedValue: '',
independentField: Field.INPUT,
recipient: null
})
})
test('output ETH only', () => {
expect(
queryParametersToSwapState(
parse('?outputCurrency=eth&exactAmount=20.5', { parseArrays: false, ignoreQueryPrefix: true })
)
).toEqual({
[Field.OUTPUT]: { currencyId: 'ETH' },
[Field.INPUT]: { currencyId: '' },
typedValue: '20.5',
independentField: Field.INPUT,
recipient: null
})
})
test('invalid recipient', () => {
expect(
queryParametersToSwapState(
parse('?outputCurrency=eth&exactAmount=20.5&recipient=abc', { parseArrays: false, ignoreQueryPrefix: true })
)
).toEqual({
[Field.OUTPUT]: { currencyId: 'ETH' },
[Field.INPUT]: { currencyId: '' },
typedValue: '20.5',
independentField: Field.INPUT,
recipient: null
})
})
test('valid recipient', () => {
expect(
queryParametersToSwapState(
parse('?outputCurrency=eth&exactAmount=20.5&recipient=0x0fF2D1eFd7A57B7562b2bf27F3f37899dB27F4a5', {
parseArrays: false,
ignoreQueryPrefix: true
})
)
).toEqual({
[Field.OUTPUT]: { currencyId: 'ETH' },
[Field.INPUT]: { currencyId: '' },
typedValue: '20.5',
independentField: Field.INPUT,
recipient: '0x0fF2D1eFd7A57B7562b2bf27F3f37899dB27F4a5'
})
})
test('accepts any recipient', () => {
expect(
queryParametersToSwapState(
parse('?outputCurrency=eth&exactAmount=20.5&recipient=bob.argent.xyz', {
parseArrays: false,
ignoreQueryPrefix: true
})
)
).toEqual({
[Field.OUTPUT]: { currencyId: 'ETH' },
[Field.INPUT]: { currencyId: '' },
typedValue: '20.5',
independentField: Field.INPUT,
recipient: 'bob.argent.xyz'
})
})
})
})
Example #12
Source File: hooks.test.ts From interface-v2 with GNU General Public License v3.0 | 4 votes |
describe('hooks', () => {
describe('#queryParametersToSwapState', () => {
test('ETH to DAI', () => {
expect(
queryParametersToSwapState(
parse(
'?inputCurrency=ETH&outputCurrency=0x6b175474e89094c44da98b954eedeac495271d0f&exactAmount=20.5&exactField=outPUT',
{ parseArrays: false, ignoreQueryPrefix: true },
),
),
).toEqual({
[Field.OUTPUT]: {
currencyId: '0x6B175474E89094C44Da98b954EedeAC495271d0F',
},
[Field.INPUT]: { currencyId: 'ETH' },
typedValue: '20.5',
independentField: Field.OUTPUT,
recipient: null,
});
});
test('does not duplicate eth for invalid output token', () => {
expect(
queryParametersToSwapState(
parse('?outputCurrency=invalid', {
parseArrays: false,
ignoreQueryPrefix: true,
}),
),
).toEqual({
[Field.INPUT]: { currencyId: '' },
[Field.OUTPUT]: { currencyId: 'ETH' },
typedValue: '',
independentField: Field.INPUT,
recipient: null,
});
});
test('output ETH only', () => {
expect(
queryParametersToSwapState(
parse('?outputCurrency=eth&exactAmount=20.5', {
parseArrays: false,
ignoreQueryPrefix: true,
}),
),
).toEqual({
[Field.OUTPUT]: { currencyId: 'ETH' },
[Field.INPUT]: { currencyId: '' },
typedValue: '20.5',
independentField: Field.INPUT,
recipient: null,
});
});
test('invalid recipient', () => {
expect(
queryParametersToSwapState(
parse('?outputCurrency=eth&exactAmount=20.5&recipient=abc', {
parseArrays: false,
ignoreQueryPrefix: true,
}),
),
).toEqual({
[Field.OUTPUT]: { currencyId: 'ETH' },
[Field.INPUT]: { currencyId: '' },
typedValue: '20.5',
independentField: Field.INPUT,
recipient: null,
});
});
test('valid recipient', () => {
expect(
queryParametersToSwapState(
parse(
'?outputCurrency=eth&exactAmount=20.5&recipient=0x0fF2D1eFd7A57B7562b2bf27F3f37899dB27F4a5',
{
parseArrays: false,
ignoreQueryPrefix: true,
},
),
),
).toEqual({
[Field.OUTPUT]: { currencyId: 'ETH' },
[Field.INPUT]: { currencyId: '' },
typedValue: '20.5',
independentField: Field.INPUT,
recipient: '0x0fF2D1eFd7A57B7562b2bf27F3f37899dB27F4a5',
});
});
test('accepts any recipient', () => {
expect(
queryParametersToSwapState(
parse(
'?outputCurrency=eth&exactAmount=20.5&recipient=bob.argent.xyz',
{
parseArrays: false,
ignoreQueryPrefix: true,
},
),
),
).toEqual({
[Field.OUTPUT]: { currencyId: 'ETH' },
[Field.INPUT]: { currencyId: '' },
typedValue: '20.5',
independentField: Field.INPUT,
recipient: 'bob.argent.xyz',
});
});
});
});
Example #13
Source File: hooks.test.ts From glide-frontend with GNU General Public License v3.0 | 4 votes |
describe('hooks', () => {
describe('#queryParametersToSwapState', () => {
test('BNB to DAI', () => {
expect(
queryParametersToSwapState(
parse(
'?inputCurrency=BNB&outputCurrency=0x6b175474e89094c44da98b954eedeac495271d0f&exactAmount=20.5&exactField=outPUT',
{ parseArrays: false, ignoreQueryPrefix: true },
),
),
).toEqual({
[Field.OUTPUT]: { currencyId: '0x6B175474E89094C44Da98b954EedeAC495271d0F' },
[Field.INPUT]: { currencyId: 'BNB' },
typedValue: '20.5',
independentField: Field.OUTPUT,
recipient: null,
})
})
test('does not duplicate BNB for invalid output token', () => {
expect(
queryParametersToSwapState(parse('?outputCurrency=invalid', { parseArrays: false, ignoreQueryPrefix: true })),
).toEqual({
[Field.INPUT]: { currencyId: '' },
[Field.OUTPUT]: { currencyId: 'BNB' },
typedValue: '',
independentField: Field.INPUT,
recipient: null,
})
})
test('output BNB only', () => {
expect(
queryParametersToSwapState(
parse('?outputCurrency=bnb&exactAmount=20.5', { parseArrays: false, ignoreQueryPrefix: true }),
),
).toEqual({
[Field.OUTPUT]: { currencyId: 'BNB' },
[Field.INPUT]: { currencyId: '' },
typedValue: '20.5',
independentField: Field.INPUT,
recipient: null,
})
})
test('invalid recipient', () => {
expect(
queryParametersToSwapState(
parse('?outputCurrency=BNB&exactAmount=20.5&recipient=abc', { parseArrays: false, ignoreQueryPrefix: true }),
),
).toEqual({
[Field.OUTPUT]: { currencyId: 'BNB' },
[Field.INPUT]: { currencyId: '' },
typedValue: '20.5',
independentField: Field.INPUT,
recipient: null,
})
})
test('valid recipient', () => {
expect(
queryParametersToSwapState(
parse('?outputCurrency=BNB&exactAmount=20.5&recipient=0x0fF2D1eFd7A57B7562b2bf27F3f37899dB27F4a5', {
parseArrays: false,
ignoreQueryPrefix: true,
}),
),
).toEqual({
[Field.OUTPUT]: { currencyId: 'BNB' },
[Field.INPUT]: { currencyId: '' },
typedValue: '20.5',
independentField: Field.INPUT,
recipient: '0x0fF2D1eFd7A57B7562b2bf27F3f37899dB27F4a5',
})
})
test('accepts any recipient', () => {
expect(
queryParametersToSwapState(
parse('?outputCurrency=BNB&exactAmount=20.5&recipient=bob.argent.xyz', {
parseArrays: false,
ignoreQueryPrefix: true,
}),
),
).toEqual({
[Field.OUTPUT]: { currencyId: 'BNB' },
[Field.INPUT]: { currencyId: '' },
typedValue: '20.5',
independentField: Field.INPUT,
recipient: 'bob.argent.xyz',
})
})
})
})
Example #14
Source File: hooks.test.ts From mozartfinance-swap-interface with GNU General Public License v3.0 | 4 votes |
describe('hooks', () => {
describe('#queryParametersToSwapState', () => {
test('BNB to DAI', () => {
expect(
queryParametersToSwapState(
parse(
'?inputCurrency=BNB&outputCurrency=0x6b175474e89094c44da98b954eedeac495271d0f&exactAmount=20.5&exactField=outPUT',
{ parseArrays: false, ignoreQueryPrefix: true }
)
)
).toEqual({
[Field.OUTPUT]: { currencyId: '0x6B175474E89094C44Da98b954EedeAC495271d0F' },
[Field.INPUT]: { currencyId: 'BNB' },
typedValue: '20.5',
independentField: Field.OUTPUT,
recipient: null,
})
})
test('does not duplicate eth for invalid output token', () => {
expect(
queryParametersToSwapState(parse('?outputCurrency=invalid', { parseArrays: false, ignoreQueryPrefix: true }))
).toEqual({
[Field.INPUT]: { currencyId: '' },
[Field.OUTPUT]: { currencyId: 'BNB' },
typedValue: '',
independentField: Field.INPUT,
recipient: null,
})
})
test('output BNB only', () => {
expect(
queryParametersToSwapState(
parse('?outputCurrency=eth&exactAmount=20.5', { parseArrays: false, ignoreQueryPrefix: true })
)
).toEqual({
[Field.OUTPUT]: { currencyId: 'BNB' },
[Field.INPUT]: { currencyId: '' },
typedValue: '20.5',
independentField: Field.INPUT,
recipient: null,
})
})
test('invalid recipient', () => {
expect(
queryParametersToSwapState(
parse('?outputCurrency=eth&exactAmount=20.5&recipient=abc', { parseArrays: false, ignoreQueryPrefix: true })
)
).toEqual({
[Field.OUTPUT]: { currencyId: 'BNB' },
[Field.INPUT]: { currencyId: '' },
typedValue: '20.5',
independentField: Field.INPUT,
recipient: null,
})
})
test('valid recipient', () => {
expect(
queryParametersToSwapState(
parse('?outputCurrency=eth&exactAmount=20.5&recipient=0x0fF2D1eFd7A57B7562b2bf27F3f37899dB27F4a5', {
parseArrays: false,
ignoreQueryPrefix: true,
})
)
).toEqual({
[Field.OUTPUT]: { currencyId: 'BNB' },
[Field.INPUT]: { currencyId: '' },
typedValue: '20.5',
independentField: Field.INPUT,
recipient: '0x0fF2D1eFd7A57B7562b2bf27F3f37899dB27F4a5',
})
})
test('accepts any recipient', () => {
expect(
queryParametersToSwapState(
parse('?outputCurrency=eth&exactAmount=20.5&recipient=bob.argent.xyz', {
parseArrays: false,
ignoreQueryPrefix: true,
})
)
).toEqual({
[Field.OUTPUT]: { currencyId: 'BNB' },
[Field.INPUT]: { currencyId: '' },
typedValue: '20.5',
independentField: Field.INPUT,
recipient: 'bob.argent.xyz',
})
})
})
})