vovk-cli 0.0.1-draft.35 → 0.0.1-draft.351
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/LICENSE +1 -1
- package/README.md +29 -1
- package/client-templates/cjs/index.cjs.ejs +20 -0
- package/client-templates/cjs/index.d.cts.ejs +22 -0
- package/client-templates/mixins/mixins.d.ts.ejs +64 -0
- package/client-templates/mixins/mixins.json.ejs +1 -0
- package/client-templates/mjs/index.d.mts.ejs +22 -0
- package/client-templates/mjs/index.mjs.ejs +18 -0
- package/client-templates/openapiCjs/openapi.cjs.ejs +4 -0
- package/client-templates/openapiCjs/openapi.d.cts.ejs +4 -0
- package/client-templates/openapiJson/openapi.json.ejs +1 -0
- package/client-templates/openapiTs/openapi.ts.ejs +4 -0
- package/client-templates/packageJson/package.json.ejs +1 -0
- package/client-templates/readme/README.md.ejs +39 -0
- package/client-templates/schemaCjs/schema.cjs.ejs +23 -0
- package/client-templates/schemaCjs/schema.d.cts.ejs +10 -0
- package/client-templates/schemaJson/schema.json.ejs +1 -0
- package/client-templates/schemaTs/schema.ts.ejs +31 -0
- package/client-templates/ts/index.ts.ejs +27 -0
- package/dist/bundle/index.d.mts +8 -0
- package/dist/bundle/index.mjs +102 -0
- package/dist/dev/diffSegmentSchema.d.mts +36 -0
- package/dist/dev/{diffSchema.mjs → diffSegmentSchema.mjs} +3 -11
- package/dist/dev/ensureSchemaFiles.d.mts +4 -1
- package/dist/dev/ensureSchemaFiles.mjs +15 -31
- package/dist/dev/index.d.mts +5 -1
- package/dist/dev/index.mjs +192 -80
- package/dist/dev/logDiffResult.d.mts +1 -1
- package/dist/dev/logDiffResult.mjs +6 -43
- package/dist/dev/writeMetaJson.d.mts +2 -0
- package/dist/dev/writeMetaJson.mjs +20 -0
- package/dist/dev/writeOneSegmentSchemaFile.d.mts +12 -0
- package/dist/dev/{writeOneSchemaFile.mjs → writeOneSegmentSchemaFile.mjs} +10 -6
- package/dist/generate/ensureClient.d.mts +3 -0
- package/dist/generate/ensureClient.mjs +28 -0
- package/dist/generate/generate.d.mts +13 -0
- package/dist/generate/generate.mjs +296 -0
- package/dist/generate/getClientTemplateFiles.d.mts +20 -0
- package/dist/generate/getClientTemplateFiles.mjs +85 -0
- package/dist/generate/getProjectFullSchema.d.mts +8 -0
- package/dist/generate/getProjectFullSchema.mjs +64 -0
- package/dist/generate/getTemplateClientImports.d.mts +19 -0
- package/dist/generate/getTemplateClientImports.mjs +49 -0
- package/dist/generate/index.d.mts +33 -0
- package/dist/generate/index.mjs +190 -0
- package/dist/generate/writeOneClientFile.d.mts +41 -0
- package/dist/generate/writeOneClientFile.mjs +136 -0
- package/dist/getProjectInfo/getConfig/getConfigAbsolutePaths.d.mts +5 -0
- package/dist/getProjectInfo/{getConfigAbsolutePaths.mjs → getConfig/getConfigAbsolutePaths.mjs} +4 -1
- package/dist/getProjectInfo/{getRelativeSrcRoot.d.mts → getConfig/getRelativeSrcRoot.d.mts} +1 -1
- package/dist/getProjectInfo/{getRelativeSrcRoot.mjs → getConfig/getRelativeSrcRoot.mjs} +2 -2
- package/dist/getProjectInfo/getConfig/getTemplateDefs.d.mts +24 -0
- package/dist/getProjectInfo/getConfig/getTemplateDefs.mjs +165 -0
- package/dist/getProjectInfo/{getUserConfig.d.mts → getConfig/getUserConfig.d.mts} +3 -2
- package/dist/getProjectInfo/{getUserConfig.mjs → getConfig/getUserConfig.mjs} +3 -3
- package/dist/getProjectInfo/{importUncachedModule.mjs → getConfig/importUncachedModule.mjs} +1 -4
- package/dist/getProjectInfo/getConfig/index.d.mts +76 -0
- package/dist/getProjectInfo/getConfig/index.mjs +91 -0
- package/dist/getProjectInfo/getMetaSchema.d.mts +8 -0
- package/dist/getProjectInfo/getMetaSchema.mjs +14 -0
- package/dist/getProjectInfo/index.d.mts +14 -9
- package/dist/getProjectInfo/index.mjs +24 -22
- package/dist/index.d.mts +2 -2
- package/dist/index.mjs +118 -36
- package/dist/init/createConfig.d.mts +2 -2
- package/dist/init/createConfig.mjs +39 -13
- package/dist/init/createStandardSchemaValidatorFile.d.mts +4 -0
- package/dist/init/createStandardSchemaValidatorFile.mjs +39 -0
- package/dist/init/getTemplateFilesFromPackage.mjs +10 -5
- package/dist/init/index.d.mts +2 -2
- package/dist/init/index.mjs +114 -66
- package/dist/init/installDependencies.mjs +4 -2
- package/dist/init/logUpdateDependenciesError.d.mts +3 -1
- package/dist/init/logUpdateDependenciesError.mjs +7 -1
- package/dist/init/updateDependenciesWithoutInstalling.mjs +39 -9
- package/dist/init/updateNPMScripts.d.mts +3 -1
- package/dist/init/updateNPMScripts.mjs +10 -7
- package/dist/init/updateTypeScriptConfig.d.mts +4 -1
- package/dist/init/updateTypeScriptConfig.mjs +11 -7
- package/dist/initProgram.d.mts +1 -1
- package/dist/initProgram.mjs +17 -17
- package/dist/locateSegments.d.mts +8 -1
- package/dist/locateSegments.mjs +13 -3
- package/dist/new/addClassToSegmentCode.d.mts +1 -2
- package/dist/new/addClassToSegmentCode.mjs +3 -3
- package/dist/new/index.d.mts +2 -1
- package/dist/new/index.mjs +4 -2
- package/dist/new/newModule.d.mts +4 -1
- package/dist/new/newModule.mjs +18 -17
- package/dist/new/newSegment.d.mts +4 -1
- package/dist/new/newSegment.mjs +19 -11
- package/dist/new/render.d.mts +7 -3
- package/dist/new/render.mjs +29 -8
- package/dist/types.d.mts +64 -42
- package/dist/utils/compileJSONSchemaToTypeScriptType.d.mts +5 -0
- package/dist/utils/compileJSONSchemaToTypeScriptType.mjs +9 -0
- package/dist/utils/compileTs.d.mts +12 -0
- package/dist/utils/compileTs.mjs +261 -0
- package/dist/utils/debounceWithArgs.d.mts +2 -2
- package/dist/utils/debounceWithArgs.mjs +24 -6
- package/dist/utils/formatLoggedSegmentName.d.mts +3 -1
- package/dist/utils/formatLoggedSegmentName.mjs +3 -2
- package/dist/utils/generateFnName.d.mts +23 -0
- package/dist/utils/generateFnName.mjs +76 -0
- package/dist/utils/getPackageJson.d.mts +3 -0
- package/dist/utils/getPackageJson.mjs +22 -0
- package/dist/utils/getPublicModuleNameFromPath.d.mts +4 -0
- package/dist/utils/getPublicModuleNameFromPath.mjs +9 -0
- package/dist/utils/normalizeOpenAPIMixin.d.mts +14 -0
- package/dist/utils/normalizeOpenAPIMixin.mjs +114 -0
- package/dist/utils/pickSegmentFullSchema.d.mts +3 -0
- package/dist/utils/pickSegmentFullSchema.mjs +15 -0
- package/dist/utils/removeUnlistedDirectories.d.mts +10 -0
- package/dist/utils/removeUnlistedDirectories.mjs +61 -0
- package/dist/utils/resolveAbsoluteModulePath.d.mts +2 -0
- package/dist/utils/resolveAbsoluteModulePath.mjs +32 -0
- package/module-templates/arktype/controller.ts.ejs +68 -0
- package/module-templates/type/controller.ts.ejs +56 -0
- package/module-templates/type/service.ts.ejs +28 -0
- package/module-templates/valibot/controller.ts.ejs +68 -0
- package/package.json +35 -22
- package/dist/dev/diffSchema.d.mts +0 -43
- package/dist/dev/ensureClient.d.mts +0 -5
- package/dist/dev/ensureClient.mjs +0 -31
- package/dist/dev/isMetadataEmpty.d.mts +0 -2
- package/dist/dev/isMetadataEmpty.mjs +0 -4
- package/dist/dev/writeOneSchemaFile.d.mts +0 -11
- package/dist/generateClient.d.mts +0 -7
- package/dist/generateClient.mjs +0 -97
- package/dist/getProjectInfo/getConfig.d.mts +0 -11
- package/dist/getProjectInfo/getConfig.mjs +0 -29
- package/dist/getProjectInfo/getConfigAbsolutePaths.d.mts +0 -4
- package/dist/postinstall.d.mts +0 -1
- package/dist/postinstall.mjs +0 -24
- package/templates/controller.ejs +0 -52
- package/templates/service.ejs +0 -27
- package/templates/worker.ejs +0 -24
- /package/dist/getProjectInfo/{importUncachedModule.d.mts → getConfig/importUncachedModule.d.mts} +0 -0
- /package/dist/getProjectInfo/{importUncachedModuleWorker.d.mts → getConfig/importUncachedModuleWorker.d.mts} +0 -0
- /package/dist/getProjectInfo/{importUncachedModuleWorker.mjs → getConfig/importUncachedModuleWorker.mjs} +0 -0
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import getUserConfig from './getUserConfig.mjs';
|
|
2
|
-
import getRelativeSrcRoot from './getRelativeSrcRoot.mjs';
|
|
3
|
-
export default async function getConfig({ clientOutDir, cwd }) {
|
|
4
|
-
const env = process.env;
|
|
5
|
-
const { configAbsolutePaths, error, userConfig } = await getUserConfig({ cwd });
|
|
6
|
-
const conf = userConfig ?? {};
|
|
7
|
-
const srcRoot = await getRelativeSrcRoot({ cwd });
|
|
8
|
-
const config = {
|
|
9
|
-
modulesDir: env.VOVK_MODULES_DIR ?? conf.modulesDir ?? './' + [srcRoot, 'modules'].filter(Boolean).join('/'),
|
|
10
|
-
validateOnClient: env.VOVK_VALIDATE_ON_CLIENT ?? conf.validateOnClient ?? null,
|
|
11
|
-
validationLibrary: env.VOVK_VALIDATION_LIBRARY ?? conf.validationLibrary ?? null,
|
|
12
|
-
fetcher: env.VOVK_FETCHER ?? conf.fetcher ?? 'vovk/client/defaultFetcher',
|
|
13
|
-
schemaOutDir: env.VOVK_SCHEMA_OUT_DIR ?? conf.schemaOutDir ?? './.vovk-schema',
|
|
14
|
-
clientOutDir: clientOutDir ?? env.VOVK_CLIENT_OUT_DIR ?? conf.clientOutDir ?? './node_modules/.vovk-client',
|
|
15
|
-
origin: (env.VOVK_ORIGIN ?? conf.origin ?? '').replace(/\/$/, ''), // Remove trailing slash
|
|
16
|
-
rootEntry: env.VOVK_ROOT_ENTRY ?? conf.rootEntry ?? 'api',
|
|
17
|
-
rootSegmentModulesDirName: env.VOVK_ROOT_SEGMENT_MODULES_DIR_NAME ?? conf.rootSegmentModulesDirName ?? '',
|
|
18
|
-
logLevel: env.VOVK_LOG_LEVEL ?? conf.logLevel ?? 'warn',
|
|
19
|
-
prettifyClient: (env.VOVK_PRETTIFY_CLIENT ? !!env.VOVK_PRETTIFY_CLIENT : null) ?? conf.prettifyClient ?? false,
|
|
20
|
-
devHttps: (env.VOVK_DEV_HTTPS ? !!env.VOVK_DEV_HTTPS : null) ?? conf.devHttps ?? false,
|
|
21
|
-
templates: {
|
|
22
|
-
service: 'vovk-cli/templates/service.ejs',
|
|
23
|
-
controller: 'vovk-cli/templates/controller.ejs',
|
|
24
|
-
worker: 'vovk-cli/templates/worker.ejs',
|
|
25
|
-
...conf.templates,
|
|
26
|
-
},
|
|
27
|
-
};
|
|
28
|
-
return { config, srcRoot, configAbsolutePaths, userConfig, error };
|
|
29
|
-
}
|
package/dist/postinstall.d.mts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
package/dist/postinstall.mjs
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import fs from 'node:fs/promises';
|
|
2
|
-
import path from 'node:path';
|
|
3
|
-
/**
|
|
4
|
-
* Checks if a file exists at the given path.
|
|
5
|
-
* @param {string} filePath - The path to the file.
|
|
6
|
-
* @returns {Promise<boolean>} - A promise that resolves to true if the file exists, false otherwise.
|
|
7
|
-
*/
|
|
8
|
-
const getFileSystemEntryType = async (filePath) => !!(await fs.stat(filePath).catch(() => false));
|
|
9
|
-
async function postinstall() {
|
|
10
|
-
const vovk = path.join(import.meta.dirname, '../../.vovk');
|
|
11
|
-
const js = path.join(vovk, 'client.js');
|
|
12
|
-
const ts = path.join(vovk, 'client.d.ts');
|
|
13
|
-
const index = path.join(vovk, 'index.ts');
|
|
14
|
-
if ((await getFileSystemEntryType(js)) ||
|
|
15
|
-
(await getFileSystemEntryType(ts)) ||
|
|
16
|
-
(await getFileSystemEntryType(index))) {
|
|
17
|
-
return;
|
|
18
|
-
}
|
|
19
|
-
await fs.mkdir(vovk, { recursive: true });
|
|
20
|
-
await fs.writeFile(js, '/* postinstall */');
|
|
21
|
-
await fs.writeFile(ts, '/* postinstall */');
|
|
22
|
-
await fs.writeFile(index, '/* postinstall */');
|
|
23
|
-
}
|
|
24
|
-
void postinstall();
|
package/templates/controller.ejs
DELETED
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
<% var modulePascalName = _.upperFirst(_.camelCase(moduleName)); %>
|
|
2
|
-
<% var modulePascalNamePlural = pluralize(modulePascalName); %>
|
|
3
|
-
<% var controllerName = modulePascalName + 'Controller'; %>
|
|
4
|
-
<% var compiledName = modulePascalName + 'RPC'; %>
|
|
5
|
-
<% var serviceName = modulePascalName + 'Service'; %>
|
|
6
|
-
<% var prefix = pluralize(_.kebabCase(moduleName).toLowerCase()); %>
|
|
7
|
-
---
|
|
8
|
-
dir: <%= getModuleDirName(segmentName, moduleName) %>
|
|
9
|
-
fileName: <%= controllerName + '.ts' %>
|
|
10
|
-
sourceName: <%= controllerName %>
|
|
11
|
-
compiledName: <%= compiledName %>
|
|
12
|
-
---
|
|
13
|
-
|
|
14
|
-
import { prefix, get, put, post, del, type VovkRequest } from 'vovk';
|
|
15
|
-
<% if(withService) { %>
|
|
16
|
-
import <%= serviceName %> from './<%= serviceName %>';
|
|
17
|
-
<% } %>
|
|
18
|
-
|
|
19
|
-
@prefix('<%= prefix %>')
|
|
20
|
-
export default class <%= controllerName %> {
|
|
21
|
-
@get()
|
|
22
|
-
static get<%= modulePascalNamePlural %> = async (req: VovkRequest<null, { search: string }>) => {
|
|
23
|
-
const search = req.nextUrl.searchParams.get('search');
|
|
24
|
-
<% if(withService) { %>
|
|
25
|
-
return <%= serviceName %>.get<%= modulePascalNamePlural %>(search);
|
|
26
|
-
<% } else { %>
|
|
27
|
-
return { results: [], search };
|
|
28
|
-
<% } %>
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
@put(':id')
|
|
32
|
-
static update<%= modulePascalName %> = async (req: VovkRequest<{ foo: 'bar' | 'baz' }, { q: string }>, params: { id: string }) => {
|
|
33
|
-
const { id } = params;
|
|
34
|
-
const body = await req.json();
|
|
35
|
-
const q = req.nextUrl.searchParams.get('q');
|
|
36
|
-
<% if(withService) { %>
|
|
37
|
-
return <%= serviceName %>.update<%= modulePascalName %>(id, q, body);
|
|
38
|
-
<% } else { %>
|
|
39
|
-
return { id, body, q };
|
|
40
|
-
<% } %>
|
|
41
|
-
};
|
|
42
|
-
|
|
43
|
-
@post()
|
|
44
|
-
static create<%= modulePascalName %> = () => {
|
|
45
|
-
// ...
|
|
46
|
-
};
|
|
47
|
-
|
|
48
|
-
@del(':id')
|
|
49
|
-
static delete<%= modulePascalName %> = () => {
|
|
50
|
-
// ...
|
|
51
|
-
};
|
|
52
|
-
}
|
package/templates/service.ejs
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
<% var modulePascalName = _.upperFirst(_.camelCase(moduleName)); %>
|
|
2
|
-
<% var modulePascalNamePlural = pluralize(modulePascalName); %>
|
|
3
|
-
<% var serviceName = modulePascalName + 'Service'; %>
|
|
4
|
-
<% var controllerName = modulePascalName + 'Controller'; %>
|
|
5
|
-
---
|
|
6
|
-
dir: <%= getModuleDirName(segmentName, moduleName) %>
|
|
7
|
-
fileName: <%= serviceName + '.ts' %>
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
import type { VovkControllerBody, VovkControllerQuery } from 'vovk';
|
|
11
|
-
import type <%= controllerName %> from './<%= controllerName %>';
|
|
12
|
-
|
|
13
|
-
export default class <%= serviceName %> {
|
|
14
|
-
static get<%= modulePascalNamePlural %> = (search: VovkControllerQuery<typeof <%= controllerName %>.get<%= modulePascalNamePlural %>>['search']) => {
|
|
15
|
-
return { results: [], search };
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
static update<%= modulePascalName %> = (
|
|
19
|
-
id: string,
|
|
20
|
-
q: VovkControllerQuery<typeof <%= controllerName %>.update<%= modulePascalName %>>['q'],
|
|
21
|
-
body: VovkControllerBody<typeof <%= controllerName %>.update<%= modulePascalName %>>
|
|
22
|
-
) => {
|
|
23
|
-
return { id, q, body };
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
// ...
|
|
27
|
-
}
|
package/templates/worker.ejs
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
<% var modulePascalName = _.upperFirst(_.camelCase(moduleName)); %>
|
|
2
|
-
<% var modulePascalNamePlural = pluralize(modulePascalName); %>
|
|
3
|
-
<% var workerName = modulePascalName + 'Worker'; %>
|
|
4
|
-
<% var compiledName = modulePascalName + 'WPC'; %>
|
|
5
|
-
---
|
|
6
|
-
dir: <%= getModuleDirName(segmentName, moduleName) %>
|
|
7
|
-
fileName: <%= workerName + '.ts' %>
|
|
8
|
-
sourceName: <%= workerName %>
|
|
9
|
-
compiledName: <%= compiledName %>
|
|
10
|
-
---
|
|
11
|
-
import { worker } from 'vovk';
|
|
12
|
-
|
|
13
|
-
@worker()
|
|
14
|
-
export default class <%= workerName %> {
|
|
15
|
-
static heavyComputation = () => {
|
|
16
|
-
return 'Hello, World';
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
static heavyComputationGenerator = function* () {
|
|
20
|
-
for(const str of ['Hello', 'World'] as const) {
|
|
21
|
-
yield str;
|
|
22
|
-
}
|
|
23
|
-
};
|
|
24
|
-
}
|
/package/dist/getProjectInfo/{importUncachedModule.d.mts → getConfig/importUncachedModule.d.mts}
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|