UNPKG

stackpress

Version:

Incept is a content management framework.

93 lines (92 loc) 5.22 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = generate; const node_path_1 = __importDefault(require("node:path")); function generate(directory, schema, server) { return __awaiter(this, void 0, void 0, function* () { const fs = server.loader.fs; const pwd = directory.getPath(); const name = server.config.path('client.package', 'stackpress-client'); const exports = {}; const types = {}; Object.values(schema.model || {}).forEach(model => { const name = model.name; const actions = `${name}/actions`; const admin = `${name}/admin`; const components = `${name}/components`; const events = `${name}/events`; const tests = `${name}/tests`; exports[`./${actions}`] = `./${actions}/index.js`; exports[`./${actions}/*`] = `./${actions}/*.js`; exports[`./${admin}/pages/*`] = `./${admin}/pages/*.js`; exports[`./${admin}/views/*`] = `./${admin}/views/*.js`; exports[`./${admin}/routes`] = `./${admin}/routes.js`; exports[`./${components}/fields/*`] = `./${components}/fields/*.js`; exports[`./${components}/filters/*`] = `./${components}/filters/*.js`; exports[`./${components}/lists/*`] = `./${components}/lists/*.js`; exports[`./${components}/spans/*`] = `./${components}/spans/*.js`; exports[`./${components}/views/*`] = `./${components}/views/*.js`; exports[`./${events}`] = `./${events}/index.js`; exports[`./${events}/*`] = `./${events}/*.js`; exports[`./${tests}`] = `./${tests}/index.js`; exports[`./${tests}/*`] = `./${tests}/*.js`; exports[`./${name}`] = `./${name}/index.js`; exports[`./${name}/*`] = `./${name}/*.js`; types[actions] = [`./${actions}/index.d.ts`]; types[`${actions}/*`] = [`./${actions}/*.d.ts`]; types[`${admin}/pages/*`] = [`./${admin}/pages/*.d.ts`]; types[`${admin}/views/*`] = [`./${admin}/views/*.d.ts`]; types[`${admin}/routes`] = [`./${admin}/routes.d.ts`]; types[`${components}/fields/*`] = [`./${components}/fields/*.d.ts`]; types[`${components}/filters/*`] = [`./${components}/filters/*.d.ts`]; types[`${components}/lists/*`] = [`./${components}/lists/*.d.ts`]; types[`${components}/spans/*`] = [`./${components}/spans/*.d.ts`]; types[`${components}/views/*`] = [`./${components}/views/*.d.ts`]; types[events] = [`./${events}/index.d.ts`]; types[`${events}/*`] = [`./${events}/*.d.ts`]; types[tests] = [`./${tests}/index.d.ts`]; types[`${tests}/*`] = [`./${tests}/*.d.ts`]; types[name] = [`./${name}/index.d.ts`]; types[`${name}/*`] = [`./${name}/*.d.ts`]; }); Object.values(schema.type || {}).forEach(fieldset => { const name = fieldset.name; const components = `${name}/components`; exports[`./${components}/fields/*`] = `./${components}/fields/*.js`; exports[`./${components}/lists/*`] = `./${components}/lists/*.js`; exports[`./${components}/views/*`] = `./${components}/views/*.js`; exports[`./${name}`] = `./${name}/index.js`; exports[`./${name}/*`] = `./${name}/*.js`; types[`${components}/fields/*`] = [`./${components}/fields/*.d.ts`]; types[`${components}/lists/*`] = [`./${components}/lists/*.d.ts`]; types[`${components}/views/*`] = [`./${components}/views/*.d.ts`]; types[name] = [`./${name}/index.d.ts`]; types[`${name}/*`] = [`./${name}/*.d.ts`]; }); if (!(yield fs.exists(pwd))) { yield fs.mkdir(pwd, { recursive: true }); } yield fs.writeFile(node_path_1.default.join(pwd, 'package.json'), JSON.stringify({ name, type: 'module', module: 'index.js', exports: Object.assign({ '.': './index.js', './*': './*.js', './index.js': './index.js' }, exports), "typesVersions": { "*": Object.assign({ '.': ['./index.d.ts'], '*': ['./*.d.ts'], 'index.js': ['./index.d.ts'] }, types) } }, null, 2)); }); } ;