google-proto-files
Version:
All of the Google API's protocol buffer files
111 lines • 4.53 kB
JavaScript
;
// Copyright 2020 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || (function () {
var ownKeys = function(o) {
ownKeys = Object.getOwnPropertyNames || function (o) {
var ar = [];
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
return ar;
};
return ownKeys(o);
};
return function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
__setModuleDefault(result, mod);
return result;
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.GoogleProtoFilesRoot = void 0;
exports.loadSync = loadSync;
exports.load = load;
const path = __importStar(require("path"));
const protobuf = __importStar(require("protobufjs"));
const walk = __importStar(require("walkdir"));
let COMMON_PROTO_FILES;
class GoogleProtoFilesRoot extends protobuf.Root {
constructor(options) {
super(options);
}
// Caches and returns an array of the local common/google core proto files
// exist on disk.
static getCommonProtoFiles() {
const commonProtoDirs = [
// This list of directories is defined here:
// https://github.com/googleapis/googleapis/blob/master/gapic/packaging/common_protos.yaml
'api',
path.join('logging', 'type'),
path.join('cloud', 'speech', 'v1'),
'longrunning',
'protobuf', // This is an additional path that the common protos depend
// on.
'rpc',
'type',
].map(dir => path.join(__dirname, '..', '..', 'google', dir));
if (!COMMON_PROTO_FILES) {
COMMON_PROTO_FILES = commonProtoDirs
.map(dir => {
return walk.sync(dir)
.filter(f => path.extname(f) === '.proto')
.map(path.normalize);
})
.reduce((a, c) => a.concat(c), []);
}
return COMMON_PROTO_FILES;
}
// Causes the loading of an included proto to check if it is a common
// proto. If it is a common proto, use the google-proto-files proto.
resolvePath(_, includePath, alreadyNormalized) {
includePath = path.normalize(includePath);
// Fully qualified paths don't need to be resolved.
if (path.isAbsolute(includePath)) {
return includePath;
}
const fullIncludePath = path.join(__dirname, '..', '..', includePath);
const commonProtoFiles = GoogleProtoFilesRoot.getCommonProtoFiles();
if (commonProtoFiles.indexOf(fullIncludePath) > -1) {
return fullIncludePath;
}
return protobuf.util.path.resolve(_, includePath, alreadyNormalized);
}
}
exports.GoogleProtoFilesRoot = GoogleProtoFilesRoot;
function loadSync(filename, options) {
const root = new GoogleProtoFilesRoot();
return root.loadSync(filename, options);
}
function load(filename, options) {
const root = new GoogleProtoFilesRoot();
return root.load(filename, options);
}
//# sourceMappingURL=load.js.map