tsdk
Version:
Type-safe API development and code share tool for TypeScript projects.
81 lines (80 loc) • 4.32 kB
JavaScript
;
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.getDeps = exports.parseDeps = exports.parsePkg = exports.pkg = exports.tsconfig = exports.tsconfigExists = exports.ensureDir = exports.packageFolder = exports.config = exports.isConfigExist = exports.idOldConfigExist = exports.oldConfigFilePath = exports.isTsdkConfigExist = exports.tsdkConfigFilePath = exports.getDefaultContent = exports.comment = void 0;
const fs_extra_1 = __importDefault(require("fs-extra"));
const path_1 = __importDefault(require("path"));
const symbols_1 = __importDefault(require("./symbols"));
exports.comment = `
/**
* This is auto generated by \`tsdk\`.
* Don't edit this file.
*/
`;
let id = 0;
const getDefaultContent = () => `/** This line auto generated by \`tsdk\` and this will be removed if have content. */\nexport const test_${++id} = ${++id};`;
exports.getDefaultContent = getDefaultContent;
exports.tsdkConfigFilePath = path_1.default.join(process.cwd(), 'tsdk.config.js');
exports.isTsdkConfigExist = fs_extra_1.default.existsSync(exports.tsdkConfigFilePath);
/** Deprecated: Use `tsdk.config.js` instead `.tsdkrc.json` */
exports.oldConfigFilePath = path_1.default.join(process.cwd(), '.tsdkrc.json');
exports.idOldConfigExist = fs_extra_1.default.existsSync(exports.oldConfigFilePath);
exports.isConfigExist = exports.isTsdkConfigExist || exports.idOldConfigExist;
if (exports.isTsdkConfigExist) {
console.log(symbols_1.default.info, `load ${exports.tsdkConfigFilePath}`);
}
exports.config = Object.assign(Object.assign({}, require(path_1.default.join(__dirname, '..', 'fe-sdk-template', 'config', 'tsdk.config.js'))), (exports.idOldConfigExist
? JSON.parse(fs_extra_1.default.readFileSync(exports.oldConfigFilePath, 'utf-8'))
: exports.isTsdkConfigExist
? require(exports.tsdkConfigFilePath)
: {}));
// example: ./src => src
exports.config.baseDir = path_1.default.normalize(exports.config.baseDir);
function getPackageFolder(name) {
if (name[0] === '@') {
return name.split('/')[1];
}
return name;
}
exports.packageFolder = getPackageFolder(exports.config.packageName);
exports.ensureDir = path_1.default.join(`${exports.config.packageDir}`, `${exports.packageFolder}`);
const tsconfigPath = path_1.default.join(process.cwd(), 'tsconfig.json');
exports.tsconfigExists = fs_extra_1.default.pathExistsSync(tsconfigPath);
exports.tsconfig = exports.tsconfigExists
? // eslint-disable-next-line no-eval
eval(`(() => (${fs_extra_1.default.readFileSync(tsconfigPath, 'utf-8')}))();`).compilerOptions
: {};
let deps = {};
exports.pkg = {};
function parsePkg() {
return __awaiter(this, void 0, void 0, function* () {
const content = yield fs_extra_1.default.readFile(path_1.default.join(__dirname, '..', 'package.json'), 'utf-8');
Object.assign(exports.pkg, JSON.parse(content));
return exports.pkg;
});
}
exports.parsePkg = parsePkg;
function parseDeps() {
return __awaiter(this, void 0, void 0, function* () {
const content = yield fs_extra_1.default.readFile(path_1.default.join(exports.ensureDir, 'package.json'), 'utf-8');
const pkgJSON = JSON.parse(content);
Object.assign(exports.pkg, pkgJSON);
deps = Object.assign(Object.assign(Object.assign({}, pkgJSON.dependencies), pkgJSON.devDependencies), pkgJSON.peerDependencies);
});
}
exports.parseDeps = parseDeps;
function getDeps() {
return deps;
}
exports.getDeps = getDeps;