@ms-cloudpack/create-express-app 0.1.0 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.json +52 -1
- package/CHANGELOG.md +19 -2
- package/lib/createExpressApp.d.ts +9 -1
- package/lib/createExpressApp.js +20 -5
- package/lib/createExpressApp.js.map +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/lib/parseHttpsConfig.d.ts +6 -0
- package/lib/parseHttpsConfig.js +26 -0
- package/lib/parseHttpsConfig.js.map +1 -0
- package/lib/parseHttpsConfig.test.d.ts +1 -0
- package/lib/parseHttpsConfig.test.js +64 -0
- package/lib/parseHttpsConfig.test.js.map +1 -0
- package/lib/tsdoc-metadata.json +11 -0
- package/package.json +7 -3
package/CHANGELOG.json
CHANGED
|
@@ -2,7 +2,58 @@
|
|
|
2
2
|
"name": "@ms-cloudpack/create-express-app",
|
|
3
3
|
"entries": [
|
|
4
4
|
{
|
|
5
|
-
"date": "
|
|
5
|
+
"date": "Tue, 18 Oct 2022 08:15:52 GMT",
|
|
6
|
+
"tag": "@ms-cloudpack/create-express-app_v1.0.0",
|
|
7
|
+
"version": "1.0.0",
|
|
8
|
+
"comments": {
|
|
9
|
+
"major": [
|
|
10
|
+
{
|
|
11
|
+
"author": "dake.3601@gmail.com",
|
|
12
|
+
"package": "@ms-cloudpack/create-express-app",
|
|
13
|
+
"commit": "1bec1f80bb50ebe897f03dc74437c3e211bea83e",
|
|
14
|
+
"comment": "Https express app can be created with options and domain."
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"author": "beachball",
|
|
18
|
+
"package": "@ms-cloudpack/create-express-app",
|
|
19
|
+
"comment": "Bump @ms-cloudpack/path-utilities to v1.1.0",
|
|
20
|
+
"commit": "1bec1f80bb50ebe897f03dc74437c3e211bea83e"
|
|
21
|
+
}
|
|
22
|
+
]
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"date": "Wed, 28 Sep 2022 08:15:16 GMT",
|
|
27
|
+
"tag": "@ms-cloudpack/create-express-app_v0.1.1",
|
|
28
|
+
"version": "0.1.1",
|
|
29
|
+
"comments": {
|
|
30
|
+
"patch": [
|
|
31
|
+
{
|
|
32
|
+
"author": "elcraig@microsoft.com",
|
|
33
|
+
"package": "@ms-cloudpack/create-express-app",
|
|
34
|
+
"commit": "084168500b6320d6861a4c7e8f363fea9e4f831e",
|
|
35
|
+
"comment": "Remove unnecessary await"
|
|
36
|
+
}
|
|
37
|
+
]
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"date": "Tue, 20 Sep 2022 08:13:46 GMT",
|
|
42
|
+
"tag": "@ms-cloudpack/create-express-app_v0.1.0",
|
|
43
|
+
"version": "0.1.0",
|
|
44
|
+
"comments": {
|
|
45
|
+
"none": [
|
|
46
|
+
{
|
|
47
|
+
"author": "email not defined",
|
|
48
|
+
"package": "@ms-cloudpack/create-express-app",
|
|
49
|
+
"commit": "f408318df04c9a3e4754975a28c39660abf32687",
|
|
50
|
+
"comment": "Update devDependency @types/express to v4.17.14"
|
|
51
|
+
}
|
|
52
|
+
]
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"date": "Fri, 20 May 2022 04:26:15 GMT",
|
|
6
57
|
"tag": "@ms-cloudpack/create-express-app_v0.1.0",
|
|
7
58
|
"version": "0.1.0",
|
|
8
59
|
"comments": {
|
package/CHANGELOG.md
CHANGED
|
@@ -1,12 +1,29 @@
|
|
|
1
1
|
# Change Log - @ms-cloudpack/create-express-app
|
|
2
2
|
|
|
3
|
-
This log was last generated on
|
|
3
|
+
This log was last generated on Tue, 18 Oct 2022 08:15:52 GMT and should not be manually modified.
|
|
4
4
|
|
|
5
5
|
<!-- Start content -->
|
|
6
6
|
|
|
7
|
+
## 1.0.0
|
|
8
|
+
|
|
9
|
+
Tue, 18 Oct 2022 08:15:52 GMT
|
|
10
|
+
|
|
11
|
+
### Major changes
|
|
12
|
+
|
|
13
|
+
- Https express app can be created with options and domain. (dake.3601@gmail.com)
|
|
14
|
+
- Bump @ms-cloudpack/path-utilities to v1.1.0
|
|
15
|
+
|
|
16
|
+
## 0.1.1
|
|
17
|
+
|
|
18
|
+
Wed, 28 Sep 2022 08:15:16 GMT
|
|
19
|
+
|
|
20
|
+
### Patches
|
|
21
|
+
|
|
22
|
+
- Remove unnecessary await (elcraig@microsoft.com)
|
|
23
|
+
|
|
7
24
|
## 0.1.0
|
|
8
25
|
|
|
9
|
-
Fri, 20 May 2022 04:
|
|
26
|
+
Fri, 20 May 2022 04:26:15 GMT
|
|
10
27
|
|
|
11
28
|
### Minor changes
|
|
12
29
|
|
|
@@ -1,8 +1,16 @@
|
|
|
1
1
|
/// <reference types="node" resolution-mode="require"/>
|
|
2
2
|
import { type Express } from 'express';
|
|
3
3
|
import type { Server } from 'http';
|
|
4
|
-
|
|
4
|
+
import type { HttpsConfig } from './parseHttpsConfig.js';
|
|
5
|
+
export declare function createExpressApp(options: {
|
|
6
|
+
portRange?: number | number[];
|
|
7
|
+
hostname?: string;
|
|
8
|
+
sslOptions?: HttpsConfig;
|
|
9
|
+
setupCallback?: (app: Express) => void;
|
|
10
|
+
}): Promise<{
|
|
5
11
|
server: Server;
|
|
12
|
+
protocol: 'http' | 'https';
|
|
13
|
+
domain: string;
|
|
6
14
|
port: number;
|
|
7
15
|
}>;
|
|
8
16
|
export type { Express };
|
package/lib/createExpressApp.js
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import express from 'express';
|
|
1
|
+
import express, {} from 'express';
|
|
2
|
+
import https from 'https';
|
|
2
3
|
import cors from 'cors';
|
|
3
4
|
import compression from 'compression';
|
|
4
5
|
import getPort from 'get-port';
|
|
5
|
-
export async function createExpressApp(
|
|
6
|
+
export async function createExpressApp(options) {
|
|
7
|
+
const { setupCallback, hostname, sslOptions, portRange } = options;
|
|
6
8
|
// Get the available port.
|
|
7
9
|
const port = await getPort({
|
|
8
10
|
port: portRange,
|
|
@@ -13,11 +15,24 @@ export async function createExpressApp(portRange, setupCallback) {
|
|
|
13
15
|
// Use compression.
|
|
14
16
|
app.use(compression());
|
|
15
17
|
// Call setup callback with the app.
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
18
|
+
setupCallback?.(app);
|
|
19
|
+
const domain = hostname || 'localhost';
|
|
20
|
+
let server = undefined;
|
|
21
|
+
let protocol = 'http';
|
|
22
|
+
if (sslOptions && Object.keys(sslOptions).length !== 0) {
|
|
23
|
+
// Create an HTTPS server.
|
|
24
|
+
const httpsServer = https.createServer(sslOptions, app);
|
|
25
|
+
server = httpsServer.listen(port, domain);
|
|
26
|
+
protocol = 'https';
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
// Create an HTTP server.
|
|
30
|
+
server = app.listen(port, domain);
|
|
31
|
+
}
|
|
19
32
|
return {
|
|
20
33
|
server,
|
|
34
|
+
protocol,
|
|
35
|
+
domain,
|
|
21
36
|
port,
|
|
22
37
|
};
|
|
23
38
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createExpressApp.js","sourceRoot":"","sources":["../src/createExpressApp.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"createExpressApp.js","sourceRoot":"","sources":["../src/createExpressApp.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,EAAE,EAAgB,MAAM,SAAS,CAAC;AAChD,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,WAAW,MAAM,aAAa,CAAC;AACtC,OAAO,OAAO,MAAM,UAAU,CAAC;AAI/B,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,OAKtC;IAMC,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAEnE,0BAA0B;IAC1B,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC;QACzB,IAAI,EAAE,SAAS;KAChB,CAAC,CAAC;IAEH,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC;IAEtB,YAAY;IACZ,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IAEhB,mBAAmB;IACnB,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;IAEvB,oCAAoC;IACpC,aAAa,EAAE,CAAC,GAAG,CAAC,CAAC;IAErB,MAAM,MAAM,GAAG,QAAQ,IAAI,WAAW,CAAC;IACvC,IAAI,MAAM,GAAG,SAAS,CAAC;IACvB,IAAI,QAAQ,GAAqB,MAAM,CAAC;IAExC,IAAI,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;QACtD,0BAA0B;QAC1B,MAAM,WAAW,GAAG,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QACxD,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC1C,QAAQ,GAAG,OAAO,CAAC;KACpB;SAAM;QACL,yBAAyB;QACzB,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;KACnC;IAED,OAAO;QACL,MAAM;QACN,QAAQ;QACR,MAAM;QACN,IAAI;KACL,CAAC;AACJ,CAAC"}
|
package/lib/index.d.ts
CHANGED
package/lib/index.js
CHANGED
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,OAAO,EAAE,gBAAgB,EAAoB,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
3
|
+
import type { ServerOptions } from 'https';
|
|
4
|
+
import type { IncomingMessage, ServerResponse } from 'http';
|
|
5
|
+
export declare type HttpsConfig = ServerOptions<typeof IncomingMessage, typeof ServerResponse>;
|
|
6
|
+
export declare function parseHttpsConfig(config: HttpsConfig): HttpsConfig;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import { pathSymbolReplacement } from '@ms-cloudpack/path-utilities';
|
|
3
|
+
/*
|
|
4
|
+
* Read certificates files in Https Config and return the contents.
|
|
5
|
+
*/
|
|
6
|
+
export function parseHttpsConfig(config) {
|
|
7
|
+
const sslOptions = {};
|
|
8
|
+
for (const [key, value] of Object.entries(config)) {
|
|
9
|
+
// Read the file contents for the certificates.
|
|
10
|
+
if (['ca', 'cert', 'key', 'pfx'].includes(key) && typeof value === 'string') {
|
|
11
|
+
const certFilePath = pathSymbolReplacement(value);
|
|
12
|
+
if (fs.existsSync(certFilePath)) {
|
|
13
|
+
sslOptions[key] = fs.readFileSync(certFilePath);
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
throw 'Certificate file not found: ' + certFilePath;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
// If not a certificate, just use the value.
|
|
21
|
+
sslOptions[key] = value;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return sslOptions;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=parseHttpsConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parseHttpsConfig.js","sourceRoot":"","sources":["../src/parseHttpsConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAQrE;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAmB;IAClD,MAAM,UAAU,GAAyC,EAAE,CAAC;IAE5D,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QACjD,+CAA+C;QAC/C,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC3E,MAAM,YAAY,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;YAClD,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE;gBAC/B,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;aACjD;iBAAM;gBACL,MAAM,8BAA8B,GAAG,YAAY,CAAC;aACrD;SACF;aAAM;YACL,4CAA4C;YAC5C,UAAU,CAAC,GAAG,CAAC,GAAyB,KAAK,CAAC;SAC/C;KACF;IACD,OAAO,UAAU,CAAC;AACpB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { afterEach, describe, it, expect } from '@jest/globals';
|
|
2
|
+
import { parseHttpsConfig } from './parseHttpsConfig.js';
|
|
3
|
+
import fs from 'fs';
|
|
4
|
+
import path from 'path';
|
|
5
|
+
import { createTestFileStructure } from '@ms-cloudpack/test-utilities';
|
|
6
|
+
const { rmdir } = fs.promises;
|
|
7
|
+
describe('parseHttpsConfig', () => {
|
|
8
|
+
let testPath;
|
|
9
|
+
afterEach(async () => {
|
|
10
|
+
if (testPath) {
|
|
11
|
+
await rmdir(testPath, { recursive: true });
|
|
12
|
+
testPath = undefined;
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
it('can read certs from file paths and keeps other properties', async () => {
|
|
16
|
+
const testPath = await createTestFileStructure({
|
|
17
|
+
'certs/mock.ca': 'ca mock',
|
|
18
|
+
'certs/mock.pfx': 'pfx mock',
|
|
19
|
+
'certs/mock.key': 'key mock',
|
|
20
|
+
'certs/mock.cert': 'cert mock',
|
|
21
|
+
});
|
|
22
|
+
const httpsConfig = {
|
|
23
|
+
ca: path.join(testPath, 'certs/mock.ca'),
|
|
24
|
+
pfx: path.join(testPath, 'certs/mock.pfx'),
|
|
25
|
+
key: path.join(testPath, 'certs/mock.key'),
|
|
26
|
+
cert: path.join(testPath, 'certs/mock.cert'),
|
|
27
|
+
passphrase: 'passphrase',
|
|
28
|
+
requestCert: true,
|
|
29
|
+
};
|
|
30
|
+
expect(parseHttpsConfig(httpsConfig)).toEqual({
|
|
31
|
+
ca: Buffer.from('ca mock', 'utf8'),
|
|
32
|
+
pfx: Buffer.from('pfx mock', 'utf8'),
|
|
33
|
+
key: Buffer.from('key mock', 'utf8'),
|
|
34
|
+
cert: Buffer.from('cert mock', 'utf8'),
|
|
35
|
+
passphrase: 'passphrase',
|
|
36
|
+
requestCert: true,
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
it('throws if cert file is not found', async () => {
|
|
40
|
+
const testPath = await createTestFileStructure({
|
|
41
|
+
'certs/mock.ca': 'ca mock',
|
|
42
|
+
'certs/undefined/mock.pfx': 'pfx mock',
|
|
43
|
+
'certs/mock.key': 'key mock',
|
|
44
|
+
'certs/mock.cert': 'cert mock',
|
|
45
|
+
});
|
|
46
|
+
const httpsConfig = {
|
|
47
|
+
ca: path.join(testPath, 'certs/mock.ca'),
|
|
48
|
+
pfx: path.join(testPath, 'certs/mock.pfx'),
|
|
49
|
+
key: path.join(testPath, 'certs/mock.key'),
|
|
50
|
+
cert: path.join(testPath, 'certs/mock.cert'),
|
|
51
|
+
passphrase: 'passphrase',
|
|
52
|
+
requestCert: true,
|
|
53
|
+
};
|
|
54
|
+
let error = false;
|
|
55
|
+
try {
|
|
56
|
+
parseHttpsConfig(httpsConfig);
|
|
57
|
+
}
|
|
58
|
+
catch (e) {
|
|
59
|
+
error = true;
|
|
60
|
+
}
|
|
61
|
+
expect(error).toEqual(true);
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
//# sourceMappingURL=parseHttpsConfig.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parseHttpsConfig.test.js","sourceRoot":"","sources":["../src/parseHttpsConfig.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAEvE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC;AAE9B,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,IAAI,QAA4B,CAAC;IAEjC,SAAS,CAAC,KAAK,IAAI,EAAE;QACnB,IAAI,QAAQ,EAAE;YACZ,MAAM,KAAK,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC3C,QAAQ,GAAG,SAAS,CAAC;SACtB;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;QACzE,MAAM,QAAQ,GAAG,MAAM,uBAAuB,CAAC;YAC7C,eAAe,EAAE,SAAS;YAC1B,gBAAgB,EAAE,UAAU;YAC5B,gBAAgB,EAAE,UAAU;YAC5B,iBAAiB,EAAE,WAAW;SAC/B,CAAC,CAAC;QAEH,MAAM,WAAW,GAAG;YAClB,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,eAAe,CAAC;YACxC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,gBAAgB,CAAC;YAC1C,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,gBAAgB,CAAC;YAC1C,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,iBAAiB,CAAC;YAC5C,UAAU,EAAE,YAAY;YACxB,WAAW,EAAE,IAAI;SAClB,CAAC;QAEF,MAAM,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC;YAC5C,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC;YAClC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC;YACpC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC;YACpC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC;YACtC,UAAU,EAAE,YAAY;YACxB,WAAW,EAAE,IAAI;SAClB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;QAChD,MAAM,QAAQ,GAAG,MAAM,uBAAuB,CAAC;YAC7C,eAAe,EAAE,SAAS;YAC1B,0BAA0B,EAAE,UAAU;YACtC,gBAAgB,EAAE,UAAU;YAC5B,iBAAiB,EAAE,WAAW;SAC/B,CAAC,CAAC;QAEH,MAAM,WAAW,GAAG;YAClB,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,eAAe,CAAC;YACxC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,gBAAgB,CAAC;YAC1C,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,gBAAgB,CAAC;YAC1C,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,iBAAiB,CAAC;YAC5C,UAAU,EAAE,YAAY;YACxB,WAAW,EAAE,IAAI;SAClB,CAAC;QAEF,IAAI,KAAK,GAAG,KAAK,CAAC;QAClB,IAAI;YACF,gBAAgB,CAAC,WAAW,CAAC,CAAC;SAC/B;QAAC,OAAO,CAAC,EAAE;YACV,KAAK,GAAG,IAAI,CAAC;SACd;QAED,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
// This file is read by tools that parse documentation comments conforming to the TSDoc standard.
|
|
2
|
+
// It should be published with your NPM package. It should not be tracked by Git.
|
|
3
|
+
{
|
|
4
|
+
"tsdocVersion": "0.12",
|
|
5
|
+
"toolPackages": [
|
|
6
|
+
{
|
|
7
|
+
"packageName": "@microsoft/api-extractor",
|
|
8
|
+
"packageVersion": "7.33.1"
|
|
9
|
+
}
|
|
10
|
+
]
|
|
11
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ms-cloudpack/create-express-app",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "1.0.0",
|
|
4
4
|
"description": "Helper for creating an express app server, abstracting a common plugin setup.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
}
|
|
14
14
|
},
|
|
15
15
|
"dependencies": {
|
|
16
|
+
"@ms-cloudpack/path-utilities": "^1.1.0",
|
|
16
17
|
"compression": "^1.7.4",
|
|
17
18
|
"cors": "^2.8.5",
|
|
18
19
|
"express": "^4.17.3",
|
|
@@ -23,7 +24,7 @@
|
|
|
23
24
|
"@ms-cloudpack/eslint-config-base": "*",
|
|
24
25
|
"@types/compression": "1.7.2",
|
|
25
26
|
"@types/cors": "2.8.12",
|
|
26
|
-
"@types/express": "4.17.
|
|
27
|
+
"@types/express": "4.17.14",
|
|
27
28
|
"@types/get-port": "4.2.0"
|
|
28
29
|
},
|
|
29
30
|
"scripts": {
|
|
@@ -32,7 +33,10 @@
|
|
|
32
33
|
"build:watch": "cloudpack-scripts build-watch",
|
|
33
34
|
"build": "cloudpack-scripts build",
|
|
34
35
|
"lint:update": "cloudpack-scripts lint-update",
|
|
35
|
-
"lint": "cloudpack-scripts lint"
|
|
36
|
+
"lint": "cloudpack-scripts lint",
|
|
37
|
+
"test:update": "cloudpack-scripts test-update",
|
|
38
|
+
"test:watch": "cloudpack-scripts test-watch",
|
|
39
|
+
"test": "cloudpack-scripts test"
|
|
36
40
|
},
|
|
37
41
|
"files": [
|
|
38
42
|
"/lib"
|