Skip to content

Commit

Permalink
refactor: Remove useless utils and add a types definition file for ma…
Browse files Browse the repository at this point in the history
…nifest items
  • Loading branch information
hangxingliu committed Mar 17, 2024
1 parent 21529f3 commit e18caf5
Show file tree
Hide file tree
Showing 9 changed files with 110 additions and 27 deletions.
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
# outdated generated js files
src/utils/**/*.js
src/utils/**/*.js.map

# vscode test web
.vscode-test-web
/out
Expand Down
3 changes: 2 additions & 1 deletion src/downloader/http_headers.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { URL } from "url";
import { Cheerio, Element } from "cheerio";
import { cacheDir, manifestFiles, ManifestItemType } from "../utils/config";
import { cacheDir, manifestFiles } from "../utils/config";
import { httpHeadersWikiURLs } from "./config_url";
import {
bold,
Expand All @@ -12,6 +12,7 @@ import {
JsonFileWriter,
SimpleHttpCache,
} from "../utils/crawler-utils";
import { ManifestItemType } from "../types-manifest";

main().catch((error) => console.error(error.stack));
async function main() {
Expand Down
3 changes: 2 additions & 1 deletion src/downloader/lua_openresty.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,10 @@

import type { AnyNode, BasicAcceptedElems, CheerioAPI } from "cheerio";
import { nginxLuaDocsBaseURL, luaRestyDocsURLs, nginxLuaModuleURLs } from "./config_url";
import { manifestFiles, ManifestItemType, detailsFile, luaSnippetFile, cacheDir } from "../utils/config";
import { manifestFiles, detailsFile, luaSnippetFile, cacheDir } from "../utils/config";
import { JsonFileWriter, SimpleHttpCache, writeJSON, getText, loadHtml, print } from "../utils/crawler-utils";
import type { SnippetItem } from "../extension/types";
import { ManifestItemType } from "../types-manifest";

const manifestStreams = {
lua: new JsonFileWriter(manifestFiles.lua),
Expand Down
3 changes: 2 additions & 1 deletion src/downloader/nginx_directives.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#!/usr/bin/env node

import { ManifestItemType, cacheDir, detailsFile, manifestFiles } from "../utils/config";
import { ManifestItemType } from "../types-manifest";
import { cacheDir, detailsFile, manifestFiles } from "../utils/config";
import {
JsonFileWriter,
resolveURL,
Expand Down
100 changes: 100 additions & 0 deletions src/types-manifest.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
export const enum ManifestItemType {
ModuleNames = 1,
Directive = 2,
Variable = 3,
DirectiveDetails = 4,
VariableDetails = 5,
HttpReqHeader = 6,
HttpResHeader = 7,
}

export type ManifestItemForModuleNames = [
type: ManifestItemType.ModuleNames,
/** @example "ngx_http_access_module" */
...moduleNames: string[]
];

export type ManifestItemForDirective = [
type: ManifestItemType.Directive,
/** @example "accept_mutex" */
directiveName: string,
/** @example ["on | off"] */
signature: string[],
/** @example "accept_mutex off;" */
def: string,
/** @example ["events"] */
contexts: string[],
/** The index of its module name */
moduleIndex: number,
/** @example "1.9.11" */
since: null | string,
/** A uri to this directive's docs */
link: string,
completionItemPatch: null | { insert: string }
];

export type ManifestItemForVariable = [
type: ManifestItemType.Variable,
varName: `$${string}`,
desc: string,
/** The index of its module name */
moduleIndex: number,
/** @example "1.9.11" */
since: null | string,
/** A uri to this directive's docs */
link: string,
completionItemPatch: null | { insert: string }
];

export type ManifestItemForDirectiveDetails = [
type: ManifestItemType.DirectiveDetails,
name: string,
markdown: string,
html: string,
nites: string,
table: string
];
export type ManifestItemForVariableDetails = [
//
type: ManifestItemType.VariableDetails,
docs: string
];

export type ManifestItemForHttpReqHeader = [
//
type: ManifestItemType.HttpReqHeader,
name: string,
description: string,
example: string,
standard: string | null,
];
export type ManifestItemForHttpResHeader = [
//
type: ManifestItemType.HttpResHeader,
name: string,
description: string,
example: string,
standard: string | null,
];

export function isManifestItemForModuleNames(row: unknown[]): row is ManifestItemForModuleNames {
return row && row[0] === ManifestItemType.ModuleNames;
}
export function isManifestItemForDirective(row: unknown[]): row is ManifestItemForDirective {
return row && row[0] === ManifestItemType.Directive;
}
export function isManifestItemForVariable(row: unknown[]): row is ManifestItemForVariable {
return row && row[0] === ManifestItemType.Variable;
}
export function isManifestItemForDirectiveDetails(row: unknown[]): row is ManifestItemForDirectiveDetails {
return row && row[0] === ManifestItemType.DirectiveDetails;
}
export function isManifestItemForVariableDetails(row: unknown[]): row is ManifestItemForVariableDetails {
return row && row[0] === ManifestItemType.VariableDetails;
}
export function isManifestItemForHttpReqHeader(row: unknown[]): row is ManifestItemForHttpReqHeader {
return row && row[0] === ManifestItemType.HttpReqHeader;
}
export function isManifestItemForHttpResHeader(row: unknown[]): row is ManifestItemForHttpResHeader {
return row && row[0] === ManifestItemType.HttpResHeader;
}
2 changes: 0 additions & 2 deletions src/utils/.gitignore

This file was deleted.

5 changes: 0 additions & 5 deletions src/utils/README.md

This file was deleted.

10 changes: 0 additions & 10 deletions src/utils/config.ts
Original file line number Diff line number Diff line change
@@ -1,15 +1,5 @@
import { resolve } from "path";

export const enum ManifestItemType {
ModuleNames = 1,
Directive = 2,
Variable = 3,
DirectiveDetails = 4,
VariableDetails = 5,
HttpReqHeader = 6,
HttpResHeader = 7,
}

export const projectDir = resolve(__dirname, '../..');
export const cacheDir = resolve(projectDir, 'cache')
export const syntaxesDir = resolve(projectDir, 'src/syntax/references');
Expand Down
7 changes: 0 additions & 7 deletions src/utils/terminal-colors.ts

This file was deleted.

0 comments on commit e18caf5

Please sign in to comment.