@stackbit/sdk
Version:
56 lines • 2.31 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.analyzeSite = void 0;
const lodash_1 = __importDefault(require("lodash"));
const file_browser_1 = require("./file-browser");
const ssg_matcher_1 = require("./ssg-matcher");
const cms_matcher_1 = require("./cms-matcher");
const schema_generator_1 = require("./schema-generator");
async function analyzeSite(options) {
const fileBrowser = (0, file_browser_1.getFileBrowserFromOptions)(options);
const ssgMatchResult = await (0, ssg_matcher_1.matchSSG)({ fileBrowser });
const cmsMatchResult = await (0, cms_matcher_1.matchCMS)({ fileBrowser });
let schemaGeneratorResult = null;
if (!cmsMatchResult) {
schemaGeneratorResult = await (0, schema_generator_1.generateSchema)({ ssgMatchResult, fileBrowser });
}
const dataDir = ssgMatchResult?.dataDir !== undefined ? ssgMatchResult.dataDir : schemaGeneratorResult?.dataDir;
const pagesDir = ssgMatchResult?.pagesDir !== undefined ? ssgMatchResult.pagesDir : schemaGeneratorResult?.pagesDir;
const assets = generateAssets(ssgMatchResult);
let config = {
stackbitVersion: '~0.3.0',
ssgName: ssgMatchResult?.ssgName,
cmsName: cmsMatchResult?.cmsName,
nodeVersion: ssgMatchResult?.nodeVersion,
publishDir: ssgMatchResult?.publishDir,
dataDir: dataDir,
pagesDir: pagesDir,
assets: assets,
models: schemaGeneratorResult?.models || [],
cacheDir: '/temp/.stackbit/cache',
dirPath: '/temp',
filePath: '/temp/stackbit.yaml'
};
config = lodash_1.default.omitBy(config, lodash_1.default.isUndefined);
return {
ssgMatchResult,
cmsMatchResult,
config
};
}
exports.analyzeSite = analyzeSite;
function generateAssets(ssgMatchResult) {
if (ssgMatchResult?.assetsReferenceType === 'static' && ssgMatchResult?.staticDir) {
return {
referenceType: 'static',
staticDir: ssgMatchResult?.staticDir,
uploadDir: 'assets',
publicPath: '/'
};
}
return undefined;
}
//# sourceMappingURL=site-analyzer.js.map