Skip to content

Commit afd4589

Browse files
authored
Merge pull request #181 from gregolsky/v4.1
code cleanup + add missing exports
2 parents 88536bb + a3725e6 commit afd4589

File tree

13 files changed

+276
-41
lines changed

13 files changed

+276
-41
lines changed

.travis.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ before_install:
3232
- pwd && ls
3333
script:
3434
- npm run lint
35+
- npm run check-exports
3536
- npm run test
3637
- npm run build
3738
- node -e "require('./dist').DocumentStore"

package-lock.json

Lines changed: 18 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "ravendb",
3-
"version": "4.1.0",
3+
"version": "4.1.1",
44
"description": "RavenDB client for Node.js",
55
"files": [
66
"dist/"
@@ -23,7 +23,8 @@
2323
"win32": "tsc && tsc -p tsconfig.test.json && copy test\\Assets\\* .test\\test\\Assets && copy test\\mocha.opts .test && mocha --inspect-brk .test\\test",
2424
"linux": "tsc && tsc -p tsconfig.test.json && cp test/Assets/* .test/test/Assets && cp test/mocha.opts .test && mocha --inspect-brk .test/test"
2525
},
26-
"lint": "tslint src/**/*.ts && tslint test/**/*.ts"
26+
"lint": "tslint src/**/*.ts && tslint test/**/*.ts",
27+
"check-exports": "node ./scripts/reportMissingTopLevelExports.js"
2728
},
2829
"repository": {
2930
"type": "git",
@@ -55,6 +56,7 @@
5556
"@types/sinon": "^2.3.6",
5657
"@types/ws": "^6.0.1",
5758
"cross-os": "^1.3.0",
59+
"glob": "^7.1.3",
5860
"lodash.orderby": "^4.6.0",
5961
"mocha": "^5.2.0",
6062
"sinon": "^4.0.1",
Lines changed: 121 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,121 @@
1+
const glob = require("glob");
2+
const fs = require("fs");
3+
const path = require("path");
4+
const os = require("os");
5+
const promisify = require("util.promisify");
6+
7+
const globAsync = promisify(glob);
8+
9+
const IGNORE_MODULES = [
10+
"**/*.d.ts",
11+
"index.ts",
12+
"Utility/*",
13+
"Mapping/*",
14+
"TestDriver/*",
15+
"Primitives/*",
16+
"Mapping/**",
17+
"Documents/Session/Tokens/**",
18+
"Documents/Session/DocumentQueryCustomization",
19+
"Documents/Session/DocumentSessionAttachments",
20+
"Documents/Session/DocumentSessionAttachmentsBase",
21+
"Documents/Session/DocumentSessionRevisions",
22+
"Constants.ts",
23+
"Auth/Certificate",
24+
"Documents/Commands/CreateSubscriptionCommand*",
25+
"Documents/Commands/DeleteSubscriptionCommand*",
26+
"Documents/Commands/DropSubscriptionConnectionCommand*",
27+
"Documents/Commands/FacetQueryCommand*",
28+
"Documents/Commands/GetConflictsResult*",
29+
"Documents/Commands/GetDocumentsCommand",
30+
"Documents/Commands/GetRevisionsBinEntryCommand*",
31+
"Documents/Commands/GetRevisionsCommand*",
32+
"Documents/Commands/GetSubscriptionsCommand*",
33+
"Documents/Commands/GetSubscriptionStateCommand*",
34+
"Documents/Commands/HeadAttachmentCommand*",
35+
"Documents/Commands/HeadDocumentCommand*",
36+
"Documents/Commands/MultiGet/GetRequest*",
37+
"Documents/Commands/MultiGet/GetResponse*",
38+
"Documents/Commands/MultiGet/MultiGetCommand*",
39+
"Documents/Commands/QueryCommand*",
40+
"Documents/Commands/QueryStreamCommand*",
41+
"Documents/Commands/StreamCommand*",
42+
"Documents/Identity/**",
43+
"Documents/Indexes/IndexCreation*",
44+
"Http/RavenCommandResponsePipeline*",
45+
"Types/IRavenObject*",
46+
"Auth/Certificate*",
47+
"Documents/Operations/OperationExecutor*",
48+
"Documents/Operations/ServerOperationExecutor*",
49+
"Http/HttpCache*",
50+
"Documents/Queries/QueryResultBase*",
51+
"Documents/Queries/QueryFieldUtil*",
52+
"Documents/Queries/QueryHashCalculator*",
53+
"Documents/Session/AdvancedSessionExtensionBase*",
54+
"Documents/Session/JavaScriptArray*",
55+
"Documents/Queries/GenericQueryResult*",
56+
"Documents/Queries/IndexQueryBase*",
57+
"Documents/Queries/IndexQueryWithParameters*",
58+
"ServerWide/Tcp/TcpConnectionHeaderMessage*",
59+
"ServerWide/Tcp/TcpConnectionHeaderResponse*",
60+
"ServerWide/Tcp/TcpConnectionStatus*",
61+
"ServerWide/Tcp/TcpNegotiateParameters*",
62+
"ServerWide/Tcp/TcpNegotiation*",
63+
"Documents/Queries/MoreLikeThis/IMoreLikeThisBuilderBase*",
64+
"Documents/Queries/MoreLikeThis/MoreLikeThisQueryResult*",
65+
"Documents/Queries/MoreLikeThis/IMoreLikeThisBuilderForDocumentQuery*",,
66+
"Documents/Queries/MoreLikeThis/MoreLikeThisUsingDocument*",
67+
"Documents/Queries/MoreLikeThis/MoreLikeThisUsingAnyDocument*",
68+
"Documents/Queries/MoreLikeThis/MoreLikeThisScope*",
69+
"Documents/Queries/Suggestions/SuggestionQueryBase*",
70+
"Documents/Queries/Suggestions/SuggestionWithTerm*",
71+
"Documents/Queries/Suggestions/SuggestionWithTerms*",
72+
"Documents/Subscriptions/CreateSubscriptionResult*",
73+
"Documents/Subscriptions/GetSubscriptionResult*",
74+
"Documents/Subscriptions/GetSubscriptionsResult*",
75+
"Documents/Subscriptions/NodeId*",
76+
"Documents/Subscriptions/SubscriptionConnectionClientMessage*",
77+
"Documents/Subscriptions/SubscriptionConnectionClientMessage*",
78+
"Documents/Subscriptions/SubscriptionConnectionServerMessage*",
79+
"Documents/Subscriptions/SubscriptionOpeningStrategy*",
80+
"Documents/Subscriptions/SubscriptionStateWithNodeDetails*",
81+
"Documents/Subscriptions/SubscriptionTryout*",
82+
"Documents/Commands/**",
83+
"Documents/Indexes/IndexTypeExtensions*",
84+
"Documents/Indexes/AbstractIndexCreationTaskBase*",
85+
"Documents/Session/ClusterTransactionOperationsBase*",
86+
"Documents/Session/IAttachmentsSessionOperationsBase*",
87+
"Documents/Session/SessionCountersBase*",
88+
"Documents/Indexes/AbstractGenericIndexCreationTask*",
89+
"Documents/Subscriptions/BatchFromServer*"
90+
];
91+
92+
function main() {
93+
return globAsync("**/*.ts", {
94+
cwd: path.join(__dirname, "../src"),
95+
ignore: IGNORE_MODULES
96+
})
97+
.then(modules => {
98+
modules = modules.map(x => x.replace(/\/index\.ts$/, "")
99+
.replace(/\.ts$/, ""));
100+
101+
const topLevelExports = fs.readFileSync(path.join(__dirname, "../src/index.ts"));
102+
const modulesNotExported = modules.filter(m => !topLevelExports.includes(m));
103+
104+
if (modulesNotExported.length) {
105+
console.error(`${ modulesNotExported.length } modules not exported at the top level:`)
106+
console.error(modulesNotExported.join(os.EOL));
107+
return false;
108+
}
109+
110+
console.log("All required modules exported at the top level.");
111+
112+
return true;
113+
});
114+
}
115+
116+
main()
117+
.then(result => process.exit(result ? 0 : 1))
118+
.catch(err => {
119+
console.log(err);
120+
process.exit(-1);
121+
})

src/Documents/DisposableIterable.ts

Lines changed: 0 additions & 3 deletions
This file was deleted.

src/Documents/DocumentStoreBase.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ import {
1010
SessionBeforeQueryEventArgs,
1111
SessionBeforeDeleteEventArgs
1212
} from "./Session/SessionEvents";
13-
import { Todo } from "../Types";
1413
import { OperationExecutor } from "./Operations/OperationExecutor";
1514
import { IDocumentSession } from "./Session/IDocumentSession";
1615
import { DocumentSession } from "./Session/DocumentSession";
@@ -106,6 +105,7 @@ export abstract class DocumentStoreBase
106105
const resultPromise = this.maintenance
107106
.forDatabase(database || this.database)
108107
.send(new PutIndexesOperation(...indexesToAdd))
108+
// tslint:disable-next-line:no-empty
109109
.then(() => {});
110110

111111
passResultToCallback(resultPromise, callback || TypeUtil.NOOP);
@@ -253,11 +253,11 @@ export abstract class DocumentStoreBase
253253
public removeSessionListener(
254254
eventName: "beforeStore", eventHandler: (eventArgs: SessionBeforeStoreEventArgs) => void): void;
255255
public removeSessionListener(
256-
eventName: "afterSaveChanges", eventHandler: (eventArgs: Todo) => void): void;
256+
eventName: "afterSaveChanges", eventHandler: (eventArgs: SessionAfterSaveChangesEventArgs) => void): void;
257257
public removeSessionListener(
258-
eventName: "beforeQuery", eventHandler: (eventArgs: Todo) => void): void;
258+
eventName: "beforeQuery", eventHandler: (eventArgs: SessionBeforeQueryEventArgs) => void): void;
259259
public removeSessionListener(
260-
eventName: "beforeDelete", eventHandler: (eventArgs: Todo) => void): void;
260+
eventName: "beforeDelete", eventHandler: (eventArgs: SessionBeforeDeleteEventArgs) => void): void;
261261
public removeSessionListener(eventName: any, eventHandler: (eventArgs: any) => void): void {
262262
const toRemove = this._eventHandlers
263263
.filter(x => x[0] === eventName && x[1] === eventHandler)[0];

src/Documents/IDocumentStore.ts

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import {
77
SessionBeforeDeleteEventArgs
88
} from "./Session/SessionEvents";
99
import { IDisposable } from "../Types/Contracts";
10-
import { Todo } from "../Types";
1110
import { MaintenanceOperationExecutor } from "./Operations/MaintenanceOperationExecutor";
1211
import { OperationExecutor } from "./Operations/OperationExecutor";
1312
import { AbstractIndexCreationTask } from "./Indexes";
@@ -24,23 +23,25 @@ import { ErrorFirstCallback } from "../Types/Callbacks";
2423
export interface SessionEventsProxy {
2524
addSessionListener(eventName: "beforeStore", eventHandler: (eventArgs: SessionBeforeStoreEventArgs) => void): this;
2625

27-
addSessionListener(eventName: "afterSaveChanges", eventHandler: (eventArgs: Todo) => void): this;
26+
addSessionListener(
27+
eventName: "afterSaveChanges", eventHandler: (eventArgs: SessionAfterSaveChangesEventArgs) => void): this;
2828

29-
addSessionListener(eventName: "beforeQuery", eventHandler: (eventArgs: Todo) => void): this;
29+
addSessionListener(eventName: "beforeQuery", eventHandler: (eventArgs: SessionBeforeQueryEventArgs) => void): this;
3030

31-
addSessionListener(eventName: "beforeDelete", eventHandler: (eventArgs: Todo) => void): this;
31+
addSessionListener(
32+
eventName: "beforeDelete", eventHandler: (eventArgs: SessionBeforeDeleteEventArgs) => void): this;
3233

3334
removeSessionListener(
3435
eventName: "beforeStore", eventHandler: (eventArgs: SessionBeforeStoreEventArgs) => void): void;
3536

3637
removeSessionListener(
37-
eventName: "afterSaveChanges", eventHandler: (eventArgs: Todo) => void): void;
38+
eventName: "afterSaveChanges", eventHandler: (eventArgs: SessionAfterSaveChangesEventArgs) => void): void;
3839

3940
removeSessionListener(
40-
eventName: "beforeQuery", eventHandler: (eventArgs: Todo) => void): void;
41+
eventName: "beforeQuery", eventHandler: (eventArgs: SessionBeforeQueryEventArgs) => void): void;
4142

4243
removeSessionListener(
43-
eventName: "beforeDelete", eventHandler: (eventArgs: Todo) => void): void;
44+
eventName: "beforeDelete", eventHandler: (eventArgs: SessionBeforeDeleteEventArgs) => void): void;
4445
}
4546

4647
export type DocumentStoreEvent = "beforeDispose" | "afterDispose";

src/Documents/Indexes/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
export * from "./AbstractIndexCreationTask";
2-
export * from "./AbstractMultiMapIndexCreationTask";
2+
export * from "./AbstractMultiMapIndexCreationTask";

src/Primitives/DisposableIterable.ts

Lines changed: 0 additions & 5 deletions
This file was deleted.

src/Primitives/IterableObjectStream.ts

Lines changed: 0 additions & 6 deletions
This file was deleted.

0 commit comments

Comments
 (0)