Document constructor for E-mc.
npm install @e-mc/document* NodeJS 18.20.5 LTS
* ES2022
``typescript
import type { DataSource, ViewEngine } from "./squared";
import type { IFileManager, IScopeOrigin } from "./index";
import type { ExternalAsset, FileCommand, IFileThread, OutputFinalize } from "./asset";
import type { HostInitConfig, IClient } from "./core";
import type { AsSourceFileOptions, ConfigOrTransformer, CustomizeOptions, GenerateLintTableOptions, LintMessage, PluginConfig, SourceCode, SourceInput, SourceMap, SourceMapOptions, TransformAction, TransformCallback, TransformOutput, TransformResult, UpdateGradleOptions } from "./document";
import type { PostFinalizeCallback } from "./filemanager";
import type { LogComponent } from "./logger";
import type { DocumentComponent, DocumentComponentOption, DocumentModule } from "./settings";
import type { IFileGroup, WatchInitResult } from "./watch";
interface IDocument extends IClient
Db: IDb | null;
assets: ExternalAsset[];
config: Record
init(assets: ExternalAsset[], config?: HostInitConfig): this;
customize(options?: CustomizeOptions): void;
findConfig(data: object, name: string, type?: string): PluginConfig;
loadConfig(data: object, name: string): ConfigOrTransformer | undefined;
asSourceFile(value: string, cache: boolean): unknown;
asSourceFile(value: string, options?: AsSourceFileOptions): unknown;
findVersion(name: string | string[], fallback?: string): string;
findSourceScope(uri: string, imports: Record
findSourceRoot(uri: string, imports?: Record
resolveDir(name: string, ...paths: string[]): string | undefined;
locateSourceFiles(file: ExternalAsset, code?: string, bundleContent?: string[]): ((imports?: Record
resolveSourceFile(file: ExternalAsset): ((code?: string, imports?: Record
tryParse(source: string, format: string, options?: Record
forDb(item: DataSource): boolean;
hasEval(name: string): boolean;
settingsOf(name: keyof DocumentComponent, option: keyof DocumentComponentOption): unknown;
parseTemplate(viewEngine: ViewEngine | string, template: string, data: unknown[]): Promise
transform(type: string, code: string, format: string | string[], options?: TransformOutput & TransformAction): Promise
abort(err: Error): void;
abort(name?: keyof DocumentComponent, reason?: unknown): void;
restart(): void;
using?(data: IFileThread): Promise
setLocalUri?(file: ExternalAsset, replace?: boolean): void;
resolveUri?(file: ExternalAsset, source: string): string;
resolveUri?(file: ExternalAsset, source: string, trailing: string): [string, string];
resolveImports?(file: ExternalAsset, code: string, baseFile?: string | ExternalAsset): string | undefined;
replaceContent?(source: string, statement: RegExpExecArray | string, mimeType?: string): string | undefined;
addCopy?(data: FileCommand
writeImage?(output: OutputFinalize
cloudInit?(state: IScopeOrigin
cloudObject?(state: IScopeOrigin
cloudUpload?(state: IScopeOrigin
cloudFinalize?(state: IScopeOrigin
watchInit?(watch: IFileGroup
watchModified?(watch: IFileGroup
set dataSource(value: DataSource[]);
get dataSource(): DataSource[];
set imports(value);
get imports(): Record
get watching(): boolean;
set host(value);
get host(): IFileManager | null;
}
interface DocumentConstructor extends ModuleConstructor {
finalize(this: IFileManager, instance: IDocument): Promise
createSourceMap(code: string, remove: boolean): SourceMap;
createSourceMap(code: string, uri?: string, remove?: boolean): SourceMap;
writeSourceMap(uri: string, data: SourceCode, options?: SourceMapOptions): string | undefined;
updateGradle(source: string, namespaces: string[], value: string, upgrade: boolean): string;
updateGradle(source: string, namespaces: string[], value: string, options?: UpdateGradleOptions): string;
generateLintTable(messages: LintMessage[], options: GenerateLintTableOptions): LogComponent[];
cleanup?(this: IFileManager, instance: IDocument): Promise
sanitizeAssets?(assets: ExternalAsset[], exclusions?: unknown[]): ExternalAsset[];
readonly prototype: IDocument;
new(module?: DocumentModule, ...args: unknown[]): IDocument;
}
`
`typescript
import type { PermittedDirectories } from "./core";
import type { DbModule, DbSettings, DocumentComponentOptions, PurgeComponent } from "./settings";
interface DocumentModule {
// handler: "@pi-r/chrome";
extensions?: string[];
db?: DbModule
eval?: {
function?: boolean;
absolute?: boolean;
template?: boolean;
userconfig?: boolean;
};
format?: {
uuid?: {
dictionary?: string;
pathname?: string;
filename?: string;
};
};
imports?: StringMap;
settings?: {
broadcast_id?: string | string[];
users?: Record
imports?: StringMap;
imports_strict?: boolean;
pages?: unknown;
transform?: unknown;
view_engine?: unknown;
}>;
cache_dir?: string;
imports_strict?: boolean;
directory?: {
template?: string;
data?: string;
export?: string;
schema?: string;
package?: string;
};
purge?: PurgeComponent;
options?: DocumentComponentOptions
pages?: Record
transform?: {
html?: Record
css?: Record
js?: Record
};
view_engine?: Record
export?: Record
};
permission?: PermittedDirectories;
}
`
`javascript
const Document = require("@e-mc/document"); // @pi-r/chrome
const assets = [
{ pathname: "output", filename: "image1.png", uri: "http://hostname/path/document1.png" },
{ pathname: "output", filename: "image2.png", uri: "http://hostname/path/document2.png" }
];
const instance = new Document({
eval: {
function: true,
template: true
},
imports: {
"http://hostname/path/": "build/"
},
settings: {
imports_strict: true,
users: {
"nodejs-001": {
imports_strict: false,
imports: {
"http://hostname/path": "build"
}
}
},
directory: {
template: "../chrome/template" // ../chrome/template/users/nodejs-001
}
}
});
// instance.host = new Host();
instance.init(assets);
``
NOTE: @e-mc/document is an abstract base class and cannot be instantiated. Document is more commonly called through @pi-r/chrome.
- https://www.unpkg.com/@e-mc/types@0.13.7/lib/squared.d.ts
- https://www.unpkg.com/@e-mc/types@0.13.7/lib/asset.d.ts
- https://www.unpkg.com/@e-mc/types@0.13.7/lib/core.d.ts
- https://www.unpkg.com/@e-mc/types@0.13.7/lib/document.d.ts
- https://www.unpkg.com/@e-mc/types@0.13.7/lib/filemanager.d.ts
- https://www.unpkg.com/@e-mc/types@0.13.7/lib/logger.d.ts
- https://www.unpkg.com/@e-mc/types@0.13.7/lib/settings.d.ts
- https://www.unpkg.com/@e-mc/types@0.13.7/lib/watch.d.ts
BSD 3-Clause