@graphprotocol/graph-cli
Version:
CLI for building for and deploying to The Graph
41 lines (40 loc) • 1.96 kB
JavaScript
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.fromManifest = exports.fromManifestString = exports.fromFilePath = void 0;
const immutable_1 = __importDefault(require("immutable"));
const js_yaml_1 = __importDefault(require("js-yaml"));
const load_manifest_1 = require("../migrations/util/load-manifest");
// Loads manifest from file path and returns all:
// - data sources
// - templates
// In a single list.
const fromFilePath = async (manifestPath) => {
const { dataSources = [], templates = [] } = await (0, load_manifest_1.loadManifest)(manifestPath);
return dataSources.concat(templates);
};
exports.fromFilePath = fromFilePath;
// Loads manifest from file path and returns all:
// - data sources
// - templates
// In a single list.
function fromManifestString(manifest) {
// TODO: can we make it typesafe?
const { dataSources = [], templates = [] } = (js_yaml_1.default.safeLoad(manifest) || {});
return dataSources.concat(templates);
}
exports.fromManifestString = fromManifestString;
const extractDataSourceByType = (manifest, dataSourceType, protocol) => manifest
.get(dataSourceType, immutable_1.default.List())
.reduce((dataSources, dataSource, dataSourceIndex) => protocol.isValidKindName(dataSource.get('kind'))
? dataSources.push(immutable_1.default.Map({ path: [dataSourceType, dataSourceIndex], dataSource }))
: dataSources, immutable_1.default.List());
// Extracts data sources and templates from a immutable manifest data structure
const fromManifest = (manifest, protocol) => {
const dataSources = extractDataSourceByType(manifest, 'dataSources', protocol);
const templates = extractDataSourceByType(manifest, 'templates', protocol);
return dataSources.concat(templates);
};
exports.fromManifest = fromManifest;
;