initial js-utils package config
commit
db2722b0ea
|
@ -0,0 +1,23 @@
|
|||
|
||||
# See https://help.github.com/ignore-files/ for more about ignoring files.
|
||||
|
||||
# dependencies
|
||||
node_modules
|
||||
|
||||
# builds
|
||||
build
|
||||
dist
|
||||
.rpt2_cache
|
||||
|
||||
# misc
|
||||
.DS_Store
|
||||
.env
|
||||
.env.local
|
||||
.env.development.local
|
||||
.env.test.local
|
||||
.env.production.local
|
||||
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
example/package-lock.json
|
|
@ -0,0 +1,4 @@
|
|||
#!/bin/sh
|
||||
. "$(dirname "$0")/_/husky.sh"
|
||||
|
||||
npm run precommit
|
|
@ -0,0 +1,23 @@
|
|||
# js-utils
|
||||
|
||||
## Install
|
||||
|
||||
```bash
|
||||
// with npm
|
||||
npm i --save @toodle/js-utils
|
||||
|
||||
// with yarn
|
||||
yarn add @toodle/js-utils
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
```jsx
|
||||
import { typeValidator } from "@toodle/js-utils";
|
||||
```
|
||||
|
||||
**1.0.0**
|
||||
This version ---
|
||||
|
||||
**1.0.1**
|
||||
This version +++
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,53 @@
|
|||
{
|
||||
"name": "js-utils",
|
||||
"version": "1.0.0",
|
||||
"description": "Javascript utils",
|
||||
"main": "./src/index.js",
|
||||
"babel": {
|
||||
"presets": [
|
||||
"@babel/preset-env"
|
||||
]
|
||||
},
|
||||
"scripts": {
|
||||
"prebuild": "rimraf build",
|
||||
"build": "npm run build:cjs && npm run build:copy-files",
|
||||
"build:cjs": "babel src -d build --copy-files",
|
||||
"build:copy-files": "node ./scripts/copy-files.js",
|
||||
"precommit": "lint-staged",
|
||||
"prepare": "husky install",
|
||||
"test": "echo \"Error: no test specified\" && exit 1"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "--"
|
||||
},
|
||||
"keywords": [
|
||||
"js-utils"
|
||||
],
|
||||
"author": "Tudor Stanciu",
|
||||
"license": "MIT",
|
||||
"devDependencies": {
|
||||
"@babel/cli": "^7.16.7",
|
||||
"@babel/core": "^7.16.7",
|
||||
"@babel/node": "^7.16.7",
|
||||
"@babel/preset-env": "^7.16.7",
|
||||
"rimraf": "^3.0.2",
|
||||
"fs-extra": "^10.0.0",
|
||||
"husky": "^7.0.4",
|
||||
"lint-staged": "^12.2.2",
|
||||
"prettier": "^2.5.1"
|
||||
},
|
||||
"prettier": {
|
||||
"trailingComma": "none",
|
||||
"tabWidth": 2,
|
||||
"semi": true,
|
||||
"singleQuote": false,
|
||||
"arrowParens": "avoid"
|
||||
},
|
||||
"lint-staged": {
|
||||
"**/*.+(js|md|ts|css|sass|less|graphql|scss|json|vue)": [
|
||||
"prettier --write",
|
||||
"git add"
|
||||
]
|
||||
}
|
||||
}
|
|
@ -0,0 +1,87 @@
|
|||
/* eslint-disable no-console */
|
||||
const path = require("path");
|
||||
const fse = require("fs-extra");
|
||||
const glob = require("glob");
|
||||
|
||||
const packagePath = process.cwd();
|
||||
const buildPath = path.join(packagePath, "./build");
|
||||
const srcPath = path.join(packagePath, "./src");
|
||||
|
||||
/**
|
||||
* Puts a package.json into every immediate child directory of rootDir.
|
||||
* That package.json contains information about esm for bundlers so that imports
|
||||
* like import Typography from '@material-ui/core/Typography' are tree-shakeable.
|
||||
*
|
||||
* It also tests that an this import can be used in typescript by checking
|
||||
* if an index.d.ts is present at that path.
|
||||
*
|
||||
* @param {string} rootDir
|
||||
*/
|
||||
// async function createModulePackages({ from, to }) {
|
||||
// const directoryPackages = glob.sync('*/index.js', { cwd: from }).map(path.dirname);
|
||||
|
||||
// await Promise.all(
|
||||
// directoryPackages.map(async directoryPackage => {
|
||||
// const packageJson = {
|
||||
// sideEffects: false,
|
||||
// module: path.join('../esm', directoryPackage, 'index.js'),
|
||||
// typings: './index.d.ts',
|
||||
// };
|
||||
// const packageJsonPath = path.join(to, directoryPackage, 'package.json');
|
||||
|
||||
// /*const [typingsExist] =*/ await Promise.all([
|
||||
// //fse.exists(path.join(to, directoryPackage, 'index.d.ts')),
|
||||
// fse.writeFile(packageJsonPath, JSON.stringify(packageJson, null, 2)),
|
||||
// ]);
|
||||
|
||||
// // if (!typingsExist) {
|
||||
// // throw new Error(`index.d.ts for ${directoryPackage} is missing`);
|
||||
// // }
|
||||
|
||||
// return packageJsonPath;
|
||||
// }),
|
||||
// );
|
||||
// }
|
||||
|
||||
async function createPackageFile() {
|
||||
const packageData = await fse.readFile(
|
||||
path.resolve(packagePath, "./package.json"),
|
||||
"utf8"
|
||||
);
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
const { nyc, scripts, devDependencies, workspaces, ...packageDataOther } =
|
||||
JSON.parse(packageData);
|
||||
const newPackageData = {
|
||||
...packageDataOther,
|
||||
private: false,
|
||||
main: "./index.js"
|
||||
};
|
||||
const targetPath = path.resolve(buildPath, "./package.json");
|
||||
|
||||
await fse.writeFile(
|
||||
targetPath,
|
||||
JSON.stringify(newPackageData, null, 2),
|
||||
"utf8"
|
||||
);
|
||||
console.log(`Created package.json in ${targetPath}`);
|
||||
|
||||
fse.copy("./README.md", `${buildPath}/README.md`, err => {
|
||||
if (err) throw err;
|
||||
console.log("README file was copied to destination");
|
||||
});
|
||||
|
||||
return newPackageData;
|
||||
}
|
||||
|
||||
async function run() {
|
||||
try {
|
||||
await createPackageFile();
|
||||
|
||||
//await createModulePackages({ from: srcPath, to: buildPath });
|
||||
} catch (err) {
|
||||
console.error(err);
|
||||
process.exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
run();
|
|
@ -0,0 +1,23 @@
|
|||
const isArray = parameter => {
|
||||
const _isArray = parameter.constructor === Array;
|
||||
// parameter instanceof Array;
|
||||
// Array.isArray(parameter);
|
||||
return _isArray;
|
||||
};
|
||||
|
||||
const isObject = parameter => {
|
||||
const _isObject = typeof parameter === "object" && parameter !== null;
|
||||
|
||||
return _isObject;
|
||||
};
|
||||
|
||||
function isJson(str) {
|
||||
try {
|
||||
const data = JSON.parse(str);
|
||||
return { data, success: true };
|
||||
} catch (e) {
|
||||
return { data: null, success: false };
|
||||
}
|
||||
}
|
||||
|
||||
export default { isArray, isObject, isJson };
|
|
@ -0,0 +1,3 @@
|
|||
import typeValidator from "./data/typeValidator";
|
||||
|
||||
export { typeValidator };
|
Loading…
Reference in New Issue