see https://github.com/ProtoDef-io/node-protodefc/pull/7/files#diff-9542cb988ed5a621006bb12a353f99c8R51
see https://github.com/ProtoDef-io/node-protodefc/pull/7/files#diff-9542cb988ed5a621006bb12a353f99c8R51