@stackbit/dev 0.0.15 → 0.0.17-alpha.1
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/dist/command.js +63 -2
- package/dist/command.js.map +1 -1
- package/dist/dev.d.ts +9 -2
- package/dist/dev.js +30 -15
- package/dist/dev.js.map +1 -1
- package/dist/runner/index.d.ts +16 -4
- package/dist/runner/index.js +54 -19
- package/dist/runner/index.js.map +1 -1
- package/dist/server/index.d.ts +8 -2
- package/dist/server/index.js +5 -10
- package/dist/server/index.js.map +1 -1
- package/dist/server/routes.js +8 -2
- package/dist/server/routes.js.map +1 -1
- package/package.json +5 -4
- package/src/command.ts +60 -2
- package/src/dev.ts +39 -21
- package/src/runner/index.ts +65 -19
- package/src/server/index.ts +13 -18
- package/src/server/routes.ts +8 -2
package/dist/command.js
CHANGED
|
@@ -1,6 +1,22 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.handler = exports.builder = void 0;
|
|
7
|
+
const lodash_1 = __importDefault(require("lodash"));
|
|
8
|
+
function possibleArray(val) {
|
|
9
|
+
let result;
|
|
10
|
+
if (!lodash_1.default.isEmpty(val)) {
|
|
11
|
+
if (lodash_1.default.isArray(val)) {
|
|
12
|
+
result = val;
|
|
13
|
+
}
|
|
14
|
+
else {
|
|
15
|
+
result = [val];
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
return result;
|
|
19
|
+
}
|
|
4
20
|
function builder(yargs) {
|
|
5
21
|
yargs
|
|
6
22
|
.option('port', {
|
|
@@ -17,6 +33,24 @@ function builder(yargs) {
|
|
|
17
33
|
alias: 'd',
|
|
18
34
|
description: 'root dir',
|
|
19
35
|
default: process.cwd()
|
|
36
|
+
})
|
|
37
|
+
.options('cms', {
|
|
38
|
+
alias: 'c',
|
|
39
|
+
description: 'CMS type',
|
|
40
|
+
default: '',
|
|
41
|
+
choices: ['', 'git', 'contentful']
|
|
42
|
+
})
|
|
43
|
+
.options('contentful-access-token', {
|
|
44
|
+
description: 'Contentful access token',
|
|
45
|
+
default: ''
|
|
46
|
+
})
|
|
47
|
+
.options('contentful-space-id', {
|
|
48
|
+
description: 'Contentful space ID',
|
|
49
|
+
default: ''
|
|
50
|
+
})
|
|
51
|
+
.options('contentful-preview-key', {
|
|
52
|
+
description: 'Contentful preview key',
|
|
53
|
+
default: ''
|
|
20
54
|
})
|
|
21
55
|
.options('runnable-dir', {
|
|
22
56
|
description: 'runnable dir',
|
|
@@ -26,7 +60,29 @@ function builder(yargs) {
|
|
|
26
60
|
description: 'log level',
|
|
27
61
|
default: 'info'
|
|
28
62
|
})
|
|
29
|
-
.options('
|
|
63
|
+
.options('open', {
|
|
64
|
+
description: 'Auto open',
|
|
65
|
+
type: 'boolean'
|
|
66
|
+
})
|
|
67
|
+
.options('help', {})
|
|
68
|
+
.check(argv => {
|
|
69
|
+
var _a, _b;
|
|
70
|
+
if (argv.cms === 'contentful') {
|
|
71
|
+
if (!argv.contentfulAccessToken) {
|
|
72
|
+
throw new Error('Missing Contentful access token: --contentful-access-token <access-token>');
|
|
73
|
+
}
|
|
74
|
+
if (!argv.contentfulPreviewToken) {
|
|
75
|
+
throw new Error('Missing Contentful preview token: --contentful-preview-token <preview-token>');
|
|
76
|
+
}
|
|
77
|
+
if (!argv.contentfulSpaceId) {
|
|
78
|
+
throw new Error('Missing Contentful space ID: --contentful-space-id <space-id>');
|
|
79
|
+
}
|
|
80
|
+
if (((_a = possibleArray(argv.contentfulSpaceId)) === null || _a === void 0 ? void 0 : _a.length) !== ((_b = possibleArray(argv.contentfulPreviewToken)) === null || _b === void 0 ? void 0 : _b.length)) {
|
|
81
|
+
throw new Error('Mismatch between number of space ID\'s and preview tokens provided.');
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
return true;
|
|
85
|
+
});
|
|
30
86
|
}
|
|
31
87
|
exports.builder = builder;
|
|
32
88
|
async function handler(argv) {
|
|
@@ -37,7 +93,12 @@ async function handler(argv) {
|
|
|
37
93
|
ssgPort: argv.port,
|
|
38
94
|
ssgHost: argv.host,
|
|
39
95
|
rootDir: argv.dir,
|
|
40
|
-
|
|
96
|
+
autoOpen: argv.open,
|
|
97
|
+
cmsType: argv.cms,
|
|
98
|
+
runnableDir: argv['runnable-dir'],
|
|
99
|
+
contentfulAccessToken: argv.contentfulAccessToken,
|
|
100
|
+
contentfulSpaceIds: possibleArray(argv.contentfulSpaceId),
|
|
101
|
+
contentfulPreviewTokens: possibleArray(argv.contentfulPreviewToken)
|
|
41
102
|
});
|
|
42
103
|
}
|
|
43
104
|
exports.handler = handler;
|
package/dist/command.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.js","sourceRoot":"","sources":["../src/command.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"command.js","sourceRoot":"","sources":["../src/command.ts"],"names":[],"mappings":"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"}
|
package/dist/dev.d.ts
CHANGED
|
@@ -1,6 +1,13 @@
|
|
|
1
|
-
|
|
1
|
+
interface DevOptions {
|
|
2
2
|
ssgPort: number;
|
|
3
3
|
ssgHost: string;
|
|
4
4
|
rootDir: string;
|
|
5
5
|
runnableDir?: string;
|
|
6
|
-
|
|
6
|
+
autoOpen?: boolean;
|
|
7
|
+
cmsType?: string;
|
|
8
|
+
contentfulAccessToken?: string;
|
|
9
|
+
contentfulSpaceIds?: [string];
|
|
10
|
+
contentfulPreviewTokens?: [string];
|
|
11
|
+
}
|
|
12
|
+
export declare function start(options: DevOptions): Promise<false | undefined>;
|
|
13
|
+
export {};
|
package/dist/dev.js
CHANGED
|
@@ -11,34 +11,49 @@ const logger_1 = __importDefault(require("./services/logger"));
|
|
|
11
11
|
const api_1 = __importDefault(require("./services/api"));
|
|
12
12
|
const config_1 = __importDefault(require("./config"));
|
|
13
13
|
const chalk_1 = __importDefault(require("chalk"));
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
const open_1 = __importDefault(require("open"));
|
|
15
|
+
async function start(options) {
|
|
16
|
+
logger_1.default.info('Site directory: ' + options.rootDir);
|
|
16
17
|
let serverPort = await (0, detect_port_1.default)(8090);
|
|
17
18
|
const userId = (0, user_config_1.getUserId)();
|
|
18
19
|
logger_1.default.debug('id: ' + userId);
|
|
19
|
-
try {
|
|
20
|
-
await (0, server_1.start)({ serverPort, ssgHost, ssgPort, rootDir, runnableDir, uuid: userId });
|
|
21
|
-
}
|
|
22
|
-
catch (err) {
|
|
23
|
-
logger_1.default.error('Error starting Stackbit dev server');
|
|
24
|
-
logger_1.default.debug('startServer failed', { err });
|
|
25
|
-
return false;
|
|
26
|
-
}
|
|
27
20
|
const localDetails = {
|
|
28
21
|
i: userId,
|
|
29
22
|
p: serverPort,
|
|
30
|
-
v: require('../package.json').version
|
|
23
|
+
v: require('../package.json').version,
|
|
24
|
+
cms: options.cmsType || 'git'
|
|
31
25
|
};
|
|
32
26
|
logger_1.default.debug('Local details', { localDetails });
|
|
33
27
|
const studioUrl = `${config_1.default.appUrl}/local/${Buffer.from(JSON.stringify(localDetails)).toString('base64')}`;
|
|
34
28
|
try {
|
|
35
|
-
await api_1.default.updateLocalDev(userId, localDetails);
|
|
29
|
+
const result = await api_1.default.updateLocalDev(userId, localDetails);
|
|
30
|
+
logger_1.default.debug('update local details result', { result: result === null || result === void 0 ? void 0 : result.status });
|
|
36
31
|
}
|
|
37
32
|
catch (err) {
|
|
38
|
-
|
|
33
|
+
// failure here is expected if user hasn't pressed the link yet.
|
|
34
|
+
// in that case we defer the update to when the server starts getting accessed.
|
|
35
|
+
logger_1.default.debug('updateLocalDev failed', { err: err.message || err });
|
|
36
|
+
}
|
|
37
|
+
try {
|
|
38
|
+
await (0, server_1.start)({
|
|
39
|
+
serverPort,
|
|
40
|
+
uuid: userId,
|
|
41
|
+
...options
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
catch (err) {
|
|
45
|
+
logger_1.default.error('Error starting Stackbit dev server');
|
|
46
|
+
logger_1.default.debug('startServer failed', { err });
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
49
|
+
logger_1.default.info(`Server started. Forwarding requests to: ${options.ssgHost}:${options.ssgPort}`);
|
|
50
|
+
logger_1.default.info(`⚡ Open${options.autoOpen ? 'ing' : ''} ${chalk_1.default.bold(studioUrl)} in your browser`);
|
|
51
|
+
if (options.autoOpen) {
|
|
52
|
+
(0, open_1.default)(studioUrl).catch(err => {
|
|
53
|
+
logger_1.default.debug('Auto open error', { err });
|
|
54
|
+
logger_1.default.error('Error auto opening');
|
|
55
|
+
});
|
|
39
56
|
}
|
|
40
|
-
logger_1.default.info(`Server started. Forwarding requests to: ${ssgHost}:${ssgPort}`);
|
|
41
|
-
logger_1.default.info(`Open ${chalk_1.default.bold(studioUrl)} in your browser`);
|
|
42
57
|
}
|
|
43
58
|
exports.start = start;
|
|
44
59
|
//# sourceMappingURL=dev.js.map
|
package/dist/dev.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../src/dev.ts"],"names":[],"mappings":";;;;;;AACA,8DAAqC;AAErC,qCAAgD;AAChD,wDAAmD;AACnD,+DAAuC;AACvC,yDAAwC;AACxC,sDAA8B;AAC9B,kDAA0B;
|
|
1
|
+
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../src/dev.ts"],"names":[],"mappings":";;;;;;AACA,8DAAqC;AAErC,qCAAgD;AAChD,wDAAmD;AACnD,+DAAuC;AACvC,yDAAwC;AACxC,sDAA8B;AAC9B,kDAA0B;AAC1B,gDAAwB;AAcjB,KAAK,UAAU,KAAK,CAAC,OAAmB;IAC3C,gBAAM,CAAC,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAElD,IAAI,UAAU,GAAG,MAAM,IAAA,qBAAU,EAAC,IAAI,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,IAAA,uBAAS,GAAE,CAAC;IAC3B,gBAAM,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;IAE9B,MAAM,YAAY,GAAG;QACjB,CAAC,EAAE,MAAM;QACT,CAAC,EAAE,UAAU;QACb,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC,OAAO;QACrC,GAAG,EAAE,OAAO,CAAC,OAAO,IAAI,KAAK;KAChC,CAAC;IAEF,gBAAM,CAAC,KAAK,CAAC,eAAe,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,GAAG,gBAAM,CAAC,MAAM,UAAU,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;IAE3G,IAAI;QACA,MAAM,MAAM,GAAG,MAAM,aAAU,CAAC,cAAc,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QACrE,gBAAM,CAAC,KAAK,CAAC,6BAA6B,EAAE,EAAE,MAAM,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,EAAE,CAAC,CAAC;KAC3E;IAAC,OAAO,GAAQ,EAAE;QACf,gEAAgE;QAChE,+EAA+E;QAC/E,gBAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,OAAO,IAAI,GAAG,EAAE,CAAC,CAAC;KACtE;IAED,IAAI;QACA,MAAM,IAAA,cAAW,EAAC;YACd,UAAU;YACV,IAAI,EAAE,MAAM;YACZ,GAAG,OAAO;SACb,CAAC,CAAC;KACN;IAAC,OAAO,GAAG,EAAE;QACV,gBAAM,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACnD,gBAAM,CAAC,KAAK,CAAC,oBAAoB,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;QAC5C,OAAO,KAAK,CAAC;KAChB;IAED,gBAAM,CAAC,IAAI,CAAC,2CAA2C,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAC7F,gBAAM,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,eAAK,CAAC,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;IAE/F,IAAI,OAAO,CAAC,QAAQ,EAAE;QAClB,IAAA,cAAI,EAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;YACxB,gBAAM,CAAC,KAAK,CAAC,iBAAiB,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;YACzC,gBAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACvC,CAAC,CAAC,CAAA;KACL;AACL,CAAC;AA/CD,sBA+CC"}
|
package/dist/runner/index.d.ts
CHANGED
|
@@ -1,16 +1,26 @@
|
|
|
1
|
+
import GitCMS from '@stackbit/dev-common/dist/cms/git/git';
|
|
2
|
+
import { Contentful as ContentfulCMS } from '@stackbit/dev-common/dist/cms/contentful/contentful';
|
|
3
|
+
interface RunnerOptions {
|
|
4
|
+
rootDir: string;
|
|
5
|
+
runnableDir?: string;
|
|
6
|
+
cmsType?: string;
|
|
7
|
+
contentfulAccessToken?: string;
|
|
8
|
+
contentfulSpaceIds?: [string];
|
|
9
|
+
contentfulPreviewTokens?: [string];
|
|
10
|
+
}
|
|
1
11
|
export default class Runner {
|
|
2
12
|
private editor;
|
|
13
|
+
private cmsType?;
|
|
3
14
|
private cms;
|
|
4
15
|
private stackbitYaml;
|
|
5
16
|
private workers;
|
|
6
17
|
private watcher;
|
|
18
|
+
private readonly options;
|
|
7
19
|
private rootDir;
|
|
8
20
|
private appDir?;
|
|
9
|
-
constructor(
|
|
10
|
-
rootDir: string;
|
|
11
|
-
runnableDir?: string;
|
|
12
|
-
});
|
|
21
|
+
constructor(options: RunnerOptions);
|
|
13
22
|
install(): Promise<void>;
|
|
23
|
+
createCms(): GitCMS | ContentfulCMS;
|
|
14
24
|
handleFileChanges(filePaths: string[]): Promise<void>;
|
|
15
25
|
getDirectPaths(): string[];
|
|
16
26
|
/**
|
|
@@ -33,4 +43,6 @@ export default class Runner {
|
|
|
33
43
|
listAssets(filterParams: any): Promise<any>;
|
|
34
44
|
uploadAsset(url: string, filename: string, user: any): Promise<any>;
|
|
35
45
|
makeAction(action: string, data: any): Promise<any>;
|
|
46
|
+
keepAlive(): void;
|
|
36
47
|
}
|
|
48
|
+
export {};
|
package/dist/runner/index.js
CHANGED
|
@@ -7,7 +7,8 @@ const lodash_1 = __importDefault(require("lodash"));
|
|
|
7
7
|
const path_1 = __importDefault(require("path"));
|
|
8
8
|
const ssg_1 = __importDefault(require("./ssg"));
|
|
9
9
|
const editor_1 = __importDefault(require("@stackbit/dev-common/dist/runner/editor"));
|
|
10
|
-
const git_1 = __importDefault(require("@stackbit/dev-common/dist/cms/git"));
|
|
10
|
+
const git_1 = __importDefault(require("@stackbit/dev-common/dist/cms/git/git"));
|
|
11
|
+
const contentful_1 = require("@stackbit/dev-common/dist/cms/contentful/contentful");
|
|
11
12
|
const worker_1 = __importDefault(require("@stackbit/dev-common/dist/utils/worker"));
|
|
12
13
|
const stackbit_yaml_1 = require("@stackbit/dev-common/dist/services/stackbit-yaml");
|
|
13
14
|
const socket_service_1 = __importDefault(require("@stackbit/dev-common/dist/services/socket-service"));
|
|
@@ -15,9 +16,11 @@ const file_watcher_1 = require("../services/file-watcher");
|
|
|
15
16
|
const logger_1 = __importDefault(require("../services/logger"));
|
|
16
17
|
const consts_1 = __importDefault(require("../consts"));
|
|
17
18
|
class Runner {
|
|
18
|
-
constructor(
|
|
19
|
-
this.
|
|
20
|
-
this.
|
|
19
|
+
constructor(options) {
|
|
20
|
+
this.options = options;
|
|
21
|
+
this.rootDir = options.rootDir;
|
|
22
|
+
this.appDir = options.runnableDir ? path_1.default.join(this.rootDir, options.runnableDir) : this.rootDir;
|
|
23
|
+
this.cmsType = options.cmsType;
|
|
21
24
|
this.workers = {
|
|
22
25
|
gitApp: new worker_1.default()
|
|
23
26
|
};
|
|
@@ -33,21 +36,7 @@ class Runner {
|
|
|
33
36
|
envName: 'local' //TODO
|
|
34
37
|
});
|
|
35
38
|
await this.stackbitYaml.load();
|
|
36
|
-
this.cms =
|
|
37
|
-
rootDir: this.rootDir,
|
|
38
|
-
repoDir: this.rootDir,
|
|
39
|
-
appDir: this.appDir,
|
|
40
|
-
stackbitYaml: this.stackbitYaml,
|
|
41
|
-
workers: this.workers,
|
|
42
|
-
assetIdPrefix: consts_1.default.ASSET_ID_PREFIX,
|
|
43
|
-
staticAssetsFilePath: consts_1.default.STATIC_ASSETS_FILE_PATH,
|
|
44
|
-
staticAssetsPublicPath: consts_1.default.STATIC_ASSETS_PUBLIC_PATH,
|
|
45
|
-
staticThemeAssetsFilePath: consts_1.default.STATIC_THEME_ASSETS_FILE_PATH,
|
|
46
|
-
staticThemeAssetsPublicPath: consts_1.default.STATIC_THEME_ASSETS_PUBLIC_PATH,
|
|
47
|
-
defaultContentTypeExtensions: consts_1.default.DEFAULT_CONTENT_TYPE_EXTENSIONS,
|
|
48
|
-
logger: logger_1.default,
|
|
49
|
-
userLogger: logger_1.default
|
|
50
|
-
});
|
|
39
|
+
this.cms = this.createCms();
|
|
51
40
|
await this.cms.run();
|
|
52
41
|
this.editor = new editor_1.default(null, this.cms, this.stackbitYaml, {
|
|
53
42
|
logger: logger_1.default,
|
|
@@ -56,10 +45,53 @@ class Runner {
|
|
|
56
45
|
this.watcher = (0, file_watcher_1.watchDir)(this.rootDir, (filePaths) => {
|
|
57
46
|
logger_1.default.debug(`File change detected: ${filePaths}`);
|
|
58
47
|
this.handleFileChanges(filePaths).catch((err) => {
|
|
48
|
+
logger_1.default.debug('Handle file change error', { err, filePaths });
|
|
59
49
|
logger_1.default.error('Error handling file changes: ' + filePaths.join(', '));
|
|
60
50
|
});
|
|
61
51
|
});
|
|
62
52
|
}
|
|
53
|
+
createCms() {
|
|
54
|
+
var _a;
|
|
55
|
+
let result;
|
|
56
|
+
if (this.cmsType === 'contentful') {
|
|
57
|
+
result = new contentful_1.Contentful({
|
|
58
|
+
accessToken: (_a = this.options.contentfulAccessToken) !== null && _a !== void 0 ? _a : null,
|
|
59
|
+
spaces: this.options.contentfulSpaceIds.map((spaceId, i) => ({
|
|
60
|
+
spaceId,
|
|
61
|
+
previewToken: this.options.contentfulPreviewTokens[i]
|
|
62
|
+
})),
|
|
63
|
+
stackbitYaml: this.stackbitYaml,
|
|
64
|
+
encodeDelimiter: '',
|
|
65
|
+
rootDir: this.rootDir,
|
|
66
|
+
appDir: this.appDir,
|
|
67
|
+
repoDir: this.rootDir,
|
|
68
|
+
staticThemeAssetsFilePath: consts_1.default.STATIC_THEME_ASSETS_FILE_PATH,
|
|
69
|
+
staticThemeAssetsPublicPath: consts_1.default.STATIC_THEME_ASSETS_PUBLIC_PATH,
|
|
70
|
+
watchForContentUpdates: true,
|
|
71
|
+
onContentUpdate: () => { },
|
|
72
|
+
logger: logger_1.default,
|
|
73
|
+
userLogger: logger_1.default
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
result = new git_1.default({
|
|
78
|
+
rootDir: this.rootDir,
|
|
79
|
+
repoDir: this.rootDir,
|
|
80
|
+
appDir: this.appDir,
|
|
81
|
+
stackbitYaml: this.stackbitYaml,
|
|
82
|
+
workers: this.workers,
|
|
83
|
+
assetIdPrefix: consts_1.default.ASSET_ID_PREFIX,
|
|
84
|
+
staticAssetsFilePath: consts_1.default.STATIC_ASSETS_FILE_PATH,
|
|
85
|
+
staticAssetsPublicPath: consts_1.default.STATIC_ASSETS_PUBLIC_PATH,
|
|
86
|
+
staticThemeAssetsFilePath: consts_1.default.STATIC_THEME_ASSETS_FILE_PATH,
|
|
87
|
+
staticThemeAssetsPublicPath: consts_1.default.STATIC_THEME_ASSETS_PUBLIC_PATH,
|
|
88
|
+
defaultContentTypeExtensions: consts_1.default.DEFAULT_CONTENT_TYPE_EXTENSIONS,
|
|
89
|
+
logger: logger_1.default,
|
|
90
|
+
userLogger: logger_1.default
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
return result;
|
|
94
|
+
}
|
|
63
95
|
async handleFileChanges(filePaths) {
|
|
64
96
|
const pullResult = await this.cms.postPull(filePaths.map((filePath) => path_1.default.join(this.rootDir, filePath))).catch((err) => {
|
|
65
97
|
logger_1.default.debug('Error in postPull', { err });
|
|
@@ -141,6 +173,9 @@ class Runner {
|
|
|
141
173
|
throw new Error('Unsupported Operation');
|
|
142
174
|
}
|
|
143
175
|
}
|
|
176
|
+
keepAlive() {
|
|
177
|
+
lodash_1.default.invoke(this.cms, 'keepAlive');
|
|
178
|
+
}
|
|
144
179
|
}
|
|
145
180
|
exports.default = Runner;
|
|
146
181
|
//# sourceMappingURL=index.js.map
|
package/dist/runner/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/runner/index.ts"],"names":[],"mappings":";;;;;AAAA,oDAAuB;AACvB,gDAAwB;AACxB,gDAAwB;AACxB,qFAA6D;AAC7D,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/runner/index.ts"],"names":[],"mappings":"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"}
|
package/dist/server/index.d.ts
CHANGED
|
@@ -1,8 +1,14 @@
|
|
|
1
|
-
|
|
1
|
+
interface ServerOptions {
|
|
2
2
|
serverPort: number;
|
|
3
3
|
ssgPort: number;
|
|
4
4
|
ssgHost: string;
|
|
5
5
|
rootDir: string;
|
|
6
6
|
runnableDir?: string;
|
|
7
7
|
uuid: string;
|
|
8
|
-
|
|
8
|
+
cmsType?: string;
|
|
9
|
+
contentfulAccessToken?: string;
|
|
10
|
+
contentfulSpaceIds?: [string];
|
|
11
|
+
contentfulPreviewTokens?: [string];
|
|
12
|
+
}
|
|
13
|
+
export declare function start({ serverPort, ssgPort, ssgHost, rootDir, runnableDir, uuid, cmsType, ...options }: ServerOptions): Promise<void>;
|
|
14
|
+
export {};
|
package/dist/server/index.js
CHANGED
|
@@ -13,11 +13,13 @@ const proxy_1 = __importDefault(require("./proxy"));
|
|
|
13
13
|
const runner_1 = __importDefault(require("../runner"));
|
|
14
14
|
const consts_1 = __importDefault(require("../consts"));
|
|
15
15
|
const socket_service_1 = __importDefault(require("@stackbit/dev-common/dist/services/socket-service"));
|
|
16
|
-
async function start({ serverPort, ssgPort, ssgHost, rootDir, runnableDir, uuid }) {
|
|
16
|
+
async function start({ serverPort, ssgPort, ssgHost, rootDir, runnableDir, uuid, cmsType, ...options }) {
|
|
17
17
|
logger_1.default.debug('Runner init...');
|
|
18
18
|
const runner = new runner_1.default({
|
|
19
19
|
rootDir,
|
|
20
|
-
runnableDir
|
|
20
|
+
runnableDir,
|
|
21
|
+
cmsType,
|
|
22
|
+
...options
|
|
21
23
|
});
|
|
22
24
|
await runner.install();
|
|
23
25
|
logger_1.default.debug('Done runner init');
|
|
@@ -25,15 +27,8 @@ async function start({ serverPort, ssgPort, ssgHost, rootDir, runnableDir, uuid
|
|
|
25
27
|
const httpServer = http_1.default.createServer(server);
|
|
26
28
|
socket_service_1.default.use(httpServer, logger_1.default);
|
|
27
29
|
server.use(require('cors')());
|
|
28
|
-
// if (config.setContentSecurityPolicy) {
|
|
29
|
-
// server.use((req, res, next) => {
|
|
30
|
-
// const hosts = getClientAllowedHosts(req).join(' ');
|
|
31
|
-
// res.set('Content-Security-Policy', `frame-ancestors 'self' ${hosts}`);
|
|
32
|
-
// next();
|
|
33
|
-
// });
|
|
34
|
-
// }
|
|
35
|
-
// log requests
|
|
36
30
|
server.use((req, res, next) => {
|
|
31
|
+
// log requests
|
|
37
32
|
logger_1.default.debug(`got request ${req.method} ${req.path}`, { method: req.method, originalUrl: req.originalUrl, url: req.url, path: req.path });
|
|
38
33
|
next();
|
|
39
34
|
});
|
package/dist/server/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":";;;;;;AACA,gDAAwB;AACxB,sDAA8B;AAC9B,gDAAwB;AAExB,gEAAwC;AAExC,sDAA8B;AAC9B,oDAA4B;AAC5B,uDAA+B;AAC/B,uDAA+B;AAC/B,uGAA8E;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":";;;;;;AACA,gDAAwB;AACxB,sDAA8B;AAC9B,gDAAwB;AAExB,gEAAwC;AAExC,sDAA8B;AAC9B,oDAA4B;AAC5B,uDAA+B;AAC/B,uDAA+B;AAC/B,uGAA8E;AAgBvE,KAAK,UAAU,KAAK,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,EAAiB;IACxH,gBAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAE/B,MAAM,MAAM,GAAG,IAAI,gBAAM,CAAC;QACtB,OAAO;QACP,WAAW;QACX,OAAO;QACP,GAAG,OAAO;KACb,CAAC,CAAC;IACH,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;IAEvB,gBAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAEjC,MAAM,MAAM,GAAG,IAAA,iBAAO,GAAE,CAAC;IACzB,MAAM,UAAU,GAAG,cAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAC7C,wBAAa,CAAC,GAAG,CAAC,UAAU,EAAE,gBAAM,CAAC,CAAC;IAEtC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAE9B,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QAC1B,eAAe;QACf,gBAAM,CAAC,KAAK,CAAC,eAAe,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1I,IAAI,EAAE,CAAC;IACX,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,iBAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IACjD,MAAM,CAAC,GAAG,CAAC,gBAAM,CAAC,yBAAyB,EAAE,iBAAO,CAAC,MAAM,CAAC,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,gBAAM,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC;IACjH,MAAM,CAAC,GAAG,CAAC,gBAAM,CAAC,+BAA+B,EAAE,iBAAO,CAAC,MAAM,CAAC,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,gBAAM,CAAC,6BAA6B,CAAC,CAAC,CAAC,CAAC;IAE7H,IAAA,gBAAM,EAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IAC7B,IAAA,eAAK,EAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAExC,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACzC,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE,GAAG,EAAE;YAC/B,gBAAM,CAAC,KAAK,CAAC,yBAAyB,GAAG,UAAU,CAAC,CAAC;YACrD,OAAO,EAAE,CAAC;QACd,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC;AAtCD,sBAsCC"}
|
package/dist/server/routes.js
CHANGED
|
@@ -28,6 +28,10 @@ const authMiddleware = (uuid) => {
|
|
|
28
28
|
};
|
|
29
29
|
};
|
|
30
30
|
function routes(router, runner, uuid) {
|
|
31
|
+
router.use((req, res, next) => {
|
|
32
|
+
runner.keepAlive();
|
|
33
|
+
next();
|
|
34
|
+
});
|
|
31
35
|
router.post('/_objects', [body_parser_1.default.json({ limit: '500kb' })], (req, res, next) => {
|
|
32
36
|
const { objectIds } = req.body;
|
|
33
37
|
return runner
|
|
@@ -114,10 +118,12 @@ function routes(router, runner, uuid) {
|
|
|
114
118
|
if (err !== response_errors_1.PageNotFoundError) {
|
|
115
119
|
logger_1.default.error('Error querying for page url');
|
|
116
120
|
}
|
|
117
|
-
const log = err === response_errors_1.PageNotFoundError ? logger_1.default.
|
|
121
|
+
const log = err === response_errors_1.PageNotFoundError ? logger_1.default.debug : logger_1.default.warn;
|
|
118
122
|
log('error getting page path from runner', { params: req.query, error: err });
|
|
119
123
|
res.json({ error: err.toString() });
|
|
120
|
-
|
|
124
|
+
if (err !== response_errors_1.PageNotFoundError) {
|
|
125
|
+
next(err);
|
|
126
|
+
}
|
|
121
127
|
});
|
|
122
128
|
});
|
|
123
129
|
router.get('/_object', (req, res, next) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/server/routes.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/server/routes.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stackbit/dev",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.17-alpha.1",
|
|
4
4
|
"description": "stackbit-dev",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -22,8 +22,8 @@
|
|
|
22
22
|
"author": "Stackbit Inc.",
|
|
23
23
|
"license": "MIT",
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@stackbit/cms-core": "^0.0.
|
|
26
|
-
"@stackbit/dev-common": "^0.0.
|
|
25
|
+
"@stackbit/cms-core": "^0.0.9-alpha.0",
|
|
26
|
+
"@stackbit/dev-common": "^0.0.15-alpha.0",
|
|
27
27
|
"@stackbit/sdk": "^0.2.22",
|
|
28
28
|
"axios": "^0.25.0",
|
|
29
29
|
"chalk": "^4.1.0",
|
|
@@ -35,6 +35,7 @@
|
|
|
35
35
|
"fs-extra": "^10.0.0",
|
|
36
36
|
"http-proxy-middleware": "^0.20.0",
|
|
37
37
|
"lodash": "^4.17.21",
|
|
38
|
+
"open": "^8.4.0",
|
|
38
39
|
"rimraf": "^3.0.2",
|
|
39
40
|
"uuid": "^8.3.2",
|
|
40
41
|
"winston": "^3.4.0",
|
|
@@ -54,5 +55,5 @@
|
|
|
54
55
|
"ts-jest": "^27.1.3",
|
|
55
56
|
"typescript": "^4.5.4"
|
|
56
57
|
},
|
|
57
|
-
"gitHead": "
|
|
58
|
+
"gitHead": "2e4c3f2052a92963816d7b08012868a420160ae4"
|
|
58
59
|
}
|
package/src/command.ts
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
|
+
import _ from 'lodash';
|
|
1
2
|
import yargs from 'yargs';
|
|
2
3
|
|
|
4
|
+
function possibleArray(val: any) {
|
|
5
|
+
let result;
|
|
6
|
+
if (!_.isEmpty(val)) {
|
|
7
|
+
if (_.isArray(val)) {
|
|
8
|
+
result = val;
|
|
9
|
+
} else {
|
|
10
|
+
result = [val];
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
return result;
|
|
14
|
+
}
|
|
15
|
+
|
|
3
16
|
export function builder(yargs: yargs.Argv) {
|
|
4
17
|
yargs
|
|
5
18
|
.option('port', {
|
|
@@ -17,6 +30,24 @@ export function builder(yargs: yargs.Argv) {
|
|
|
17
30
|
description: 'root dir',
|
|
18
31
|
default: process.cwd()
|
|
19
32
|
})
|
|
33
|
+
.options('cms', {
|
|
34
|
+
alias: 'c',
|
|
35
|
+
description: 'CMS type',
|
|
36
|
+
default: '',
|
|
37
|
+
choices: ['', 'git', 'contentful']
|
|
38
|
+
})
|
|
39
|
+
.options('contentful-access-token', {
|
|
40
|
+
description: 'Contentful access token',
|
|
41
|
+
default: ''
|
|
42
|
+
})
|
|
43
|
+
.options('contentful-space-id', {
|
|
44
|
+
description: 'Contentful space ID',
|
|
45
|
+
default: ''
|
|
46
|
+
})
|
|
47
|
+
.options('contentful-preview-key', {
|
|
48
|
+
description: 'Contentful preview key',
|
|
49
|
+
default: ''
|
|
50
|
+
})
|
|
20
51
|
.options('runnable-dir', {
|
|
21
52
|
description: 'runnable dir',
|
|
22
53
|
default: ''
|
|
@@ -25,17 +56,44 @@ export function builder(yargs: yargs.Argv) {
|
|
|
25
56
|
description: 'log level',
|
|
26
57
|
default: 'info'
|
|
27
58
|
})
|
|
28
|
-
.options('
|
|
59
|
+
.options('open', {
|
|
60
|
+
description: 'Auto open',
|
|
61
|
+
type: 'boolean'
|
|
62
|
+
})
|
|
63
|
+
.options('help', {})
|
|
64
|
+
.check(argv => {
|
|
65
|
+
if (argv.cms === 'contentful') {
|
|
66
|
+
if (!argv.contentfulAccessToken) {
|
|
67
|
+
throw new Error('Missing Contentful access token: --contentful-access-token <access-token>');
|
|
68
|
+
}
|
|
69
|
+
if (!argv.contentfulPreviewToken) {
|
|
70
|
+
throw new Error('Missing Contentful preview token: --contentful-preview-token <preview-token>');
|
|
71
|
+
}
|
|
72
|
+
if (!argv.contentfulSpaceId) {
|
|
73
|
+
throw new Error('Missing Contentful space ID: --contentful-space-id <space-id>');
|
|
74
|
+
}
|
|
75
|
+
if (possibleArray(argv.contentfulSpaceId)?.length !== possibleArray(argv.contentfulPreviewToken)?.length) {
|
|
76
|
+
throw new Error('Mismatch between number of space ID\'s and preview tokens provided.');
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
return true;
|
|
80
|
+
})
|
|
29
81
|
}
|
|
30
82
|
|
|
31
83
|
export async function handler(argv: any) {
|
|
32
84
|
if (argv['log-level']) {
|
|
33
85
|
process.env.LOG_LEVEL = argv['log-level'];
|
|
34
86
|
}
|
|
87
|
+
|
|
35
88
|
return require('./dev').start({
|
|
36
89
|
ssgPort: argv.port,
|
|
37
90
|
ssgHost: argv.host,
|
|
38
91
|
rootDir: argv.dir,
|
|
39
|
-
|
|
92
|
+
autoOpen: argv.open,
|
|
93
|
+
cmsType: argv.cms,
|
|
94
|
+
runnableDir: argv['runnable-dir'],
|
|
95
|
+
contentfulAccessToken: argv.contentfulAccessToken,
|
|
96
|
+
contentfulSpaceIds: possibleArray(argv.contentfulSpaceId),
|
|
97
|
+
contentfulPreviewTokens: possibleArray(argv.contentfulPreviewToken)
|
|
40
98
|
});
|
|
41
99
|
}
|
package/src/dev.ts
CHANGED
|
@@ -7,47 +7,65 @@ import logger from './services/logger';
|
|
|
7
7
|
import apiService from './services/api';
|
|
8
8
|
import config from './config';
|
|
9
9
|
import chalk from 'chalk';
|
|
10
|
+
import open from 'open';
|
|
10
11
|
|
|
11
|
-
|
|
12
|
-
ssgPort = 3000,
|
|
13
|
-
ssgHost = 'localhost',
|
|
14
|
-
rootDir = process.cwd(),
|
|
15
|
-
runnableDir
|
|
16
|
-
}: {
|
|
12
|
+
interface DevOptions {
|
|
17
13
|
ssgPort: number;
|
|
18
14
|
ssgHost: string;
|
|
19
15
|
rootDir: string;
|
|
20
16
|
runnableDir?: string;
|
|
21
|
-
|
|
22
|
-
|
|
17
|
+
autoOpen?: boolean;
|
|
18
|
+
cmsType?: string;
|
|
19
|
+
contentfulAccessToken?: string;
|
|
20
|
+
contentfulSpaceIds?: [string];
|
|
21
|
+
contentfulPreviewTokens?: [string];
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export async function start(options: DevOptions) {
|
|
25
|
+
logger.info('Site directory: ' + options.rootDir);
|
|
23
26
|
|
|
24
27
|
let serverPort = await detectPort(8090);
|
|
25
28
|
const userId = getUserId();
|
|
26
29
|
logger.debug('id: ' + userId);
|
|
27
30
|
|
|
28
|
-
try {
|
|
29
|
-
await startServer({ serverPort, ssgHost, ssgPort, rootDir, runnableDir, uuid: userId });
|
|
30
|
-
} catch (err) {
|
|
31
|
-
logger.error('Error starting Stackbit dev server');
|
|
32
|
-
logger.debug('startServer failed', { err });
|
|
33
|
-
return false;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
31
|
const localDetails = {
|
|
37
32
|
i: userId,
|
|
38
33
|
p: serverPort,
|
|
39
|
-
v: require('../package.json').version
|
|
34
|
+
v: require('../package.json').version,
|
|
35
|
+
cms: options.cmsType || 'git'
|
|
40
36
|
};
|
|
41
37
|
|
|
42
38
|
logger.debug('Local details', { localDetails });
|
|
43
39
|
const studioUrl = `${config.appUrl}/local/${Buffer.from(JSON.stringify(localDetails)).toString('base64')}`;
|
|
44
40
|
|
|
45
41
|
try {
|
|
46
|
-
await apiService.updateLocalDev(userId, localDetails);
|
|
42
|
+
const result = await apiService.updateLocalDev(userId, localDetails);
|
|
43
|
+
logger.debug('update local details result', { result: result?.status });
|
|
44
|
+
} catch (err: any) {
|
|
45
|
+
// failure here is expected if user hasn't pressed the link yet.
|
|
46
|
+
// in that case we defer the update to when the server starts getting accessed.
|
|
47
|
+
logger.debug('updateLocalDev failed', { err: err.message || err });
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
try {
|
|
51
|
+
await startServer({
|
|
52
|
+
serverPort,
|
|
53
|
+
uuid: userId,
|
|
54
|
+
...options
|
|
55
|
+
});
|
|
47
56
|
} catch (err) {
|
|
48
|
-
logger.
|
|
57
|
+
logger.error('Error starting Stackbit dev server');
|
|
58
|
+
logger.debug('startServer failed', { err });
|
|
59
|
+
return false;
|
|
49
60
|
}
|
|
50
61
|
|
|
51
|
-
logger.info(`Server started. Forwarding requests to: ${ssgHost}:${ssgPort}`);
|
|
52
|
-
logger.info(
|
|
62
|
+
logger.info(`Server started. Forwarding requests to: ${options.ssgHost}:${options.ssgPort}`);
|
|
63
|
+
logger.info(`⚡ Open${options.autoOpen ? 'ing' : ''} ${chalk.bold(studioUrl)} in your browser`);
|
|
64
|
+
|
|
65
|
+
if (options.autoOpen) {
|
|
66
|
+
open(studioUrl).catch(err => {
|
|
67
|
+
logger.debug('Auto open error', { err });
|
|
68
|
+
logger.error('Error auto opening');
|
|
69
|
+
})
|
|
70
|
+
}
|
|
53
71
|
}
|
package/src/runner/index.ts
CHANGED
|
@@ -2,7 +2,8 @@ import _ from 'lodash';
|
|
|
2
2
|
import path from 'path';
|
|
3
3
|
import ssg from './ssg';
|
|
4
4
|
import Editor from '@stackbit/dev-common/dist/runner/editor';
|
|
5
|
-
import GitCMS from '@stackbit/dev-common/dist/cms/git';
|
|
5
|
+
import GitCMS from '@stackbit/dev-common/dist/cms/git/git';
|
|
6
|
+
import { Contentful as ContentfulCMS } from '@stackbit/dev-common/dist/cms/contentful/contentful';
|
|
6
7
|
import Worker from '@stackbit/dev-common/dist/utils/worker';
|
|
7
8
|
import { StackbitYaml } from '@stackbit/dev-common/dist/services/stackbit-yaml';
|
|
8
9
|
import socketService from '@stackbit/dev-common/dist/services/socket-service';
|
|
@@ -11,19 +12,32 @@ import { watchDir } from '../services/file-watcher';
|
|
|
11
12
|
import logger from '../services/logger';
|
|
12
13
|
import consts from '../consts';
|
|
13
14
|
|
|
15
|
+
interface RunnerOptions {
|
|
16
|
+
rootDir: string;
|
|
17
|
+
runnableDir?: string;
|
|
18
|
+
cmsType?: string;
|
|
19
|
+
contentfulAccessToken?: string;
|
|
20
|
+
contentfulSpaceIds?: [string];
|
|
21
|
+
contentfulPreviewTokens?: [string];
|
|
22
|
+
}
|
|
14
23
|
export default class Runner {
|
|
15
24
|
private editor: any;
|
|
25
|
+
private cmsType?: string;
|
|
16
26
|
private cms: any;
|
|
17
27
|
private stackbitYaml: any;
|
|
18
28
|
private workers: any;
|
|
19
29
|
private watcher: any;
|
|
20
30
|
|
|
31
|
+
private readonly options: RunnerOptions;
|
|
21
32
|
private rootDir: string;
|
|
22
33
|
private appDir?: string;
|
|
23
34
|
|
|
24
|
-
constructor(
|
|
25
|
-
this.
|
|
26
|
-
this.
|
|
35
|
+
constructor(options: RunnerOptions) {
|
|
36
|
+
this.options = options;
|
|
37
|
+
this.rootDir = options.rootDir;
|
|
38
|
+
this.appDir = options.runnableDir ? path.join(this.rootDir, options.runnableDir) : this.rootDir;
|
|
39
|
+
this.cmsType = options.cmsType;
|
|
40
|
+
|
|
27
41
|
this.workers = {
|
|
28
42
|
gitApp: new Worker()
|
|
29
43
|
};
|
|
@@ -40,21 +54,7 @@ export default class Runner {
|
|
|
40
54
|
envName: 'local' //TODO
|
|
41
55
|
});
|
|
42
56
|
await this.stackbitYaml.load();
|
|
43
|
-
this.cms =
|
|
44
|
-
rootDir: this.rootDir,
|
|
45
|
-
repoDir: this.rootDir,
|
|
46
|
-
appDir: this.appDir,
|
|
47
|
-
stackbitYaml: this.stackbitYaml,
|
|
48
|
-
workers: this.workers,
|
|
49
|
-
assetIdPrefix: consts.ASSET_ID_PREFIX,
|
|
50
|
-
staticAssetsFilePath: consts.STATIC_ASSETS_FILE_PATH,
|
|
51
|
-
staticAssetsPublicPath: consts.STATIC_ASSETS_PUBLIC_PATH,
|
|
52
|
-
staticThemeAssetsFilePath: consts.STATIC_THEME_ASSETS_FILE_PATH,
|
|
53
|
-
staticThemeAssetsPublicPath: consts.STATIC_THEME_ASSETS_PUBLIC_PATH,
|
|
54
|
-
defaultContentTypeExtensions: consts.DEFAULT_CONTENT_TYPE_EXTENSIONS,
|
|
55
|
-
logger,
|
|
56
|
-
userLogger: logger
|
|
57
|
-
});
|
|
57
|
+
this.cms = this.createCms();
|
|
58
58
|
await this.cms.run();
|
|
59
59
|
this.editor = new Editor(null, this.cms, this.stackbitYaml, {
|
|
60
60
|
logger,
|
|
@@ -63,11 +63,53 @@ export default class Runner {
|
|
|
63
63
|
this.watcher = watchDir(this.rootDir, (filePaths) => {
|
|
64
64
|
logger.debug(`File change detected: ${filePaths}`);
|
|
65
65
|
this.handleFileChanges(filePaths).catch((err) => {
|
|
66
|
+
logger.debug('Handle file change error', { err, filePaths })
|
|
66
67
|
logger.error('Error handling file changes: ' + filePaths.join(', '));
|
|
67
68
|
});
|
|
68
69
|
});
|
|
69
70
|
}
|
|
70
71
|
|
|
72
|
+
createCms() {
|
|
73
|
+
let result;
|
|
74
|
+
if (this.cmsType === 'contentful') {
|
|
75
|
+
result = new ContentfulCMS({
|
|
76
|
+
accessToken: this.options.contentfulAccessToken ?? null,
|
|
77
|
+
spaces: this.options.contentfulSpaceIds!.map((spaceId, i) => ({
|
|
78
|
+
spaceId,
|
|
79
|
+
previewToken: this.options.contentfulPreviewTokens![i]
|
|
80
|
+
})),
|
|
81
|
+
stackbitYaml: this.stackbitYaml,
|
|
82
|
+
encodeDelimiter: '',
|
|
83
|
+
rootDir: this.rootDir,
|
|
84
|
+
appDir: this.appDir!,
|
|
85
|
+
repoDir: this.rootDir,
|
|
86
|
+
staticThemeAssetsFilePath: consts.STATIC_THEME_ASSETS_FILE_PATH,
|
|
87
|
+
staticThemeAssetsPublicPath: consts.STATIC_THEME_ASSETS_PUBLIC_PATH,
|
|
88
|
+
watchForContentUpdates: true,
|
|
89
|
+
onContentUpdate: () => {},
|
|
90
|
+
logger: logger,
|
|
91
|
+
userLogger: logger
|
|
92
|
+
});
|
|
93
|
+
} else {
|
|
94
|
+
result = new GitCMS({
|
|
95
|
+
rootDir: this.rootDir,
|
|
96
|
+
repoDir: this.rootDir,
|
|
97
|
+
appDir: this.appDir,
|
|
98
|
+
stackbitYaml: this.stackbitYaml,
|
|
99
|
+
workers: this.workers,
|
|
100
|
+
assetIdPrefix: consts.ASSET_ID_PREFIX,
|
|
101
|
+
staticAssetsFilePath: consts.STATIC_ASSETS_FILE_PATH,
|
|
102
|
+
staticAssetsPublicPath: consts.STATIC_ASSETS_PUBLIC_PATH,
|
|
103
|
+
staticThemeAssetsFilePath: consts.STATIC_THEME_ASSETS_FILE_PATH,
|
|
104
|
+
staticThemeAssetsPublicPath: consts.STATIC_THEME_ASSETS_PUBLIC_PATH,
|
|
105
|
+
defaultContentTypeExtensions: consts.DEFAULT_CONTENT_TYPE_EXTENSIONS,
|
|
106
|
+
logger,
|
|
107
|
+
userLogger: logger
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
return result;
|
|
111
|
+
}
|
|
112
|
+
|
|
71
113
|
async handleFileChanges(filePaths: string[]) {
|
|
72
114
|
const pullResult = await this.cms.postPull(filePaths.map((filePath) => path.join(this.rootDir, filePath))).catch((err: any) => {
|
|
73
115
|
logger.debug('Error in postPull', { err });
|
|
@@ -162,4 +204,8 @@ export default class Runner {
|
|
|
162
204
|
throw new Error('Unsupported Operation');
|
|
163
205
|
}
|
|
164
206
|
}
|
|
207
|
+
|
|
208
|
+
keepAlive() {
|
|
209
|
+
_.invoke(this.cms, 'keepAlive');
|
|
210
|
+
}
|
|
165
211
|
}
|
package/src/server/index.ts
CHANGED
|
@@ -10,27 +10,29 @@ import proxy from './proxy';
|
|
|
10
10
|
import Runner from '../runner';
|
|
11
11
|
import consts from '../consts';
|
|
12
12
|
import socketService from '@stackbit/dev-common/dist/services/socket-service';
|
|
13
|
+
import { options } from 'yargs';
|
|
13
14
|
|
|
14
|
-
|
|
15
|
-
serverPort,
|
|
16
|
-
ssgPort,
|
|
17
|
-
ssgHost,
|
|
18
|
-
rootDir,
|
|
19
|
-
runnableDir,
|
|
20
|
-
uuid
|
|
21
|
-
}: {
|
|
15
|
+
interface ServerOptions {
|
|
22
16
|
serverPort: number;
|
|
23
17
|
ssgPort: number;
|
|
24
18
|
ssgHost: string;
|
|
25
19
|
rootDir: string;
|
|
26
20
|
runnableDir?: string;
|
|
27
21
|
uuid: string;
|
|
28
|
-
|
|
22
|
+
cmsType?: string;
|
|
23
|
+
contentfulAccessToken?: string;
|
|
24
|
+
contentfulSpaceIds?: [string];
|
|
25
|
+
contentfulPreviewTokens?: [string];
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export async function start({ serverPort, ssgPort, ssgHost, rootDir, runnableDir, uuid, cmsType, ...options }: ServerOptions) {
|
|
29
29
|
logger.debug('Runner init...');
|
|
30
30
|
|
|
31
31
|
const runner = new Runner({
|
|
32
32
|
rootDir,
|
|
33
|
-
runnableDir
|
|
33
|
+
runnableDir,
|
|
34
|
+
cmsType,
|
|
35
|
+
...options
|
|
34
36
|
});
|
|
35
37
|
await runner.install();
|
|
36
38
|
|
|
@@ -41,16 +43,9 @@ export async function start({
|
|
|
41
43
|
socketService.use(httpServer, logger);
|
|
42
44
|
|
|
43
45
|
server.use(require('cors')());
|
|
44
|
-
// if (config.setContentSecurityPolicy) {
|
|
45
|
-
// server.use((req, res, next) => {
|
|
46
|
-
// const hosts = getClientAllowedHosts(req).join(' ');
|
|
47
|
-
// res.set('Content-Security-Policy', `frame-ancestors 'self' ${hosts}`);
|
|
48
|
-
// next();
|
|
49
|
-
// });
|
|
50
|
-
// }
|
|
51
46
|
|
|
52
|
-
// log requests
|
|
53
47
|
server.use((req, res, next) => {
|
|
48
|
+
// log requests
|
|
54
49
|
logger.debug(`got request ${req.method} ${req.path}`, { method: req.method, originalUrl: req.originalUrl, url: req.url, path: req.path });
|
|
55
50
|
next();
|
|
56
51
|
});
|
package/src/server/routes.ts
CHANGED
|
@@ -25,6 +25,10 @@ const authMiddleware = (uuid: string) => {
|
|
|
25
25
|
};
|
|
26
26
|
|
|
27
27
|
export default function routes(router: Router, runner: Runner, uuid: string) {
|
|
28
|
+
router.use((req, res, next) => {
|
|
29
|
+
runner.keepAlive();
|
|
30
|
+
next();
|
|
31
|
+
});
|
|
28
32
|
router.post('/_objects', [bodyParser.json({ limit: '500kb' })], (req: Request, res: Response, next: NextFunction) => {
|
|
29
33
|
const { objectIds } = req.body;
|
|
30
34
|
return runner
|
|
@@ -111,10 +115,12 @@ export default function routes(router: Router, runner: Runner, uuid: string) {
|
|
|
111
115
|
if (err !== PageNotFoundError) {
|
|
112
116
|
logger.error('Error querying for page url');
|
|
113
117
|
}
|
|
114
|
-
const log = err === PageNotFoundError ? logger.
|
|
118
|
+
const log = err === PageNotFoundError ? logger.debug : logger.warn;
|
|
115
119
|
log('error getting page path from runner', { params: req.query, error: err });
|
|
116
120
|
res.json({ error: err.toString() });
|
|
117
|
-
|
|
121
|
+
if (err !== PageNotFoundError) {
|
|
122
|
+
next(err);
|
|
123
|
+
}
|
|
118
124
|
});
|
|
119
125
|
});
|
|
120
126
|
router.get('/_object', (req: Request, res: Response, next: NextFunction) => {
|