Skip to content

Commit a4844f6

Browse files
committed
Deprecate enums/fields that are missing/deprecated in libgit2 now
1 parent b3fd15b commit a4844f6

4 files changed

Lines changed: 118 additions & 0 deletions

File tree

lib/error.js

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
var util = require("util");
2+
var NodeGit = require("../");
3+
4+
// Deprecated -----------------------------------------------------------------
5+
6+
// In 0.28.0 git_error was majorly refactored to have better naming in libgit2
7+
// We will continue to support the old enum entries but with a deprecation
8+
// warning as they will go away soon.
9+
Object.keys(NodeGit.Error.CODE).forEach((key) => {
10+
Object.defineProperty(NodeGit.Error.CODE, `GITERR_${key}`, {
11+
get: util.deprecate(
12+
() => NodeGit.Error.CODE[key],
13+
`Use NodeGit.Error.CODE.${key} instead.`
14+
)
15+
});
16+
});

lib/index.js

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
var util = require("util");
12
var NodeGit = require("../");
23

34
var Index = NodeGit.Index;
@@ -32,3 +33,67 @@ Index.prototype.removeAll = function(pathspec, matchedCallback) {
3233
Index.prototype.updateAll = function(pathspec, matchedCallback) {
3334
return _updateAll.call(this, pathspec || "*", matchedCallback, null);
3435
};
36+
37+
// Deprecated -----------------------------------------------------------------
38+
39+
NodeGit.Index.CAP = {};
40+
Object.keys(NodeGit.Index.CAPABILITY).forEach((key) => {
41+
Object.defineProperty(NodeGit.Index.CAP, key, {
42+
get: util.deprecate(
43+
() => NodeGit.Index.CAPABILITY[key],
44+
`Use NodeGit.Index.CAPABILITY.${key} instead.`
45+
)
46+
});
47+
});
48+
49+
NodeGit.Enums.INDXENTRY_FLAG = {};
50+
Object.defineProperty(NodeGit.Enums.INDXENTRY_FLAG, "IDXENTRY_EXTENDED", {
51+
get: util.deprecate(
52+
() => NodeGit.Index.ENTRY_FLAG.ENTRY_EXTENDED,
53+
"Use NodeGit.Index.ENTRY_FLAG.ENTRY_EXTENDED instead."
54+
)
55+
});
56+
Object.defineProperty(NodeGit.Enums.INDXENTRY_FLAG, "IDXENTRY_VALID", {
57+
get: util.deprecate(
58+
() => NodeGit.Index.ENTRY_FLAG.ENTRY_VALID,
59+
"Use NodeGit.Index.ENTRY_FLAG.ENTRY_VALID instead."
60+
)
61+
});
62+
63+
NodeGit.Enums.IDXENTRY_EXTENDED_FLAG = {};
64+
var EXTENDED_FLAGS_MAP = {
65+
IDXENTRY_INTENT_TO_ADD: "ENTRY_INTENT_TO_ADD",
66+
IDXENTRY_SKIP_WORKTREE: "ENTRY_SKIP_WORKTREE",
67+
S: "S",
68+
IDXENTRY_UPTODATE: "ENTRY_UPTODATE"
69+
};
70+
Object.keys(EXTENDED_FLAGS_MAP).forEach((key) => {
71+
const newKey = EXTENDED_FLAGS_MAP[key];
72+
Object.defineProperty(NodeGit.Enums.IDXENTRY_EXTENDED_FLAG, key, {
73+
get: util.deprecate(
74+
() => NodeGit.Index.ENTRY_EXTENDED_FLAG[newKey],
75+
`Use NodeGit.Index.ENTRY_EXTENDED_FLAG.${newKey} instead.`
76+
)
77+
});
78+
});
79+
80+
var DEPRECATED_EXTENDED_FLAGS = {
81+
IDXENTRY_EXTENDED2: 32768,
82+
IDXENTRY_UPDATE: 1,
83+
IDXENTRY_REMOVE: 2,
84+
IDXENTRY_ADDED: 8,
85+
IDXENTRY_HASHED: 16,
86+
IDXENTRY_UNHASHED: 32,
87+
IDXENTRY_WT_REMOVE: 64,
88+
IDXENTRY_CONFLICTED: 128,
89+
IDXENTRY_UNPACKED: 256,
90+
IDXENTRY_NEW_SKIP_WORKTREE: 512,
91+
};
92+
Object.keys(DEPRECATED_EXTENDED_FLAGS).forEach((key) => {
93+
Object.defineProperty(NodeGit.Enums.IDXENTRY_EXTENDED_FLAG, key, {
94+
get: util.deprecate(
95+
() => DEPRECATED_EXTENDED_FLAGS[key],
96+
"LibGit2 has removed this flag for public usage."
97+
)
98+
});
99+
});

lib/object.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
var util = require("util");
12
var NodeGit = require("../");
23

34
var Obj = NodeGit.Object;
@@ -33,3 +34,12 @@ Obj.prototype.isTag = function() {
3334
Obj.prototype.isTree = function() {
3435
return this.type() == Obj.TYPE.TREE;
3536
};
37+
38+
// Deprecated -----------------------------------------------------------------
39+
40+
Object.defineProperty(Obj.TYPE, "BAD", {
41+
get: util.deprecate(
42+
() => Obj.TYPE.INVALID,
43+
"Use NodeGit.Object.TYPE.INVALID instead."
44+
)
45+
});

lib/reference.js

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
var util = require("util");
12
var NodeGit = require("../");
23
var LookupWrapper = NodeGit.Utils.lookupWrapper;
34

@@ -183,3 +184,29 @@ Reference.updateTerminal = function (
183184
return reflog.write();
184185
});
185186
};
187+
188+
// Deprecated -----------------------------------------------------------------
189+
190+
Object.defineProperty(NodeGit.Reference.TYPE, "OID", {
191+
get: util.deprecate(
192+
() => NodeGit.Reference.TYPE.DIRECT,
193+
"Use NodeGit.Reference.TYPE.DIRECT instead."
194+
)
195+
});
196+
197+
Object.defineProperty(NodeGit.Reference.TYPE, "LISTALL", {
198+
get: util.deprecate(
199+
() => NodeGit.Reference.TYPE.ALL,
200+
"Use NodeGit.Reference.TYPE.ALL instead."
201+
)
202+
});
203+
204+
NodeGit.Reference.NORMALIZE = {};
205+
Object.keys(NodeGit.Reference.FORMAT).forEach((key) => {
206+
Object.defineProperty(NodeGit.Reference.NORMALIZE, `REF_FORMAT_${key}`, {
207+
get: util.deprecate(
208+
() => NodeGit.Reference.FORMAT[key],
209+
`Use NodeGit.Reference.FORMAT.${key} instead.`
210+
)
211+
});
212+
});

0 commit comments

Comments
 (0)