stock-nse-india
Version:
This package will help us to get equity/index details and historical data from National Stock Exchange of India.
67 lines • 2.2 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const index_1 = require("./index");
const nseIndia = new index_1.NseIndia();
function stringArrayFilter(input, filter) {
let data = [...input];
const { offset, limit, eq, neq, in: inside, nin, startsWith, regex } = filter || {};
if (startsWith) {
data = data.filter(item => item.startsWith(startsWith));
}
if (regex) {
const re = new RegExp(regex);
data = data.filter(item => re.test(item));
}
if (inside === null || inside === void 0 ? void 0 : inside.length) {
data = data.filter(item => inside.includes(item));
}
if (nin === null || nin === void 0 ? void 0 : nin.length) {
data = data.filter(item => !nin.includes(item));
}
if (eq) {
data = data.filter(item => item === eq);
}
if (neq) {
data = data.filter(item => item !== neq);
}
if (offset !== undefined) {
data = data.filter((_, index) => index > offset);
}
if (limit !== undefined) {
data = data.filter((_, index) => index < limit);
}
return data;
}
function objectFilter(input, filterBy, filter) {
const { regex } = filter || {};
let data = [...input];
if (regex && filterBy) {
const re = new RegExp(regex);
data = data.filter((item) => re.test(item[filterBy]));
}
return data;
}
exports.default = {
Query: {
equities: async (_parent, { symbolFilter }) => {
const results = await nseIndia.getAllStockSymbols();
return stringArrayFilter(results, symbolFilter);
},
indices: async (_parent, { filter }) => {
const indices = await nseIndia.getDataByEndpoint(index_1.ApiList.ALL_INDICES);
if (filter)
return objectFilter(indices.data, filter.filterBy, filter.criteria);
return indices.data;
}
},
Equity: {
symbol: (parent) => {
return parent;
},
details: async (parent) => {
const result = await nseIndia.getEquityDetails(parent);
return result;
}
}
};
//# sourceMappingURL=root.resolver.js.map