Skip to content

Commit 71e5c32

Browse files
authored
Merge pull request #180 from gregolsky/v4.0
code cleanup + add missing exports
2 parents cb758b6 + 7d0174b commit 71e5c32

File tree

13 files changed

+246
-40
lines changed

13 files changed

+246
-40
lines changed

.travis.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ before_install:
3333
- pwd && ls
3434
script:
3535
- npm run lint
36+
- npm run check-exports
3637
- npm run test
3738
- npm run build
3839
- 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: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -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: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
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+
];
84+
85+
function main() {
86+
return globAsync("**/*.ts", {
87+
cwd: path.join(__dirname, "../src"),
88+
ignore: IGNORE_MODULES
89+
})
90+
.then(modules => {
91+
modules = modules.map(x => x.replace(/\/index\.ts$/, "")
92+
.replace(/\.ts$/, ""));
93+
94+
const topLevelExports = fs.readFileSync(path.join(__dirname, "../src/index.ts"));
95+
const modulesNotExported = modules.filter(m => !topLevelExports.includes(m));
96+
97+
if (modulesNotExported.length) {
98+
console.error(`${ modulesNotExported.length } modules not exported at the top level:`)
99+
console.error(modulesNotExported.join(os.EOL));
100+
return false;
101+
}
102+
103+
console.log("All required modules exported at the top level.");
104+
105+
return true;
106+
});
107+
}
108+
109+
main()
110+
.then(result => process.exit(result ? 0 : 1))
111+
.catch(err => {
112+
console.log(err);
113+
process.exit(-1);
114+
})

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, SessionOptions } from "./Session/IDocumentSession";
1615
import { DocumentSession } from "./Session/DocumentSession";
@@ -103,6 +102,7 @@ export abstract class DocumentStoreBase
103102
const resultPromise = this.maintenance
104103
.forDatabase(database || this.database)
105104
.send(new PutIndexesOperation(...indexesToAdd))
105+
// tslint:disable-next-line:no-empty
106106
.then(() => {});
107107

108108
passResultToCallback(resultPromise, callback || TypeUtil.NOOP);
@@ -227,11 +227,11 @@ export abstract class DocumentStoreBase
227227
public removeSessionListener(
228228
eventName: "beforeStore", eventHandler: (eventArgs: SessionBeforeStoreEventArgs) => void): void;
229229
public removeSessionListener(
230-
eventName: "afterSaveChanges", eventHandler: (eventArgs: Todo) => void): void;
230+
eventName: "afterSaveChanges", eventHandler: (eventArgs: SessionAfterSaveChangesEventArgs) => void): void;
231231
public removeSessionListener(
232-
eventName: "beforeQuery", eventHandler: (eventArgs: Todo) => void): void;
232+
eventName: "beforeQuery", eventHandler: (eventArgs: SessionBeforeQueryEventArgs) => void): void;
233233
public removeSessionListener(
234-
eventName: "beforeDelete", eventHandler: (eventArgs: Todo) => void): void;
234+
eventName: "beforeDelete", eventHandler: (eventArgs: SessionBeforeDeleteEventArgs) => void): void;
235235
public removeSessionListener(eventName: any, eventHandler: (eventArgs: any) => void): void {
236236
const toRemove = this._eventHandlers
237237
.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";
@@ -22,23 +21,25 @@ import { AbstractCallback } from "../Types/Callbacks";
2221
export interface SessionEventsProxy {
2322
addSessionListener(eventName: "beforeStore", eventHandler: (eventArgs: SessionBeforeStoreEventArgs) => void): this;
2423

25-
addSessionListener(eventName: "afterSaveChanges", eventHandler: (eventArgs: Todo) => void): this;
24+
addSessionListener(
25+
eventName: "afterSaveChanges", eventHandler: (eventArgs: SessionAfterSaveChangesEventArgs) => void): this;
2626

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

29-
addSessionListener(eventName: "beforeDelete", eventHandler: (eventArgs: Todo) => void): this;
29+
addSessionListener(
30+
eventName: "beforeDelete", eventHandler: (eventArgs: SessionBeforeDeleteEventArgs) => void): this;
3031

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

3435
removeSessionListener(
35-
eventName: "afterSaveChanges", eventHandler: (eventArgs: Todo) => void): void;
36+
eventName: "afterSaveChanges", eventHandler: (eventArgs: SessionAfterSaveChangesEventArgs) => void): void;
3637

3738
removeSessionListener(
38-
eventName: "beforeQuery", eventHandler: (eventArgs: Todo) => void): void;
39+
eventName: "beforeQuery", eventHandler: (eventArgs: SessionBeforeQueryEventArgs) => void): void;
3940

4041
removeSessionListener(
41-
eventName: "beforeDelete", eventHandler: (eventArgs: Todo) => void): void;
42+
eventName: "beforeDelete", eventHandler: (eventArgs: SessionBeforeDeleteEventArgs) => void): void;
4243
}
4344

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

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.

src/TestDriver/index.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ import { throwError, getError } from "../Exceptions";
1212
import { DatabaseRecord } from "../ServerWide";
1313
import { CreateDatabaseOperation } from "../ServerWide/Operations/CreateDatabaseOperation";
1414
import { DeleteDatabasesOperation } from "../ServerWide/Operations/DeleteDatabasesOperation";
15-
import { Todo } from "../Types";
1615
import { IDisposable } from "../Types/Contracts";
1716
import { getLogger } from "../Utility/LogUtil";
1817
import { RavenServerLocator } from "./RavenServerLocator";
@@ -370,7 +369,7 @@ export abstract class RavenTestDriver implements IDisposable {
370369
return Promise.resolve(result);
371370
}
372371

373-
public waitForUserToContinueTheTest(store: Todo): void {
372+
public waitForUserToContinueTheTest(store: DocumentStore): void {
374373
// TODO
375374

376375
// String databaseNameEncoded = UrlUtils.escapeDataString(store.getDatabase());

0 commit comments

Comments
 (0)