Built motion from commit 6a09e18b.|2.6.11
[motion2.git] / legacy-libs / google-proto-files / build / src / load.js
diff --git a/legacy-libs/google-proto-files/build/src/load.js b/legacy-libs/google-proto-files/build/src/load.js
new file mode 100644 (file)
index 0000000..c1be95a
--- /dev/null
@@ -0,0 +1,69 @@
+"use strict";
+/**
+ * Copyright 2018 Google LLC
+ *
+ * Distributed under MIT license.
+ * See file LICENSE for detail or copy at https://opensource.org/licenses/MIT
+ */
+Object.defineProperty(exports, "__esModule", { value: true });
+const path = require("path");
+const protobuf = require("protobufjs");
+const walk = 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'),
+            'longrunning',
+            'protobuf',
+            // 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, path.relative(__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);
+}
+exports.loadSync = loadSync;
+function load(filename, options) {
+    const root = new GoogleProtoFilesRoot();
+    return root.load(filename, options);
+}
+exports.load = load;
+//# sourceMappingURL=load.js.map
\ No newline at end of file