typescript rewrite
This commit is contained in:
parent
d97a1d830e
commit
cdec34ea60
12 changed files with 238 additions and 148 deletions
5
.gitignore
vendored
5
.gitignore
vendored
|
@ -1 +1,4 @@
|
|||
node_modules
|
||||
node_modules
|
||||
package-lock.json
|
||||
build
|
||||
d
|
61
LICENSE.txt
61
LICENSE.txt
|
@ -1,61 +0,0 @@
|
|||
FIUS License V1.1
|
||||
----------------------------------------------------------------
|
||||
1. Definitions
|
||||
|
||||
1.1. "Contributor"
|
||||
means each individual or legal entity that creates, contributes to
|
||||
the creation of, or owns Covered Software.
|
||||
|
||||
1.2. "License"
|
||||
means this document.
|
||||
|
||||
1.3. "Modifications"
|
||||
means any of the following:
|
||||
|
||||
(a) any file in Code that results from an addition to,
|
||||
deletion from, or modification of the contents of Covered
|
||||
Software; or
|
||||
|
||||
(b) any new file in Source Code Form that contains any Covered
|
||||
Software.
|
||||
|
||||
1.4. "Patent Claims" of a Contributor
|
||||
means any patent claim(s), including without limitation, method,
|
||||
process, and apparatus claims, in any patent Licensable by such
|
||||
Contributor that would be infringed, but for the grant of the
|
||||
License, by the making, using, selling, offering for sale, having
|
||||
made, import, or transfer of either its Contributions or its
|
||||
Contributor Version.
|
||||
|
||||
1.5. "You" (or "Your")
|
||||
means an individual or a legal entity exercising rights under this
|
||||
License. For legal entities, "You" includes any entity that
|
||||
controls, is controlled by, or is under common control with You. For
|
||||
purposes of this definition, "control" means (a) the power, direct
|
||||
or indirect, to cause the direction or management of such entity,
|
||||
whether by contract or otherwise, or (b) ownership of more than
|
||||
fifty percent (50%) of the outstanding shares or beneficial
|
||||
ownership of such entity.
|
||||
|
||||
1.6. "The owners"
|
||||
Who own this project
|
||||
|
||||
1.7. "The code" / "The Software" / "The project" / "The idea"
|
||||
It means the product or creation that this document governs (Including the idea).
|
||||
|
||||
------------------------------------------------
|
||||
2. License Grants, Conditions and Limitation
|
||||
|
||||
2.1. Each contributor has ownership of what he creates, no exceptions.
|
||||
It may require the removal of what it creates from the project,
|
||||
the removal may be denied.
|
||||
|
||||
2.2. You can Contribute at the project by request.
|
||||
|
||||
2.3. You can't copy or share the code.
|
||||
|
||||
2.4. You can't get / use this code from here, you have to get a public
|
||||
from a public source.
|
||||
|
||||
2.5. The owners have the full rights and choice what to do of this project,
|
||||
including your contribution.
|
65
index.js
65
index.js
|
@ -1,65 +0,0 @@
|
|||
const { appendFile, existsSync } = require('node:fs');
|
||||
const { mkdir } = require('node:fs/promises')
|
||||
var readlineSync = require('@thundernetworkrad/readline-sync');
|
||||
var debug, logs1;
|
||||
|
||||
let time = getTime()
|
||||
const name = `${time.year}.${time.month}.${time.day}.${time.hours}.${time.minutes}.${time.seconds}.log`;
|
||||
|
||||
function getTime () {
|
||||
const date_time = new Date();
|
||||
const year = date_time.getFullYear();
|
||||
const month = ("0" + (date_time.getMonth() + 1)).slice(-2);
|
||||
const day = ("0" + date_time.getDate()).slice(-2);
|
||||
const hours = date_time.getHours();
|
||||
const minutes = date_time.getMinutes();
|
||||
const seconds = date_time.getSeconds();
|
||||
return({year, month, day, hours, minutes, seconds})
|
||||
};
|
||||
|
||||
function log (string) {
|
||||
if (!existsSync('./logs')) mkdir('./logs', { recursive: true });
|
||||
appendFile(`./logs/${name}`, string+'\n', err => {
|
||||
if (err) {
|
||||
throw err
|
||||
}
|
||||
})
|
||||
};
|
||||
|
||||
function cin (question, hide) {
|
||||
return new Promise((resolve, reject) => {
|
||||
try {
|
||||
var answer = readlineSync.question(`${question} `, {
|
||||
hideEchoBack: hide || false
|
||||
})
|
||||
return resolve(answer);
|
||||
} catch (e) {
|
||||
console.log(e)
|
||||
return resolve('error');
|
||||
}
|
||||
})
|
||||
};
|
||||
|
||||
class createCout {
|
||||
constructor (debugLevel, logs) {
|
||||
if (!debugLevel) debugLevel = 0;
|
||||
if (!logs) logs = false;
|
||||
debug = debugLevel;
|
||||
logs1 = logs;
|
||||
}
|
||||
|
||||
cout (string, debugLevel) {
|
||||
if (!debugLevel) debugLevel = 0;
|
||||
var time = getTime();
|
||||
|
||||
if (debug >= debugLevel) {
|
||||
console.log(`[${time.year}.${time.month}.${time.day}-${time.hours}:${time.minutes}:${time.seconds}] | ${String(string)}`);
|
||||
if (logs1) {
|
||||
log(`[${time.year}.${time.month}.${time.day}-${time.hours}:${time.minutes}:${time.seconds}] | ${String(string)}`);
|
||||
}
|
||||
}
|
||||
return;
|
||||
};
|
||||
}
|
||||
|
||||
module.exports = { cin, createCout, log };
|
13
index.ts
Normal file
13
index.ts
Normal file
|
@ -0,0 +1,13 @@
|
|||
//import { appendFile, existsSync } from 'node:fs';
|
||||
//import { mkdir } from 'node:fs/promises';
|
||||
import getTime from './src/getTime.js';
|
||||
import log from './src/log.js';
|
||||
import cin from './src/cin.js';
|
||||
import cout from './src/cout.js'
|
||||
|
||||
export default {
|
||||
getTime,
|
||||
log,
|
||||
cin,
|
||||
cout
|
||||
}
|
51
package-lock.json
generated
51
package-lock.json
generated
|
@ -1,31 +1,48 @@
|
|||
{
|
||||
"name": "@fiusdevelopment/std",
|
||||
"version": "0.0.5",
|
||||
"lockfileVersion": 2,
|
||||
"name": "@thundernetworkrad/std",
|
||||
"version": "2023.01.26",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@fiusdevelopment/std",
|
||||
"version": "0.0.5",
|
||||
"name": "@thundernetworkrad/std",
|
||||
"version": "2023.01.26",
|
||||
"hasInstallScript": true,
|
||||
"license": "SEE LICENSE IN LICENSE.txt",
|
||||
"dependencies": {
|
||||
"readline-sync": "^1.4.10"
|
||||
"@thundernetworkrad/readline-sync": "^2023.1.26-2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^18.11.18",
|
||||
"typescript": "^4.9.4"
|
||||
}
|
||||
},
|
||||
"node_modules/readline-sync": {
|
||||
"version": "1.4.10",
|
||||
"resolved": "https://registry.npmjs.org/readline-sync/-/readline-sync-1.4.10.tgz",
|
||||
"integrity": "sha512-gNva8/6UAe8QYepIQH/jQ2qn91Qj0B9sYjMBBs3QOB8F2CXcKgLxQaJRP76sWVRQt+QU+8fAkCbCvjjMFu7Ycw==",
|
||||
"node_modules/@thundernetworkrad/readline-sync": {
|
||||
"version": "2023.1.26-2",
|
||||
"resolved": "https://registry.npmjs.org/@thundernetworkrad/readline-sync/-/readline-sync-2023.1.26-2.tgz",
|
||||
"integrity": "sha512-m07hRMV5evmgbbAMD7hk8yX8Cv2yLj92aZtbC9iEtu5YQ9DRwPvyXmdtHutHI6DYHGs/kGDmjzUfQpJyowsZXA==",
|
||||
"engines": {
|
||||
"node": ">= 0.8.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"dependencies": {
|
||||
"readline-sync": {
|
||||
"version": "1.4.10",
|
||||
"resolved": "https://registry.npmjs.org/readline-sync/-/readline-sync-1.4.10.tgz",
|
||||
"integrity": "sha512-gNva8/6UAe8QYepIQH/jQ2qn91Qj0B9sYjMBBs3QOB8F2CXcKgLxQaJRP76sWVRQt+QU+8fAkCbCvjjMFu7Ycw=="
|
||||
},
|
||||
"node_modules/@types/node": {
|
||||
"version": "18.11.18",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.18.tgz",
|
||||
"integrity": "sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/typescript": {
|
||||
"version": "4.9.4",
|
||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.4.tgz",
|
||||
"integrity": "sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==",
|
||||
"dev": true,
|
||||
"bin": {
|
||||
"tsc": "bin/tsc",
|
||||
"tsserver": "bin/tsserver"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=4.2.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
13
package.json
13
package.json
|
@ -1,10 +1,11 @@
|
|||
{
|
||||
"name": "@thundernetworkrad/std",
|
||||
"version": "2023.01.25",
|
||||
"version": "2023.01.26",
|
||||
"description": "Standard module for javascript",
|
||||
"main": "index.js",
|
||||
"main": "build/index.js",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1"
|
||||
"install": "tsc"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
|
@ -25,6 +26,10 @@
|
|||
},
|
||||
"homepage": "https://github.com/FIUSDevelopment/std#readme",
|
||||
"dependencies": {
|
||||
"@thundernetworkrad/readline-sync": "^2023.1.10"
|
||||
"@thundernetworkrad/readline-sync": "^2023.1.26-2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^18.11.18",
|
||||
"typescript": "^4.9.4"
|
||||
}
|
||||
}
|
||||
|
|
15
src/cin.ts
Normal file
15
src/cin.ts
Normal file
|
@ -0,0 +1,15 @@
|
|||
import readlineSync from '@thundernetworkrad/readline-sync';
|
||||
|
||||
export default (question: string, hide: boolean) => {
|
||||
return new Promise((resolve) => {
|
||||
try {
|
||||
let answer: string = readlineSync.question(`${question} `, {
|
||||
hideEchoBack: hide || false
|
||||
})
|
||||
return resolve(answer);
|
||||
} catch (e) {
|
||||
console.log(e)
|
||||
return resolve('error');
|
||||
}
|
||||
})
|
||||
};
|
24
src/cout.ts
Normal file
24
src/cout.ts
Normal file
|
@ -0,0 +1,24 @@
|
|||
let debug: number, logs1: boolean|undefined|null;
|
||||
import getTime from './getTime.js';
|
||||
import log from './log.js';
|
||||
export default class createCout {
|
||||
constructor (debugLevel: number, logs?: boolean) {
|
||||
if (!debugLevel) debugLevel = 0;
|
||||
if (!logs) logs = false;
|
||||
debug = debugLevel;
|
||||
logs1 = logs;
|
||||
}
|
||||
|
||||
cout (string: string, debugLevel?: number) {
|
||||
if (!debugLevel) debugLevel = 0;
|
||||
var time = getTime();
|
||||
|
||||
if (debug >= debugLevel) {
|
||||
console.log(`[${time.year}.${time.month}.${time.day}-${time.hours}:${time.minutes}:${time.seconds}] | ${String(string)}`);
|
||||
if (logs1) {
|
||||
log(`[${time.year}.${time.month}.${time.day}-${time.hours}:${time.minutes}:${time.seconds}] | ${String(string)}`);
|
||||
}
|
||||
}
|
||||
return;
|
||||
};
|
||||
}
|
10
src/getTime.ts
Normal file
10
src/getTime.ts
Normal file
|
@ -0,0 +1,10 @@
|
|||
export default () => {
|
||||
const date_time = new Date();
|
||||
const year = date_time.getFullYear();
|
||||
const month = parseInt(("0" + (date_time.getMonth() + 1)).slice(-2));
|
||||
const day = parseInt(("0" + date_time.getDate()).slice(-2));
|
||||
const hours = date_time.getHours();
|
||||
const minutes = date_time.getMinutes();
|
||||
const seconds = date_time.getSeconds();
|
||||
return({year, month, day, hours, minutes, seconds})
|
||||
};
|
18
src/log.ts
Normal file
18
src/log.ts
Normal file
|
@ -0,0 +1,18 @@
|
|||
import { appendFile, existsSync } from 'node:fs';
|
||||
import { mkdir } from 'node:fs/promises';
|
||||
import getTime from './getTime.js';
|
||||
|
||||
let time;
|
||||
const startTime = getTime();
|
||||
time = startTime;
|
||||
const name = `${time.year}.${time.month}.${time.day}.${time.hours}.${time.minutes}.${time.seconds}.log`;
|
||||
|
||||
export default (string?: string) => {
|
||||
if (!existsSync('./logs')) mkdir('./logs', { recursive: true });
|
||||
|
||||
appendFile(`./logs/${name}`, string+'\n', (err: any) => {
|
||||
if (err) {
|
||||
throw err
|
||||
}
|
||||
})
|
||||
};
|
6
test.js
Normal file
6
test.js
Normal file
|
@ -0,0 +1,6 @@
|
|||
import thunder from './build/index.js';
|
||||
|
||||
let cout = new thunder.cout(0, true)
|
||||
cout.cout(thunder.getTime());
|
||||
|
||||
cout.cout('ciao', 0)
|
105
tsconfig.json
Normal file
105
tsconfig.json
Normal file
|
@ -0,0 +1,105 @@
|
|||
{
|
||||
"compilerOptions": {
|
||||
/* Visit https://aka.ms/tsconfig to read more about this file */
|
||||
|
||||
/* Projects */
|
||||
"incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */
|
||||
// "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */
|
||||
// "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */
|
||||
// "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */
|
||||
// "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */
|
||||
// "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */
|
||||
|
||||
/* Language and Environment */
|
||||
"target": "ESNext", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */
|
||||
// "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */
|
||||
// "jsx": "preserve", /* Specify what JSX code is generated. */
|
||||
// "experimentalDecorators": true, /* Enable experimental support for TC39 stage 2 draft decorators. */
|
||||
// "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */
|
||||
// "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */
|
||||
// "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */
|
||||
// "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */
|
||||
// "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */
|
||||
// "noLib": true, /* Disable including any library files, including the default lib.d.ts. */
|
||||
// "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */
|
||||
// "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */
|
||||
|
||||
/* Modules */
|
||||
"module": "ESNext", /* Specify what module code is generated. */
|
||||
"rootDir": "./", /* Specify the root folder within your source files. */
|
||||
"moduleResolution": "node", /* Specify how TypeScript looks up a file from a given module specifier. */
|
||||
// "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */
|
||||
// "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */
|
||||
// "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */
|
||||
// "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */
|
||||
// "types": [], /* Specify type package names to be included without being referenced in a source file. */
|
||||
// "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */
|
||||
// "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */
|
||||
// "resolveJsonModule": true, /* Enable importing .json files. */
|
||||
// "noResolve": true, /* Disallow 'import's, 'require's or '<reference>'s from expanding the number of files TypeScript should add to a project. */
|
||||
|
||||
/* JavaScript Support */
|
||||
"allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */
|
||||
"checkJs": true, /* Enable error reporting in type-checked JavaScript files. */
|
||||
// "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */
|
||||
|
||||
/* Emit */
|
||||
"declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */
|
||||
"declarationMap": true, /* Create sourcemaps for d.ts files. */
|
||||
// "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */
|
||||
"sourceMap": true, /* Create source map files for emitted JavaScript files. */
|
||||
// "outFile": "./build.js", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */
|
||||
"outDir": "build", /* Specify an output folder for all emitted files. */
|
||||
"removeComments": true, /* Disable emitting comments. */
|
||||
// "noEmit": true, /* Disable emitting files from a compilation. */
|
||||
"importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */
|
||||
// "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types. */
|
||||
// "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */
|
||||
// "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */
|
||||
// "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */
|
||||
// "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */
|
||||
// "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */
|
||||
// "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */
|
||||
// "newLine": "crlf", /* Set the newline character for emitting files. */
|
||||
// "stripInternal": true, /* Disable emitting declarations that have '@internal' in their JSDoc comments. */
|
||||
// "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */
|
||||
// "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */
|
||||
// "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */
|
||||
"declarationDir": "build", /* Specify the output directory for generated declaration files. */
|
||||
// "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */
|
||||
|
||||
/* Interop Constraints */
|
||||
// "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */
|
||||
// "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */
|
||||
"esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */
|
||||
// "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */
|
||||
"forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */
|
||||
|
||||
/* Type Checking */
|
||||
"strict": true, /* Enable all strict type-checking options. */
|
||||
"noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */
|
||||
"strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */
|
||||
"strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */
|
||||
"strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */
|
||||
"strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */
|
||||
"noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */
|
||||
"useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */
|
||||
"alwaysStrict": true, /* Ensure 'use strict' is always emitted. */
|
||||
"noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */
|
||||
"noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */
|
||||
"exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */
|
||||
"noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */
|
||||
"noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */
|
||||
"noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */
|
||||
"noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */
|
||||
"noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */
|
||||
// "allowUnusedLabels": true, /* Disable error reporting for unused labels. */
|
||||
// "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */
|
||||
|
||||
/* Completeness */
|
||||
// "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */
|
||||
"skipLibCheck": true /* Skip type checking all .d.ts files. */
|
||||
},
|
||||
// "include": [],
|
||||
"exclude": ["node_modules", "logs", "build", "d", "test.js"]
|
||||
}
|
Loading…
Reference in a new issue