Dive into secure and efficient coding practices with our curated list of the top 10 examples showcasing 'ow' in functional components in JavaScript. Our advanced machine learning engine meticulously scans each line of code, cross-referencing millions of open source libraries to ensure your implementation is not just functional, but also robust and secure. Elevate your React applications to new heights by mastering the art of handling side effects, API calls, and asynchronous operations with confidence and precision.
_validateConfig () {
try {
ow(this.network.pubKeyHash, ow.number)
ow(this.network.nethash, ow.string.length(64))
ow(this.network.wif, ow.number)
} catch (error) {
console.error('Invalid configuration. Shutting down...')
throw Error(error.message)
process.exit(1) // eslint-disable-line no-unreachable
}
}
}
const fetchCurrencyInfo = async symbols => {
ow(symbols, 'symbols', ow.array.ofType(ow.string.uppercase));
const filteredSymbols = symbols.filter(symbol => !ignoreExternalPrice.has(symbol));
const ids = filteredSymbols
.map(symbol => coinlist.get(symbol, 'id'))
.filter(symbol => symbol !== undefined); // For example, SUPERNET
// Docs: https://www.coingecko.com/api/docs/v3#/coins/get_coins_markets
let data;
try {
const response = await fetch(`${baseURL}/coins/markets?vs_currency=usd&ids=${ids.join(',')}`);
data = await response.json();
} catch (error) {
console.error('Failed to fetch from CoinGecko API:', error);
data = [];
}
async request(data) {
ow(data, 'data', ow.object);
const body = {
...data,
// TODO: When https://github.com/artemii235/SuperNET/issues/298 is fixed, rename `userpass` to `rpc_password` and also reduce the places we pass around `seedPhrase`.
userpass: this.rpcPassword,
};
let result;
try {
let requestTime;
const response = await this.queue.add(() => {
requestTime = Date.now();
return fetch(this.endpoint, {
method: 'post',
async function encrypt({
url, blockSize, logMode = 'full', plaintext: _plaintext, makeFinalRequest = true, lastCiphertextBlock, ...args
}: EncryptOptions) {
ow(_plaintext, 'plaintext', ow.buffer)
ow(lastCiphertextBlock, ow.optional.buffer)
if (lastCiphertextBlock && lastCiphertextBlock.length !== blockSize) throw TypeError('Invalid `lastCiphertextBlock`, should have length equal to `blockSize`')
const plaintext = addPadding(_plaintext, blockSize)
const blockCount = (plaintext.length / blockSize) + 1
const totalSize = blockCount * blockSize
const foundBytes = Buffer.alloc(totalSize) // ciphertext bytes
const interBytes = Buffer.alloc(totalSize - blockSize)
const foundOffsets: Set = new Set()
if (lastCiphertextBlock) {
lastCiphertextBlock.copy(foundBytes, foundBytes.length - blockSize)
}
if (['full', 'minimal'].includes(logMode)) logStart({ blockCount, totalSize })
function buildProjection(fields) {
ow(fields, ow.optional.object);
if (fields === undefined) {
return undefined;
}
const projection = {};
function build(rootFields, rootPath) {
// Always include '_type' and '_id'
rootFields = {_type: true, _id: true, ...rootFields};
for (const [name, fields] of Object.entries(rootFields)) {
const path = [...rootPath, name];
if (typeof fields === 'object') {
build(fields, path);
} else if (fields) {
async function encrypt({
url, blockSize, logMode = 'full', plaintext: _plaintext, makeFinalRequest = true, lastCiphertextBlock, ...args
}: EncryptOptions) {
ow(_plaintext, 'plaintext', ow.buffer)
ow(lastCiphertextBlock, ow.optional.buffer)
if (lastCiphertextBlock && lastCiphertextBlock.length !== blockSize) throw TypeError('Invalid `lastCiphertextBlock`, should have length equal to `blockSize`')
const plaintext = addPadding(_plaintext, blockSize)
const blockCount = (plaintext.length / blockSize) + 1
const totalSize = blockCount * blockSize
const foundBytes = Buffer.alloc(totalSize) // ciphertext bytes
const interBytes = Buffer.alloc(totalSize - blockSize)
const foundOffsets: Set = new Set()
if (lastCiphertextBlock) {
lastCiphertextBlock.copy(foundBytes, foundBytes.length - blockSize)
}
export const saveGIF = async (frames, filename, opts) => {
ow(frames, ow.array.label('frames'))
ow(filename, ow.string.label('filename').nonEmpty)
ow(opts, ow.object.label('opts').plain.nonEmpty)
const {
// gif output options
gifski = {
fps: 10,
quality: 80,
fast: false
}
} = opts
const params = [
'-o', filename,
'--fps', gifski.fps,
gifski.fast && '--fast',
'--quality', gifski.quality,
module.exports = async (opts) => {
const {
browser,
query
} = opts
ow(query, ow.string.nonEmpty.label('query'))
let page
try {
const page = await browser.newPage()
await page.goto('https://outlook.live.com/mail/inbox')
await delay(1000)
// search for an input query to narrow down email results
// TODO: don't require a search query
await page.waitFor('input[aria-label=Search]', { visible: true })
await delay(2000)
let attempts = 0
do {
await page.focus('input[aria-label=Search]')
module.exports = config => {
ow(config, ow.object.exactShape({
render: ow.optional.function,
createNode: ow.function,
createTextNode: ow.function,
setTextNodeValue: ow.function,
appendNode: ow.function,
insertBeforeNode: ow.optional.function,
updateNode: ow.optional.function,
removeNode: ow.optional.function
}));
const fullConfig = {
schedulePassiveEffects: unstable_scheduleCallback, // eslint-disable-line camelcase
cancelPassiveEffects: unstable_cancelCallback, // eslint-disable-line camelcase
now: Date.now,
getRootHostContext: () => NO_CONTEXT,
prepareForCommit: noop,
resetAfterCommit: () => {
if (typeof config.render === 'function') {
config.render();
}
},
getChildHostContext: () => NO_CONTEXT,
constructor(opts = {}) {
ow(opts, ow.object);
ow(opts.data, ow.optional.object);
ow(opts.name, ow.optional.string);
ow(opts.source, ow.optional.string);
ow(opts.url, ow.optional.string);
ow(opts.viewName, ow.optional.string);
this.data = opts.data;
this.name = opts.name;
// TODO: Consider renaming `source` and `url` so it's clear that they're sort of paired.
// (`from` and `to`?)
this.source = opts.source;
this.url = opts.url;
this.viewName = opts.viewName;
}
};