firebase-tools
Version:
Command-Line Interface for Firebase
45 lines (44 loc) • 1.75 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.load = void 0;
const path = require("path");
const fileUtils = require("./fileUtils");
const types_1 = require("./types");
async function load(projectId, config, sourceDirectory) {
const resolvedDir = config.path(sourceDirectory);
const dataConnectYaml = await fileUtils.readDataConnectYaml(resolvedDir);
const serviceName = `projects/${projectId}/locations/${dataConnectYaml.location}/services/${dataConnectYaml.serviceId}`;
const schemaDir = path.join(resolvedDir, dataConnectYaml.schema.source);
const schemaGQLs = await fileUtils.readGQLFiles(schemaDir);
const connectorInfo = await Promise.all(dataConnectYaml.connectorDirs.map(async (dir) => {
const connectorDir = path.join(resolvedDir, dir);
const connectorYaml = await fileUtils.readConnectorYaml(connectorDir);
const connectorGqls = await fileUtils.readGQLFiles(connectorDir);
return {
directory: connectorDir,
connectorYaml,
connector: {
name: `${serviceName}/connectors/${connectorYaml.connectorId}`,
source: {
files: connectorGqls,
},
},
};
}));
return {
serviceName,
sourceDirectory: resolvedDir,
schema: {
name: `${serviceName}/schemas/${types_1.SCHEMA_ID}`,
datasources: [
(0, types_1.toDatasource)(projectId, dataConnectYaml.location, dataConnectYaml.schema.datasource),
],
source: {
files: schemaGQLs,
},
},
dataConnectYaml,
connectorInfo,
};
}
exports.load = load;
;