New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@dhis2/app-runtime

Package Overview
Dependencies
Maintainers
13
Versions
118
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@dhis2/app-runtime - npm Package Compare versions

Comparing version

to
1.1.0

71

build/cjs/index.js

@@ -285,4 +285,75 @@ 'use strict';

const baseUrl = 'https://example.com';
const apiVersion = 42;
const resolveCustomResource = async (customResource, query, {
failOnMiss
}) => {
switch (typeof customResource) {
case 'string':
case 'number':
case 'boolean':
case 'object':
return customResource;
case 'function':
// function
const result = await customResource(query);
if (!result && failOnMiss) {
throw new Error(`The custom function for resource ${query.resource} must always return a value but returned ${result}`);
}
return result || {};
default:
// should be unreachable
throw new Error(`Unknown resource type ${typeof customResource}`);
}
};
const makeCustomContext = (customData, {
failOnMiss = true
} = {}) => {
const apiUrl = joinPath(baseUrl, 'api', String(apiVersion));
const customFetch = async query => {
const customResource = customData[query.resource];
if (!customResource) {
if (failOnMiss) {
throw new Error(`No data provided for resource type ${query.resource}!`);
}
return Promise.resolve({});
}
return await resolveCustomResource(customResource, query, {
failOnMiss
});
};
const context = {
baseUrl,
apiVersion,
apiUrl,
fetch: customFetch
};
return context;
};
const CustomProvider = ({
children,
data,
options
}) => {
const context = makeCustomContext(data, options);
return React__default.createElement(Context.Provider, {
value: context
}, children);
};
exports.CustomDataProvider = CustomProvider;
exports.DataProvider = Provider;
exports.DataQuery = Query;
exports.useDataQuery = useQuery;

72

build/es/index.js

@@ -278,2 +278,72 @@ import React, { useContext, useState, useEffect } from 'react';

export { Provider as DataProvider, Query as DataQuery, useQuery as useDataQuery };
const baseUrl = 'https://example.com';
const apiVersion = 42;
const resolveCustomResource = async (customResource, query, {
failOnMiss
}) => {
switch (typeof customResource) {
case 'string':
case 'number':
case 'boolean':
case 'object':
return customResource;
case 'function':
// function
const result = await customResource(query);
if (!result && failOnMiss) {
throw new Error(`The custom function for resource ${query.resource} must always return a value but returned ${result}`);
}
return result || {};
default:
// should be unreachable
throw new Error(`Unknown resource type ${typeof customResource}`);
}
};
const makeCustomContext = (customData, {
failOnMiss = true
} = {}) => {
const apiUrl = joinPath(baseUrl, 'api', String(apiVersion));
const customFetch = async query => {
const customResource = customData[query.resource];
if (!customResource) {
if (failOnMiss) {
throw new Error(`No data provided for resource type ${query.resource}!`);
}
return Promise.resolve({});
}
return await resolveCustomResource(customResource, query, {
failOnMiss
});
};
const context = {
baseUrl,
apiVersion,
apiUrl,
fetch: customFetch
};
return context;
};
const CustomProvider = ({
children,
data,
options
}) => {
const context = makeCustomContext(data, options);
return React.createElement(Context.Provider, {
value: context
}, children);
};
export { CustomProvider as CustomDataProvider, Provider as DataProvider, Query as DataQuery, useQuery as useDataQuery };

4

package.json
{
"name": "@dhis2/app-runtime",
"description": "A singular runtime dependency for applications on the DHIS2 platform",
"version": "1.0.0",
"version": "1.1.0",
"main": "build/cjs/index.js",

@@ -20,3 +20,3 @@ "module": "build/es/index.js",

"@babel/preset-env": "^7.4.3",
"@dhis2/app-service-data": "^1.0.0",
"@dhis2/app-service-data": "^1.1.0",
"loop": "^3.1.3",

@@ -23,0 +23,0 @@ "rollup": "^1.9.0",