Skip to content

Commit

Permalink
@dr-js/core@0.3.0-dev.7
Browse files Browse the repository at this point in the history
notable change:
- dev-fix: double `asyncTask[ PLAN ]` call in `runAsyncTask`
- dev-fix: verbose result of `getStatus` from `extendLaneValueMap`
- fix: ci: patch `libgbm1` for `puppeteer@3`, check: puppeteer/puppeteer#5674
- script sort
- package update
  • Loading branch information
dr-js committed Apr 22, 2020
1 parent 9b71324 commit b3c92c5
Show file tree
Hide file tree
Showing 8 changed files with 279 additions and 177 deletions.
3 changes: 3 additions & 0 deletions .github/workflows/ci-test.yml
Expand Up @@ -26,6 +26,9 @@ jobs:
echo "node: $(node -v)"
echo "npm: $(npm -v)"
- name: Patch `libgbm1` for `puppeteer@3` # https://github.com/puppeteer/puppeteer/issues/5674
run: sudo apt-get install -y libgbm1

- run: npm ci

- run: npm test
402 changes: 241 additions & 161 deletions package-lock.json

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions package.json
@@ -1,7 +1,7 @@
{
"private": true,
"name": "@dr-js/core",
"version": "0.3.0-dev.6",
"version": "0.3.0-dev.7",
"description": "A collection of strange functions",
"author": "dr-js",
"license": "MIT",
Expand All @@ -17,19 +17,19 @@
"script-pack-test": "node -r @babel/register ./script verbose pack test",
"script-publish": "node -r @babel/register ./script pack publish",
"script-publish-dev": "node -r @babel/register ./script pack publish-dev",
"script-generate-spec": "cross-env BABEL_ENV=use-source node -r @babel/register ./script/generateSpec ./tempFileDelete.config.json",
"script-delete-temp-build-file": "cross-env BABEL_ENV=use-source node -r @babel/register ./source-bin -c ./tempFileDelete.config.json",
"script-generate-spec": "dr-dev --EE BABEL_ENV=use-source -E -- node -r @babel/register ./script/generateSpec ./tempFileDelete.config.json",
"script-delete-temp-build-file": "dr-dev --EE BABEL_ENV=use-source -E -- node -r @babel/register ./source-bin -c ./tempFileDelete.config.json",
"// build =======================": "",
"build-bin": "babel ./source-bin --out-dir ./output-gitignore/bin --copy-files",
"build-bin-dev": "cross-env BABEL_ENV=dev babel ./source-bin --out-dir ./output-gitignore/bin --copy-files --watch",
"build-bin-dev": "dr-dev --EE BABEL_ENV=dev -E -- babel ./source-bin --out-dir ./output-gitignore/bin --copy-files --watch",
"build-library-babel": "babel ./source --out-dir ./output-gitignore/library --ignore source/browser/",
"build-library-babel-dev": "cross-env BABEL_ENV=dev npm run build-library-babel -- --watch",
"build-library-babel-dev": "dr-dev --EE BABEL_ENV=dev -E -- npm run build-library-babel -- --watch",
"build-library-webpack": "node -r @babel/register ./script/webpack production profile",
"build-library-webpack-dev": "node -r @babel/register ./script/webpack development watch",
"build-module": "cross-env BABEL_ENV=module babel ./source --out-dir ./output-gitignore/module",
"build-module": "dr-dev --EE BABEL_ENV=module -E -- babel ./source --out-dir ./output-gitignore/module",
"// test ========================": "",
"test-dev": "cross-env BABEL_ENV=dev dr-dev --TR @babel/register -T source/node/system/ResolveCommand.test.js",
"test-sanity": "cross-env BABEL_ENV=dev dr-dev --TR @babel/register -T source/common/.sanity.test/promise.test.js",
"test-dev": "dr-dev --EE BABEL_ENV=dev -E -- dr-dev --TR @babel/register -T source/common/module/AsyncTask.test.js",
"test-sanity": "dr-dev --EE BABEL_ENV=dev -E -- dr-dev --TR @babel/register -T source/common/.sanity.test/promise.test.js",
"test-source": "dr-dev --TR @babel/register -T source/env/ source/common/ source/node/ --TFS .test.js",
"test-output-library": "dr-dev -T output-gitignore/library/env/ output-gitignore/library/common/ output-gitignore/library/node/ --TFS .test.js",
"test-output-module": "dr-dev --TR @babel/register -T output-gitignore/module/env/ output-gitignore/module/common/ output-gitignore/module/node/ --TFS .test.js",
Expand All @@ -47,8 +47,8 @@
"npm": ">=6.12"
},
"devDependencies": {
"@dr-js/dev": "0.3.0-dev.4",
"@dr-js/dev-web-puppeteer": "0.3.0-dev.4"
"@dr-js/dev": "0.3.0-dev.6",
"@dr-js/dev-web-puppeteer": "0.3.0-dev.6"
},
"sideEffects": false
}
2 changes: 1 addition & 1 deletion source/common/module/AsyncLane.js
Expand Up @@ -125,7 +125,7 @@ const extendLaneValueMap = (asyncLane) => {

const getStatus = (isVerbose) => {
const status = asyncLane.getStatus()
isVerbose && status.forEach((laneStatus) => { laneStatus.valueList = [ ...laneList[ laneStatus.index ].valueMap ] })
isVerbose && status.forEach((laneStatus) => { laneStatus.valueList = [ ...laneList[ laneStatus.index ].valueMap.values() ] })
return status
}

Expand Down
14 changes: 10 additions & 4 deletions source/common/module/AsyncTask.js
Expand Up @@ -93,13 +93,19 @@ const getAsyncTaskPhase = (asyncTask) => asyncTask[ OUTPUT ] ? DONE

const runAsyncTask = (asyncTask) => { // re-run will overwrite existing `promise/query`
if (__DEV__ && getAsyncTaskPhase(asyncTask) !== IDLE) throw new Error('should reset asyncTask to idle')

const planResult = asyncTask[ PLAN ](asyncTask)
if (__DEV__ && !basicObject(planResult)) throw new Error('expect asyncTask[ PLAN ] return object')
Object.assign(asyncTask, asyncTask[ PLAN ](asyncTask)) // merge back and re-use same task object

if (__DEV__ && !basicObject(planResult)) throw new Error('expect asyncTask[ PLAN ] to return object')

if (planResult !== asyncTask) Object.assign(asyncTask, planResult) // merge back and re-use same task object

__DEV__ && promiseAlike(asyncTask[ PLAN_PROMISE ])
__DEV__ && basicFunction(asyncTask[ QUERY ])
asyncTask[ PROMISE ] = catchPromise(asyncTask[ PLAN_PROMISE ]) // record output, should never reject
.then((output) => (asyncTask[ OUTPUT ] = output))

asyncTask[ PROMISE ] = catchPromise(asyncTask[ PLAN_PROMISE ]) // should not reject
.then((output) => (asyncTask[ OUTPUT ] = output)) // record output as { result, error }

return asyncTask[ PROMISE ]
}

Expand Down
11 changes: 11 additions & 0 deletions source/common/module/AsyncTask.test.js
Expand Up @@ -75,6 +75,17 @@ describe('source/common/module/AsyncTask', () => {
stringifyEqual(output, { result: undefined, error: outputError })
})

it('direct error', async () => {
const promise = runAsyncTask({
[ PLAN ]: () => ({
[ PLAN_PROMISE ]: Promise.reject(outputError),
[ QUERY ]: async (type) => {}
})
})
const output = await promise
stringifyEqual(output, { result: undefined, error: outputError })
})

it('resetAsyncTask', async () => {
const asyncTask = getAsyncTask()
await runAsyncTask(asyncTask)
Expand Down
2 changes: 1 addition & 1 deletion source/node/.sanity.test/function.test.js
Expand Up @@ -9,7 +9,7 @@ const PATH_TEMP = `${__dirname}/temp-gitignore`
const runFuncWithExposeGC = async (...funcList) => withTempDirectory(
PATH_TEMP,
async () => run({
command: process.argv0,
command: process.argv[ 0 ],
argList: [
'--expose-gc', // allow `global.gc()` call
'--max-old-space-size=32', // limit max memory usage for faster OOM
Expand Down
2 changes: 2 additions & 0 deletions source/node/system/ResolveCommand.test.js
Expand Up @@ -19,6 +19,8 @@ describe('Node.Module.ResolveCommand', () => {
]

it('resolveCommandName()', () => {
// strictEqual(resolveCommandName(process.argv0), process.argv[ 0 ], 'should return same node path')

for (const [ commandName, isExpectResult ] of COMMAND_NAME_LIST) {
const result = resolveCommandName(commandName)
info(`${JSON.stringify(commandName)} => ${JSON.stringify(result)}`)
Expand Down

0 comments on commit b3c92c5

Please sign in to comment.